운영체제의 종류
1. 운영체제의 종류
Windows | GUI | Microsoft사가 개발 |
MacOS | GUI | Apple 사가 UNIX를 기반으로 개발 |
MS-DOS | CLI | Windows 이전에 사용되던 운영체제 |
UNIX | CLI | AT&T 벨 연구소, MIT, Generic Electric이 공동 개발 |
LINUX | CLI | 리누스 토발즈(Linus Torvalds)가 개발, UNIX와 호환이 가능한 커널(Kernel) 누구나 제한 없이 활용 및 재배포 가능한 오픈 소스 |
Cent OS | CLI, GUI | 레드햇 엔터프라이즈 리눅스와 완전하게 호환되는 무료 기업용 리눅스 운영체제 |
2. Windows의 주요 특징
(a) GUI(Graphic User Interface, 그래픽 사용자 인터페이스)
-키보드로 명령어를 직접 입력하지 않고, 마우스로 아이콘이나 메뉴를 선택하여 모든 작업을 수행하는 방식
→ 초보자도 쉽게 사용할 수 있게 GUI 채용
(b) 선점형 멀티태스킹(Preemptive Mulit-Tasking)
-동시에 여러 개의 프로그램을 실행하면서 운영체제가 각 작업의 CPU 이용 시간을 제어하여 응용 프로그램 실행 중 문제가 발생하면 해당 프로그램을 강제 종료시키고 모든 시스템 자원을 반환하는 방식
→ 하나의 응용 프로그램이 CPU를 독점하는 것을 방지할 수 있어 시스템 다운 현상없이 더욱 안정적인 작업을 할 수 있음
(c) PnP(Plug and Play, 자동 감지 기능)
-컴퓨터 시스템에 프린터나 사운드 카드 등의 하드웨어를 설치했을 때, 해당 하드웨어를 사용하는 데 필요한 시스템 환경을 OS가 자동으로 구성해주는 기능(e.g. 무선마우스)
→ 운영체제가 하드웨어의 규격을 자동으로 인식하여 동작하게 해주므로 PC 주변장치를 연결할 때 사용자가 직접 환경을 설정하지 않아도 됌, PnP기능을 활용하기 위해서는 하드웨어와 소프트웨어 모두 PnP를 지원해야 함
(d) OLE(Object Linking and Embedding)
-다른 여러 응용 프로그램에서 작성된 문자나 그림 등의 개체(Objects)를 현재 작성 중인 문서에 자유롭게 연결(Linking)하거나 삽입(Embedding)하여 편집할 수 있게 하는 기능
→ OLE로 연결된 이미지를 원본 프로그램에서 수정하거나 편집하면 그 내용이 그대로 해당 문서에 반영
(e) 255자의 긴 파일명
- VFAT(Virtual File Allocation Table)를 이용해 최대 255자까지 파일 이름 지정 가능
→ 파일 이름으로는 \ / : * ? “ < > |를 제외한 모든 문자 및 공백을 사용할 수 있으며, 한글의 경우 127자까지 저장 가능
Windows 파일 시스템인 FAT과 비교했을때의 NTFS의 특징 22년 1회
- 대용량 볼륨에 효율적
- 자동 압축 및 안정성
- 저용량 볼륨에서의 속도 저하
- 강력한 보안, 암호화 기능 지원
(f) 개인 사용자(Single-User) 시스템
-컴퓨터 한 대를 한 사람만이 독점해서 사용
3. UNIX의 개요 및 특징
- AT&T 벨 연구소, MIT, Generic Electric이 공동 개발
- 소스가 공개된 개방형 시스템(Open System)
- 시분할 시스템(Time Sharing System)을 위해 설계된 대화식 운영체제
- 다중 작업(Multi-Tasking, 멀티 태스킹) , 다중 사용자(Multi-User) 지원
- 대부분 C언어로 작성되어 있어 이식성이 높으며 장치, 프로세스 간의 호환성이 높음
- 계층 구조(트리 구조)의 파일 시스템
- 사용자는 하나 이상의 작업을 백그라운드에서 수행, 여러 개의 작업 병행처리
HW > 커널(Kernel) > 쉘(Shell) > 유틸리티(Utility) > 사용자(User)
3.1 구성
(a) 커널(Kernel)
-UNIX의 가장 핵심적인 부분
-컴퓨터가 부팅될 때 주기억장치에 적재된 후 상주하면서 실행됨
-하드웨어를 보호하고, 프로그램-HW 간의 인터페이스 역할을 담당
-프로세스 관리, 기억장치 관리, 파일 관리, 입출력 관리 등 여러 가지 기능 수행
- 주기억장치에 상주
(b) 쉘(Shell) 20년 1, 2회 기출
-사용자의 명령어를 인식하여 프로그램을 호출하고, 명령을 수행하는 명령어 해석기
-주기억장치에 상주하지 않고, 명령어가 포함된 파일 형태로 존재하며 보조 기억장치에서 교체 처리가 가능
-시스템-사용자 간의 인터페이스 역할을 담당
-파이프라인 기능 지원 및 입, 출력 재지정을 통해 입, 출력의 방향 변경 가능
-여러 종류의 쉘이 있음
-DOS의 COMMAND.COM과 같은 기능 수행
UNIX에서의 프로세스 간 통신
- 각 프로세스는 시스템 호출을 통해 커널의 기능을 사용하며, 프로세스 간 통신은 시그널(Signal), 파이프(Pipe), 소켓(Socket) 사용
(c) 시그널(Signal)
간단한 메시지를 이용하여 통신하는 것, 초기 UNIX 시스템에서 사용
(d) 파이프(Pipe)
한 프로세스의 출력이 다른 프로세스의 입력으로 사용되는 단방향 통신 방식
(e) 소켓(Socket)
프로세스 사이의 대화를 가능하게 하는 쌍방향 통신 방식
3.2 UNIX 파일 시스템 구조 #부슈아데
- Boot Block 부팅시 필요한 코드 저장
- Super Block 전페 파일시스템에 대한 정보
- I-node 각 파일, 디렉토리에 대한 모든 정보( 파일 소유자, 파일 링크 수 , 만들어진 시간, 크기, 타입, 저장된 블록의 시작 주소 ) ( XXX처음 사용된 시간, 변경된 시간, 경로명XXX)
- Data 디렉토리 엔트리, 실제 파일에 대한 데이터
3.3 UNIX 명령어 20년 3회 기출
- cat 파일 내용 화면 표시 = TYPE (Windows 명령어)
- chdir 현재 사용할 디렉터리의 위치 변경 = CD (Windows 명령어)
- chmod 파일의 사용 허가 지정, 파일의 속성 변경 = ATTRIB (Windows)
- chown 소유자 변경, change owner
- cp 파일 복사, copy
- rm 파일 삭제, remove
- exec 새로운 프로세스 수행, execute
- find 파일 찾기
- fork 새로운 프로세스 생성, 하위 프로세스 호출 및 프로세스 복제 명령
- fsck 파일 시스템 검사 및 보수, filesystem check
- ls 현재 디렉터리 내의 파일 목록 확인, list = DIR (Windows 명령어)
- mount/unmount 파일 시스템 마운팅/마운팅 해제
예시. 파일권한 변경하기
1 텍스트 파일의 755 접근 제한
755 8진수 -> 111.101.101 2진수 rwx 순으로 여부 확인
소유자(User) | 그룹(Group) | 그 외 사용자(Other) | ||||||
r | w | x | r | w | x | r | w | x |
4 | 2 | 1 | 4 | - | 1 | 4 | - | 1 |
7 | 5 | 5 |
r:Read(읽기), w:Write(쓰기), x:Execute(실행)
1 텍스트 파일 하드디스크1 소유자 vian 크기 0 최초변경일시 파일이름
$chmod 755 1.txt
$ ls -1 txt1 -rwxr-xr-x 1 vian class1 0 Feb 28 03:35 txt 1
4. LINUX
- 1991년 리누스 토발즈(Linus Torvalds)가 UNIX를 기반으로 개발한 운영체제
- 대부분의 특징이 UNIX와 동일하며 UNIX와 완벽하게 호환됨
- 프로그램 소스 코드가 무료로 공개되어 있음
5. MacOS
- 1980년대 Apple사가 UNIX를 기반으로 개발한 운영체제
- 아이맥(iMAC)과 맥북(MacBook) 등 애플 사에서 생산하는 제품에서만 사용 가능
- 드라이버 설치 및 install과 uninstall의 과정이 단순
6. 모바일 운영체제
(1) 안드로이드(Android)
-Google 에서 개발하였고 Linux, Kernel기반의 개방형 모바일 OS
- Java, Kotlin
(2) iOS
- Applge사만 탑재 가능한 Unix기반 모바일 OS
'Challenges > 정보처리기사' 카테고리의 다른 글
[정보처리기사]4.프로그래밍 언어 활용/SW 운영체제의 활용/가상기억장치 (0) | 2022.07.04 |
---|---|
[정보처리기사]4.프로그래밍 언어 활용/SW 운영체제의 활용/기억장치 관리 (0) | 2022.07.04 |
[정보처리기사]4.프로그래밍 언어 활용/SW 운영체제의 활용/운영체제의 개념 (0) | 2022.07.03 |
[정보처리기사]4.프로그래밍 언어 활용/프로그래밍 언어/스크립트 언어 (0) | 2022.07.03 |
[정보처리기사]4.프로그래밍 언어 활용/프로그래밍 언어/객체지향 프로그래밍 (0) | 2022.07.03 |