시뻘건 개발 도전기

[linux] 커널 본문

기타/DevOps

[linux] 커널

시뻘건볼때기 2023. 3. 31. 14:50
반응형

커널은 OS의 핵심이라고 봐도 무방할 정도로 시스템의 모든 것을 완전하게 통제한다.

운영체제의 다른 부분 및 으용 프로그램  수행에 필요한 여러 서비스를 제공하게되는데 [그림 1]과 [그림 2]을 함께 살펴보면 이해하기 쉬울 것이다.

[그림 1] 커널
[그림 2] app과 kernel 그리고 하드웨어

APP은 라이브러리를 통해서 개발이 되는데 라이브러리는 System Call을 통해서 kernel space에 진입하게된다. 만약 하드웨어의 자원이 필요하다! 그런다고하면 Device Driver를 통해 하드웨어에 접근도 가능하다.

 

그래서 리눅스 커널의 주요 기능은 뭘까?

  • 하드웨어 관리/추상화
    • 디바이스 드라이버만이 하드웨어가 제공하는 기능이나 프로토콜에 관여한다.
    • 사용자 프로그램은 하드웨어에 종속정인 작업이 필요하지 않다.
    • 프로세스와 스레드 관리
      • cpu 타임 공유와 메모리 보호
        • cpu 코어 갯수보다 더 많은 수의 프로그램이 동시 수행이 가능 (프로세스 스케줄러)
        • 메모리 주소 정보를 이용한 악의적 공격에 대한 메모리 보안 기능 제공
    • 메모리 관리
      • 개별 프로세스에 가상의 연속된 메모리 공간을 제공
        • 32bit 머신: 4GB, 64bit 머신: 16EB
        • 물리메모리보다 큰 크기의 프로그램이 동시에 실행 가능 (페이징)
      • 실제는 물리 메모리 내에서 같이 섞여 할당 되고 해제
    • I/O 관리
      • 디바이스 드라이버 위에 다양한 I/O를 지원
반응형

'기타 > DevOps' 카테고리의 다른 글

[docker] alpine linux 이미지 만들고 실행하기  (0) 2023.03.31
[docker] 다중 운영체제 지원  (0) 2023.03.30
[docker] 컨테이너 기술  (0) 2023.03.14
Comments