티스토리 뷰

목차

    반응형

    [리눅스 개발자 필수] Linux 커널 Kernel 기초 이론 5가지 이해하기


    1. 리눅스 커널 접근 방식 구조


    리눅스 커널 접근하는 방법에 따라 모노리딕 커널(monolithic kernel)마이크로 커널(micro kernel)로 분류


    리눅스 커널 구조[리눅스 개발자] 리눅스 커널 분류


    2. 리눅스 모노리닉 커널


    - 컴퓨팅 자원 관리에 필요한 모든 기능을 하나로 통합한 커널

    - 같은 메모리 공간 내에 필요한 모든 기능을 구현

      : 함수 호출(function call) 혹은 전역 변수를 이용하여 커널의 기능을 사용


    - 장점 : 구현이 쉽고 시스템 자원을 효율적으로 이용

    - 단점

      : 커널 코드에 하드웨어와 관련된 저수준 상호 작용이 포함되어서 다른 시스템에서 이용하기 어려움

      : 커널의 기능을 확장할수록 커널의 크기가 방대해져 관리하기 어려움

    - Solaris, AIX, HP-UX

    3. 리눅스 마이크로 커널


    - 모노리딕 커널과는 달리 시스템 자원 관리에 필요한 기능들을 소규모 서버 모듈로 나누어 설계

      : 소규모 서버들을 관리할 수 있는 최소한의 기능만을 구현한 커널

    - 마이크로 커널은 시스템에 관련된 많은 특정 부분을 사용자 영역으로 이관


    - 장점

      : 리눅스 개발자가 기능을 확장하기 쉽고 개발된 소규모 서버 모듈을 재사용 가능


    - 단점

      : 모노리딕 커널보다 구현이 어려움

      : 메시지 전달(message passing) 방식으로 커널에서 제공하는 기능을 사용하기 때문에 오버헤드가 큼

      : 시스템 자원을 효율적으로 사용하기 어려움

    - CMU Mach, Cray UNICOS/mk 등이 있다.


    리눅스 개발자 커널[리눅스 개발자 필수] Linux 커널 Kernel 기초 이론 5가지 이해하기


    4. 리눅스 커널과 운영체제


    리눅스 운영체제 역할

    - 컴퓨터 시스템의 각종 자원을 효율적으로 관리 운영

    - 사용자에게 최대의 편리성을 제공

    - 컴퓨터 하드웨어와 사용자 간의 인터페이스 역할을 하는 시스템 프로그램


    운영체제의 핵심은 리눅스 커널 (kernel)

    - 커널은 컴퓨터 시스템의 자원을 관리하고 서비스 제공

    - 메모리에 상주하여 시스템의 구동에 필요한 환경을 만들고 관리하는 운영체제의 핵심 소프트웨어

    자원 (resource)

      : 물리적 자원 - 프로세서, 메모리, 디스크, 터미널, 네트워크 등과 같은 시스템 구성 요소들과 주변 장치

      : 추상적 자원 - 태스크와 스레드, 페이지page와 세그먼트segment, 파일 및 inode, 통신 프로토콜 및 패킷 등, 보안 혹은 사용자 계정에 따른 접근 제어 등


    리눅스 커널 개발자[리눅스 개발자] 리눅스 커널 구조


    5. 윈도우와 리눅스


    윈도우 NT

    - 초기에는 마이크로 커널로 설계

    - 버전 3.51 이후부터는 성능상의 이유로 더는 마이크로 커널 구조 채택하지 않음


    리눅스

    - 모노리딕 커널 방식을 사용

    - 마이크로 커널의 확장성과 재사용성에 대한 장점을 모듈module이라는 개념을 도입하여 보완


    [리눅스 개발자 필수] Linux 커널 Kernel 기초 이론 5가지 이해하기

    반응형