School Lecture Study/Linux System Application Design
4-1. Design Principle of Linux Kernel
vㅔ로
2022. 12. 19. 23:57
728x90
중앙대학교 3-2 리눅스 응용 설계 (손용석 교수님) 과목 정리입니다.
Monolithic Kernel vs . Microkernel
- kernel이 OS의 가장 중요한 부분
Monolithic kernel
- OS architecture
- device drivers, file system, IPC 같은 대부분의 component가 kernel space에 포함
- 실행 가능한 module을 runtime에 dynamically load & unload 가능
Microkernel
- software의 near-minimum amount
- OS를 구현하기 위한 mechanism을 제공
- mechanism은 address space management, thread management, inter-process communication (IPC)을 포함
monolithic kernel achieves higher performance
Advantage of Monolithic Kernel
- CPU scheduling, memory management, file management, 다른 OS function을 system call을 통해 제공
Disadvantages of Monolithic kernel
- 어느 service가 fail이 발생한 경우, 전체 system이 fail → 모든 service가 kernel space에 존재하기 때문에
- user가 새로운 service를 추가해야 할 때, user는 전체 OS를 수정해야 한다. (kernel compile 다시 해야 함)
Why we need Kernel Module
- Loadable kernel module : runtime에 kernel과 code가 연결될 수 있는 object file
- linux는 modularity, extensibility를 loadable kernel module로부터 얻음
- 대부분의 kernel function은 kernel build시 module로 컴파일 될 수 있다.
- Device drivers, network protocols, file systems, etc
728x90