35. 실제 운영체제의 이해
리눅스 운영체제
리눅스 커널(운영체제) + 시스템 프로그램(쉘) + 응용 프로그램으로 구성되어 있으며 다음과 같은 구성으로 이루어져 있다.
쉘 종류
Shell은 사용자와 컴퓨터 하드웨어 또는 운영체제 간 인터페이스를 말한다.
- 사용자의 명령을 해석하여 커널에 명령을 요청해주는 역할
- 관련 시스템 콜을 사용하여 프로그래밍이 됨
Shell 종류
- Bourne-Again Shell (bash) : GNU 프로젝트의 일환으로 개발되었고 디폴트 쉘로 사용 됨
- Bourne Shell (sh)
- C Shell (csh)
- Korn Shell (ksh) : 유닉스에서 가장 많이 사용 됨
총 정리
- Process Management
- 응용 프로그램은 여러 개의 프로세스로 관리 됨
- 프로세스 스케쥴러가 프로세스를 실행/종료하며 인터럽트 처리를 관여 함
- Memory Management
- 가상 메모리를 통해 page 기반의 메모리 관리를 진행
- IO Device Management
- Virtual File System
- File, Device Drivers, Network 관리
- System Program
- 쉘을 통해 시스템 콜을 호출
- 각 프로그래밍 언어에서 해당 운영체제의 시스템 콜을 호출
안드로이드 스마트폰
Linux Kernel + (Shell + Some basic programs) + Android Framework
IoT
IoT는 Internet of Things로 각종 사물에 센서와 통신 기능을 내장하여 인터넷에 연결하는 기술이다. 이 때 사용되는 기기들은 단순한 동작을 하고 배터리 사용량을 최소화해야하기 때문에 IoT 하드웨어 사양 혹은 OS 기능을 최소화시켜야 한다.