1. 리눅스 커널 이란 ?
: 커널이란 운영체제의 핵심을 이루는 부분으로 CPU, 메모리 그리고 기타 디바이스 등의 시스템
리소스를 관리하고, 사용자 프로그램이 이를 사용할 수 있도록 해줍니다.
"운영체제는 자원관리자(resource manager)이다."
크게 다섯가지로 나뉘며 다음과 같은 기능을 제공하는 역활을 합니다.
- 태스크 관리자 : CPU라는 물리적 자원을 태스크라는 추상적인 자원으로써 제공.
- 메모리 관리자 : 메모리를 세그먼트나 페이자라는 개념으로 제공.
- 파일 시스템 : 디스크를 파일이라는 개념으로 제공.
- 네트워크 관리자 : 네트워크 장치를 소켓이라는 개념으로 제공.
- 디바이스 드라이버 관리자 : 각종 장치를 디바이스 드라이버를 통해 일관되게 접근하도록 해줌.
2. 리눅스 소스레벨 구조
<1> kernel 디렉터리
: 태스크 관리자가 구현된 디렉터리이다.
- 테스크의 생성과 소멸, 프로그램의 실행, 스케줄링, 시그널 처리등의 기능 구현.
<2> arch 디렉터리
: 하드웨어 종속적인 부분들이 구현된 디렉터리이다.
- arch/x86/boot : 시스템 부팅시 사용하는 부트스트랩 코드 구현.
- arch/x86/kernel : 태스크 관리자 중에서 문맥교환이나 쓰레드 관리기능 구현.
- arch/x86/mm : 메모리 관리자 중에서 페이지 부재 결함 처리 기능 구현.
- arch/x86/lib : 커널이 사용하는 라이브러리 함수 구현.
- arch/x86/math-emu : FPU(floating point unit)에 대한 애물레이텨 구현.
<3> fs 디렉터리
: 다양한 파일시스템과 시스템 호출이 구현되 디렉터리이다.
- 다양한 파일 시스템을 사용자가 일관된 인터페이스로 접근할 수 있도록 하기 위해
리눅스가 도입한 가상 파일 시스템 존재.
<4> mm 디렉터리
: 메모리 관리자가 구현된 디렉터리이다.
- 물리 메모리 관리, 가상 메모리 관리 태스크마다 할당되는 메모리 객체 관리등의 기능이 구현.
<5> driver 디렉터리
: 디바이스 드라이버가 구현된 디렉터리이다.
- 파일시스템을 통해 접근되는 블록 디바이스 드라이버, 사용자 수준 응용 프로그램이 장치파일을
통해 직접 접근하는 문자 디바이스 드라이버, 그리고 TCP/IP를 통해 접근되는 네트워크 디바이스 드라이버.
<6> net 디렉터리
: 통신 프로토콜이 구현된 디렉터리이다.
- TCP/IP 뿐만 아니라 UNIX 통신 프로토콜, 802.11, IPX, RPC, AppleTalk, bluetooth 등 다양한 통신 프로토콜을 구현해 놓았다. 사용자 인터페이스를 제공하는 소켓 역시 이 디렉터리에 구현.
<7> ipc 디렉터리
: 프로세스간 통신 기능이 구현된 디렉터리이다.
- 파이프는 fs 디렉터리에. 시그널은 kernel 디렉터리에, 그리고 소켓은 net 디렉터리에 구현.
<8> init 디렉터리
: 커널 초기화 부분, 즉 커널의 메인 시작 함수가 구현된 디렉터리이다.
- start_kernel() 함수는 커널 전역적인 초기화를 수행.
<9> include 디렉터리
: 해더 파일들이 구현된 디렉터리이다.
<10> others 디렉터리
: 주요 기능이 구현된 디렉터리 이외에도 여러 다른 디렉터리가 존재한다.
- Documentation 디렉터리 : 문서파일 존재.
- lib 디렉터리 : 커널 라이브러리 함수들이 구현
- scripts 디렉터리 : 커널 구성 및 컴파일 시 이용되는 스크립트 들이 존재.
'IT 학습 공간 ::)' 카테고리의 다른 글
리눅스 User Account Management ( useradd/usermod/userdel ) (0) | 2019.05.08 |
---|---|
리눅스 vi 에디터 사용법 (0) | 2019.05.02 |
리눅스 기본 명령어 (Linux) (0) | 2019.04.29 |
vmware 사용법 / centos 7 리눅스 설치 ( 리눅스 서버 구축 ) (0) | 2019.04.28 |
vmware 설치 12 pro / win10 (0) | 2019.04.27 |