KimSangLab 2018. 1. 6. 10:47

 리눅스는 내부 커널 정보를 확인 할 수 있으며 커널 소스 코드 관련 디렉터리 구조는 다음과 같다.


1) kernel

  태스크 관리자가구현된 디렉터리이며 태스크의 생성과 소멸, 프로그램의 실행, 스케줄링, 시그널 처리 등의 기능이 포함되어 있다. 


 2) arch

  하드웨어 종속적인 부분들이 포함되어 있다. arch 폴더 내 boot 폴더는 시스템의 부팅 시 사용되는 내용등을 포함하며 kernel 폴더는 태스트 관리 자 중 문맥 교환이나 쓰레드 관리 기능을 포함한다. mm 폴더의 경우 메모리 관리 자 중 페이지 부재 결함 처리 기능이 포함되어 있으며 lib 폴더는 커널이 사용하는 라이브러리 함수가 구현되어 있다. 


 3) fs 

  리눅스에서 지원하는 파일 시스템과 open(), read(), write() 등의 시스템 호출이 구현되어 있다. 


 4) driver 

  리눅스에서 지원하는 디바이스 드라이버가 구현되어 있다. 블록 디바이스 드라이버, 문자 디바이스 드라이버, 네트워크 디바이스 드라이버 등이 포함 된다. 


 5) net 

  리눅스가 지원하는 통신 프로토콜이 구현되어 있다. 


 6) init 

  커널의 메인 시작 함수가 포함되어 있다. 


 7) include 

  리눅스 커널이 사용하는 헤더 파일들이 구현되어 있다. 


리눅스 커널은 다음 3단계로 구성된다. 


1. 커널 구성

  현재 시스템에 존재하는 하드웨어 특성, 커널 구성 요소, 네트워크 특성 등의 정보를 커널에게 알려주는 과정


 2. 커널 컴파일

  소스 코드를 이용하여 실행 가능한 커널을 만드는 과정


 3. 커널 인스톨

  새로 생성된 커널로 시스템이 부팅 될 수 있도록 만드는 과정