실제 운영체제의 이해
리눅스 운영체제
- 리눅스 커널 (운영체제) + 시스템 프로그램(쉘) + 응용 프로그램
쉘 (shell)
사용자와 컴퓨터 하드웨어 또는 운영체제 간의 인터페이스
- 사용자의 명령을 해석하여 커널에 명령을 요청
- 관련된 시스템 콜을 사용하여 작성된 프로그램
- 종류
- Bourne‑Again Shell (bash) : GNU 프로젝트의 일환으로 개발된 LINUX 기본 쉘
- Bourne Shell (sh)
- C Shell (csh)
- Korn Shell (ksh) : 유닉스에서 가장 많이 사용됨
Process Management
- 응용 프로그램은 여러개의 process로 관리됨
- process scheduler
- process 실행, 종료 관리
- 인터럽트 처리 관리
Memory Management
- 가상 메모리: page 기반 메모리 관리
I/O Device Management
- VFS(Virtual File Syste)
- file, Device drivers, Network 관리
시스템 프로그램
- 핵심은 쉘
- bash (Bourne‑again shell)
- 내부는 시스템콜을 호출하도록 구현
- 각 프로그래밍 언어
- 필요시 해당 운영체제의 시스템콜 호출
Android
- 리눅스 커널 + (쉘 + 응용 프로그램) + 안드로이드 프레임워크
IoT와 운영체제
- 초소형 기기의 경우 OS 기능 최소화