운영체제의 개요 및 종류
2023. 9. 16. 03:41ㆍ전공/운영체제
운영체제란?
응용과 컴퓨터 하드웨어 사이에 위치하는 레이어
- 운영체제는 일반적인 프로그램과 하드웨어 사이의 중간 소프트웨어
운영체제의 역할
- 프로그램의 구동 및 운영을 쉽게 할 수 있도록 함
- 프로그램들이 자원을 공유할 수 있도록 함
- 프로그램들이 디바이스와 interaction 할 수 있도록 함
운영체제와 하드웨어
운영체제의 관여 작업 개요도
- CPU : 입력된 data를 가지고 code(혹은 프로그램) 실행
- Memory : 디스크로부터/에 code와 data 읽기/쓰기 작업 수행
- Disk(Storage) : code와 data를 반영구적으로 저장
- 사용자가 프로그램을 실행(data를 함께 사용)
- 프로그램이 프로세스 형태로 메모리에 올라감
- CPU가 메모리에 올라와 있는 프로세스를 구성하는 명령어들을 불러와서 연산작업을 처리
- 디스크에 저장되어 있는 데이터도 가져와서 메모리 공간에 할당
- 프로세스의 처리결과는 메모리를 통해 사용자에게 결과물로 전달된다.
- 결과물은 데이터의 구조를 가지고 디스크에 저장됨
운영체제 설계 목표
추상화(Abstraction)
- 시스템을 사용 및 관리하기 쉽도록 함
성능 최적화(Performance)
- 효율성(Efficiency) : 제한된 자원 하에서 최선의 성능 도출
- 공정성(Fairness) : 특정 프로그램의 자원 할당 편중 방지
보호(Protection)
- 응용 간의 할당 메모리 영역 침범 방지
- 특정 응용의 CPU 자원 독점 방지
- 특정 응용의 OS 권한 명령어 실행 방지
기타
- 보안(Security), 신뢰성(Reliability), 에너지 효율성, 이동성
컴퓨터 시스템 구조
CPU
- 컴퓨터 연산장치
Memory
- 프로그램 또는 데이터가 일시적으로 탑재되는 공간 like 책상
Memory controller
- 메모리와 CPU사이에 존재하여 메모리 관리를 신속하게 효율적으로 수행할 수 있도록 함
Device
입출력 장치
키보드, 마우스, 모니터 등
주변장치(peripheral device)
이더넷 카드, 스피커, 와이파이, 블루투스, 프린터 등
Storage
- 데이터 저장
device controller
- 디바이스 관리 효율적으로 해주는 소형 CPU
System bus
- 컴퓨터의 각 구성요소들이 서로의 데이터를 송수신하고, 신호를 전달
OS(운영체제)
- 프로세스 형태로 존재
- 메모리 위에 존재
- CPU에 의해서 작업이 처리됨
CPU 스케쥴링
- 프로세스에게 CPU 시간 할당
- Throughput 최대화
- Fairness 최대화
메모리 관리
- 물리-가상 메모리 매핑
- 페이징
IO 관리
- 빠른 CPU / 느린 IO장치
- 인터럽트 / 캐싱
- CPU이용률 최대화
운영체제의 종류
UNIX
- 멀티태스킹(Multi-tasking) 기반의 시분할(Time sharing) OS
- TIme sharing : 프로세스가 사용할 시간을 정해서 정해진 시간만 큼씩 CPU자원을 사용
- 1964년 MIT, Bell Lab, GE 합작 GE-645용 OS, Multics가 기원
- 1971년 Bell Lab에서 Ken Thompson 및 Dennis Ritchie가 개발
- UNIX 커널을 재컴파일하고 유틸리티를 제작하기 위한 C언어 파생
- TCP/IP, socket 등의 네트워크 프로토콜, 인터페이스 포함
UNIX-like OS
- POSIX(Portable Operating System Interface & UNIX)
- IEEE에서 제정한 유닉스 응용 인터페이스 표준 규격
- POSIX를 따르는 OS : UNIX-like OS
- Linux, FreeBSD 등
Linux
- Linux Kernel + GNU (GNU/Linux)
- Multi-users, Multi-tasking, Multi-threads 기반의 Time sharing OS
- 1991년, 필란드 헬싱키 대학의 Linus Benedict Torvalds 가 개발
- 교육용 UNIX-like OS인 Minix에서 파생, GPL License채택
- 클라우드 90%, 스마트폰 82%, 임베디드 62%, 슈퍼컴퓨터 99% 점유
Linux의 배포판
- Debian
- .deb 패키지, apt 패키지 관리자
- Ubuntu
- RHEL(Redhat Enterprise Linux)
- .rpm 패키지, yum 패키지 관리자
- CentOS, Redora
- SUSE
- Zypp 패키지 관리자
- openSUSE
- Zentoo Linux
MS-DOS
- Microsoft Disk Operating System
- 1981년 MS에서 IMB PC용 OS개발 외주로 출시
- Seattle Computer Products회사의 Tim Paterson가 개발한 86-DOS(Q-DOS)의 변형판
- Single-user, Single-tasking, Batch processing
- Command Line Interface(CLI)
- 1982 MS-DOS 1.0부터 1994 MS-DOS 6.22까지 출시
- cmd.exe가 MS-DOS의 CLI참조
MS Windows
- Microsoft Windows
- MS-DOS + GUI(Graphic User Interfaces) + Multi-tasking
- 1985년 Windows 1.0이 도스의 확장 프로그램으로 배포
- 1990년 Windows 3.0 출시
- 1995년 DOS와 분리된 독립 OS인 Windows 95 출시
- WIndows NT 등을 거쳐 현재 Windows 10까지 출시
- Windows 10에는 POSIX 호환 PowerShell이 제공
macOS
- NeXTSTEP의 후속 OS인 Darwin 기반 Mac 전용 운영체제
- NeXTSTEP : 1985년 CMU에서 개발한 Mach Kernel + UNIX BSD API
- 이전 이름, OS 10
- 이전 (1984-2001년)에는 Mac 운영체제로 System 1 - OS 9 사용
- 2016년 파일시스템으로 APFS 개발(Apple File System)
그 외 모바일 운영체제
Android
- Google 개발, Linux 기반 Open source mobile OS
- Android 1.0(2008) - C..P 시작 네이밍 - Android 11(2020)
- Samsung, LG, Xiaomi, Motorola 등에서 채택
- Kernel + SDK 전부 공개
IOS
- Apple 개발, macOS기반(Darwin/UNIX계열), 폐쇄성
- iPhone, iPod Touch, iPad에서 사용
- Android에 비해 상대적으로 강력한 보안성, 일관성, 연동성