1. 커널
- 운영체제의 성능을 좌우
- 운영체제의 핵심적인 기능을 모아놓은 것
구성
- 프로세스 관리: 프로세스에 CPU 배분
- 메모리 관리: 프로세스가 작업 배치, 가상공간 제공
- 파일 시스템 관리: 데이터 접근 저장 인터페이스 제공
- 입출력 관리; 필요한 입 출력 서비스 제공
- 프로세스 통신 관리: 공동 작업을 위한 프로세스 간 통신 환경 제공
종류
1. 단일형(Monolithic architecture)
- 초창기 운영체제 구조
- 모듈둘이 구분 없이 구성
- main에 모든 기능을 구현한 형태
2 계층형(Layered architecture)
- 비슷한 기능을 모아 모듈화
- 계층간의 통신을 통해 운영체제 구현
- 윈도우 비롯한 대부분의 운영체제는 이 구조
3. 마이크로 구조(Micro architecture)
- 각 모듈이 세분화 되어 존재하고 모듈 간 정보 교환은 프로세스 간 통신을 통해 이루어짐
- 운영체제 마하(OS X, iOS 의 커널)
2. 인터페이스
- 커널에 사용자의 명령을 전달하고 결과를 사용자에게 알려주는 역할
3. 시스템 호출(System Call)
- 응용프로그램과 커널의 인터페이스
- 커널이 자신을 보호하기 위해 만든 인터페이스
- 사용자가 자원에 직접 접근하는 것을 막고 시스템 관련 서비스들을 모아 제공한다
- 커널이 제공하는 시스템 자원의 사용과 연관된 함수이다.
- 응용프로그램이 하드웨어 자원에 접근하거나 운영체제가 제공하는 서비스를 이용하려고 할때 필요하다
* API (Application Programing Interaface) : 응용 프로그램이 자신과 연관된 프로그램을 만들 수 있도록 제공하는 인터페이스
* SDK (System Developer's Kit): 개발자를 위한 종합 선물세트 (Android SDK -> Android Stdio)
4. 드라이버
- 하드웨어와 커널의 인터페이스
- 디바이스 드라이버: 하드웨어 제작자가 만든 프로그램
댓글