일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 드림핵
- 자격증공부
- 보안용어
- DreamHack
- reivew
- 보안
- 워게임
- keyword
- it자격증
- Security
- webhacking
- IT
- 케이쉴드주니어
- 리눅스마스터2급
- 복습
- 정보처리기사
- 취약점진단
- study
- wargame
- 클라우드
- Review
- 웹해킹
- 리눅스
- 공부
- 정리
- 위험관리
- Shell
- 기록
- 자격증
- Linux
- Today
- Total
IT Memory Note
[정보처리기사] 응용 SW 기초 기술 활용 : 운영체제의 특징(1) 본문
1️⃣ 운영체제 종류
☆☆☆
(1) 운영체제(OS, Operating System)
1. 운영체제의 개념
- 사용자가 컴퓨터의 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공해 주는 소프트웨어
- 한정된 시스템 자원을 효과적으로 사용할 수 있도록 관리 및 운영함으로써 사용자에게 편리성을 제공함
- 컴퓨터 시스템과 사용자 간의 인터페이스 기능을 담당함
2. 운영체제의 특징
⓵ 운영체제의 일반적 특징
특징 | 설명 |
사용자 편리성 제공 | 한정된 시스템 자우너을 효과적으로 사용할 수 있도록 관리 및 운영함 |
인터페이스 기능을 담당 | 컴퓨터 시스템과 사용자를 연결함 |
스케줄링 담당 | 다중 사용자와 다중 응용 프로그램 환경하에서 자원의 현재 상태를 파악하고 자원 분배를 위한 스케줄링을 담당 |
자원 관리 | CPU, 메모리 공간, 기억장치, 입출력 장치, 등의 자원을 관리함 |
제어 기능 | 입출력 장치와 사용자 프로그램을 제어 |
⓶ 운영체제에서 커널의 기능
- 크게 인터페이스(쉘) + 커널의 구조
- 운영체제의 핵심적인 기능들이 커널에 모여있다면, 인터페이스(쉘)는 이러한 커널을 사용자가 보다 편리하게 사용할 수 있게 해 줌
㉮ 쉘(Shell) : 사용자가 입력시킨 명령어 라인을 읽어 필요한 시스템 기능을 실행시키는 명령어 해석기
- 시스템과 사용자 간의 인터페이스를 제공함
- 여러 가지의 내장 명령어를 가지고 있음
㉯ 커널(Kernel) : 운영체제의 핵심이 되는 기능들이 모여 있는 컴퓨터 프로그램
- 컴퓨터가 부팅될 때 주기억장치에 적재된 후 상주하면서 실행하며, 프로그램과 하드웨어 간의 인터페이스 역할을 담당함
< 커널의 기능 >
기능 | 설명 |
프로세스 관리 | • 프로세스 스케줄링 및 동기화 관리 담당 • 프로세스 생성과 제거, 시작과 정지, 메시지 전달 등의 기능 담당 |
기억장치 관리 | 프로세스에게 메모리 할당 및 회수 관리 담당 |
주변장치 관리 | 입출력 장치 스케줄링 및 전반적인 관리 담당 |
파일 관리 | 파일 관리 파일의 생성과 삭제, 변경, 유지 등의 관리 담당 |
(2) 운영체제의 종류
1. Windows 운영체제
- Windows MS-DOS의 멀티태스킹 기능과 GUI 환경을 제공하는 마이크로소프트사가 개발한 운영체제
- Windows 95를 발표한 이후에 98, ME, XP, 7, 8, 10, 11 등의 버전으로 지속적으로 출시되고 있음
< Windows 운영체제의 특징 >
특징 | 설명 |
GUI 제공 | 키보드 없이 마우스로 아이콘이나 메뉴를 선택하여 작업을 수행하는 그래픽 기반의 인터페이스 방식 |
선점형 멀티태스킹 방식 제공 | 동시에 여러 개의 프로그램을 실행하면서 운영체제가 각 작업의 CPU 이용 시간을 제어 |
자동 감지 기능 제공 | 하드웨어를 설치했을 때 필요한 시스템 환경을 운영체제가 자동으로 구성해주는 자동 감지 기능 제공 |
OLE(Object Linking and Embedding) 사용 | 개체를 현재 작성 중인 문서에 자유롭게 연결 또는 삽입하여 편집할 수 있게 하는 기능 제공 |
2. 유닉스(Unix) 운영체제
- 데니스 리치와 켄 톰슨(Ken Thompson) 등이 함께 벨 연구소를 통해 만든 운영체제이며, 90% 이상 C 언어로 구현되어 있는 운영체제로 범용 다중 사용자 방식의 시분할 운영체제
- 처음부터 다양한 시스템에 서로 인식할 수 있고, 멀티 태스킹을 지원하도록 설계되었음
< 유닉스 계열 운영체제의 특징 >
특징 | 설명 |
대화식 운영체제 기능 제공 |
프롬프트가 나타난 상태에서 사용자가 명령을 입력하면 시스템은 그 명령을 수행하는 사용자 명령 기반의 대화식 운영체제 기능을 제공 |
다중 작업 기능 제공 | 다수의 작업(프로세스)이 CPU와 같은 공용 자원을 나누어 사용하여 한 번에 하나 이상의 작업을 수행하는 기능 제공 |
다중 사용자 기능 제공 |
여러 대의 단말(키보드와 모니터)이 하나의 컴퓨터에 연결되어서, 여러 사람이 동시에 시스템을 사용하여 각각의 작업을 수행할 수 있는 기능 제공 |
이식성 제공 | 90% 이상 C 언어로 구현되어 있고, 시스템 프로그램이 모듈화되어 있어서 다른 하드웨어 기종으로 쉽게 이식 가능 |
계층적 트리 구조 파일 시스템 제공 |
유닉스는 계층적 트리 구조를 가짐으로써 통합적인 파일 관리가 용이 |
⓵ 리눅스(Linux) 운영체제 : 유닉스를 기반으로 개발되고, 소스 코드가 공개된 오픈 소스 기반의 운영체제
- 데비안, 레드햇, Fedora, Ubuntu, CentOS와 같이 다양하게 출시되고 있음
- 유닉스 계열의 운영체제이므로 대화식 운영체제, 다중 작업 기능, 다중 사용자 기능, 이식성, 계층적 트리 구조 파일 시스템을 가짐
⓶ 맥(Mac) 운영체제 : 애플이 유닉스를 기반으로 개발한 GUI 기반의 운영체제
- 애플 사는 1999년 OS X로 업데이트를 하였고, 이후에는 클라이언트 버전, 서버 제품 등으로 제품군을 확대하였으며, 2017년 OS X 시에라, 2018년 모하비 등을 지속적으로 발표하고 있음
⓷ 안드로이드(Android) 운영체제 : 휴대전화를 비롯한 휴대용 장치를 위한 운영체제와 미들웨어, UI, 표준 응용 프로그램(웹 브라우저, 이메일 클라이언트 등)을 포함하고 있는 운영체제
< 안드로이드의 특징 >
특징 | 설명 |
리눅스 기반 | 안드로이드는 리눅스 커널 위에서 동작 |
자바와 코틀린 언어 | • 고수준 언어를 사용해 응용 프로그램을 작성 • 생산성이 높으며 전문 지식이 없어도 개발 가능 |
런타임 라이브러리 | 컴파일된 바이트 코드 구동 가능 |
안드로이드 소프트웨어 개발 키트(SDK) | 응용 프로그램을 개발하는데 필요한 각종 도구와 API를 제공 |
(3) 운영체제 발달 과정
- 일괄 처리 시스템, 시분할 시스템, 다중 처리 시스템, 범용 시스템, 분산 처리 시스템 순으로 시스템이 발전하였음
세대 | 시스템 | 설명 |
1세대 | 일괄 처리 시스템 | 하나의 작업이 끝나기 전까지는 다른 작업을 할 수 없는 시스템 |
2세대 | 시분할 시스템 | 여러 명의 사용자가 사용하는 시스템에서 컴퓨터가 사용자들의 프로그램을 번갈아가며 처리하는 시스템 |
다중 처리 시스템 | 컴퓨터 시스템 1대에 둘 이상의 CPU를 이용하여 병렬로 처리하는 시스템 | |
3세대 | 범용 시스템 | 특별히 정해진 용도로만 사용되는 것이 아니라 메모리에 적재되어 실행되는 프로그램에 따라 여러 가지 용도로 사용하는 시스템 |
4세대 | 분산 처리 시스템 | 서로 다른 장소에 위치한 컴퓨터 시스템에 기능과 자원을 분산시켜 상호 협력할 수 있는 시스템 |
※ 시분할 시스템(Time Sharing System) : CPU 스케줄링과 다중 프로그램을 이용해서 각 사용자들에게 컴퓨터 자원을 시간적으로 분할하여 사용할 수 있게 해주는 대화식 시스템
2️⃣ 운영체제 기본 명령어 활용
☆☆☆
(1) 운영체제 제어 방법
유형 | 설명 |
CLI (Command Line Interface) |
사용자가 직접 명령어를 입력, 컴퓨터에 명령을 내리는 방식 |
GUI(Graphic User Interface) | 마우스로 화면을 클릭하여 그래픽 위주로 컴퓨터를 제어하는 방식 |
(2) 윈도즈 운영체제의 기본 명령어
- 윈도즈 운영체제에서 CLI 명령어를 입력하기 위해서는 명령 창이 필요함
- Help를 명령 창에 입력함으로써 검색이 가능함
- 윈도즈 내에서는 파일을 이동하고 프로그램을 실행하는 것과 같은 행동을 GUI 명령으로 제어할 수 있음
명령어 | 설명 |
ATTRIB | 파일 속성을 표시하거나 바꿈 |
CALL | 한 일괄 프로그램에서 다른 일괄 프로그램을 호출 |
CD | 현재 디렉터리 이름을 보여주거나 바꿈 |
CHKDSK | 디스크를 검사하고 상태 보고서를 표시 |
CLS | 화면을 지움 |
CMD | Windows 명령 프롬프트 창을 열어둠 |
COMP | 2개 이상의 파일을 비교 |
DISKPART | 디스크 파티션 속성을 표시하거나 구성 |
ECHO | 메시지를 표시하거나 ECHO를 사용 또는 사용하지 않음 |
ERASE | 하나 이상의 파일을 지움 |
EXIT | CMD.EXE 프로그램(명령 인터프리터)를 마침 |
(4) 리눅스/유닉스 계열의 기본 명령어
- 쉘에서 입력할 수 있음
- 리눅스는 최상위 유저를 CLI 환경에서 #으로 표시하며 일반 유저를 $로 표시함
- 명령어에 대한 도움말은 --help, -h를 명령어 뒤에 붙임으로써 확인할 수 있음
※ 쉘(Shell) : 컴퓨터 내부를 관리하는 커널(Kerner)과 사용자 간을 연결하는 명령어(Command) 창
1. 리눅스/유닉스 운영체제의 기본 명령어
구분 | 명령어 | 설명 |
시스템 관리 | uname -a | • 시스템의 모든 정보를 확인하는 명령어 • 시스템 이름, 사용 중인 운영체제와 버전, 호스트명, 하드웨어 정보 등을 표시 |
uname -r | 운영체제의 배포 버전을 출력하는 명령어 | |
cat | 파일의 내용을 화면에 출력하는 명령어 | |
uptime | 시스템의 가동 시간과 현재 사용자 수, 평균 부하량 등을 확인하는 명령어 | |
사용자 | id | 사용자의 로그인명, id, 그룹 id 등을 출력하는 명령어 |
last | 시스템의 부팅부터 현재까지의 모든 사용자의 로그인과 로그아웃에 대한 정보를 표시하는 명령어 | |
who | 현재 접속 사용자 정보를 표시하는 명령어 | |
파일 처리 | ls | 자신이 속해있는 폴더 내에서의 파일 및 폴더들을 표시하는 명령어 |
pwd | • print working directory의 약자 • 현재 작업 중인 디렉터리의 절대 경로를 출력하는 명령어 |
|
rm | 파일 삭제 명령어 | |
cp | 파일 복사 명령어 | |
mv | 파일 이동 명령어 | |
프로세스 | ps | 현재 실행되고 있는 프로세스 목록을 출력하는 명령어 |
pmap | 프로세스 ID를 기준으로 메모리 맵 정보를 출력하는 명령어 | |
kill | 특정 PID 프로세스 종료 명령어 | |
파일 권한 | chmod | 특정 파일 또는 디렉터리의 퍼미션 수정 명령어 |
chown | 파일이나 디렉터리의 소유자, 소유 그룹 수정 명령어 | |
네트워크 | ifconfig | 네트워크 인터페이스를 설정하거나 확인하는 명령어 |
host | 도메인(호스트)명은 알고 있는데 IP 주소를 모르거나 혹은 그 반대의 경우에 사용하는 명령어 | |
압축 | tar | 여러 개의 파일을 하나의 파일로 묶거나 풀 때 사용하는 명령어(압축은 불가) |
gzip | 파일을 묶거나 풀 수는 없지만 압축을 담당하는 명령어 | |
검색 | grep | 입력으로 전달된 파일의 내용에서 특정 문자열을 찾고자할 때 사용하는 명령어 |
find | 특정한 파일을 찾는 명령어 | |
파일 이동 | cp | 디렉터리를 복사할 때 사용하는 명령어 |
rsync | 로컬 또는 원격에 파일과 디렉터리를 복사하고 동기화하는 명령어 | |
디스크 사용 | df | 시스템에 마운트된 하드디스크의 남은 용량을 확인할 때 사용하는 명령어 |
du | 파일 사이즈를 킬로 바이트 단위로 보여주는 명령어 | |
디렉터리 이동 | cd | 디렉터리를 이동하는 명령어 |
2. 리눅스/유닉스 운영체제의 파일 접근 권한 관리
⓵ 리눅스/유닉스 운영체제의 파일 접근 제어 개요
- 리눅스/유닉스 시스템에서 사용자 혹은 프로세스가 파일을 읽거나 실행하면 open(), read(), write()와 같은 시스템 호출이 수행되고, 각 파일의 정보가 저장된 i-node 값을 읽게 됨
- i-node에는 각 파일의 물리적 위치, 생성•수정•사용 날짜 등의 정보와 더불어 파일 소유자•그룹, 접근 권한 등의 파일 접근 제어와 관련된 정보가 수록되며, 해당 정보를 이용하여 DAC 기반 접근 제어를 수행함
⓶ 리눅스/유닉스 파일 접근 제어 메커니즘
< 접근 권한 유형(설정 명령어 : chown, chgrp) >
접근 권한 | 설명 |
User | 파일을 소유하고 있는 사용자(Owner) |
Group | 소유자를 제외하고 파일과 같은 그룹에 속해있는 모든 사용자 모임 |
Other | 그 밖의 사용자 |
< 파일 접근 모드(설정 명령어 : chmod) >
User | Group | Other | ||||||
R | W | X | R | W | X | R | W | X |
4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
- Read, Write, eXcute로 파일을 읽거나(r), 쓰거나(w), 실행(x)할 수 있는 3가지 모드로 구분함
- 파일이 'rwx' 모드를 지원한다면 그 파일을 읽고, 쓰고, 실행할 수 있다는 것
⓷ 접근 권한 변경(chmod)
㉮ 명령어
chmod [-R] permission file_name1 | directory_name1[file_name2 | directory_name2..]
- chmod 명령은 기존 파일 또는 디렉터리에 대한 접근 권한을 변경할 때 사용함
명령어 | 설명 |
옵션 -R | 하위 디렉터리와 파일의 권한까지 변경 |
permission | 기호나 8진수로 접근 권한을 지정 |
- chmod 명령은 해당 파일의 소유주나 슈퍼 유저 root만이 실행할 수 있음
㉯ 접근 권한을 기호로 기술하는 방법
구분 | 기술 방법 |
대상 | u(user), g(group), o(other), a(all) |
연산자 | +(추가), -(제거), =(지정) |
접근 권한 | r(읽기), w(쓰기), x(실행) |
㉰ 접근 권한을 숫자로 기술하는 방법 : 파일의 접근 권한을 3개의 8진수로 기술함
구분 | 기술 방법 |
r(읽기) | 4 |
w(쓰기) | 2 |
x(실행) | 1 |
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사] 응용 SW 기초 기술 활용 : 운영체제의 특징(3) (0) | 2024.09.10 |
---|---|
[정보처리기사] 응용 SW 기초 기술 활용 : 운영체제의 특징(2) (0) | 2024.09.02 |
[정보처리기사] 애플리케이션 테스트 관리 : 성능 개선 (0) | 2024.09.01 |
[정보처리기사] 애플리케이션 테스트 관리 : 애플리케이션 통합 테스트 (0) | 2024.09.01 |
[정보처리기사] 애플리케이션 테스트 관리 : 애플리케이션 테스트 케이스 설계(3) (0) | 2024.09.01 |