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

'School Lecture Study > Linux System Application Design' 카테고리의 다른 글

6-1. Synchronization (1)  (0) 2022.12.20
5. Process and Thread  (0) 2022.12.20
4-2. Kernel module  (1) 2022.12.19
3-2. System calls  (0) 2022.12.19
3-1. Linux Commands and Tools  (0) 2022.12.10