IT Memory Note

[정보처리기사] 응용 SW 기초 기술 활용 : 운영체제의 특징(1) 본문

자격증/정보처리기사

[정보처리기사] 응용 SW 기초 기술 활용 : 운영체제의 특징(1)

h00ddu 2024. 9. 1. 22:10

 

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