본문 바로가기

IT/Linux

[Linux] directory 구성 / 리눅스 소스레벨 구조

외부 업체에서 제공하는 프로그램을 설치할 경우, /opt에,
컴파일 해서 설치하는 경우나 사용자가 압축을 풀어 설치하는 경우는 /usr/local을 기본 디렉토리로 설치되며,
패키지로 설치하는 경우, /usr을 기본 디렉토리로 설치됩니다.

그리고, 디렉토리 구성은
/usr[/local]/bin : 실행파일
/usr[/local]/share: 공유파일로 그림이나 문서, 아이콘등
/usr/[local]/lib: 각종 라이브러리
/etc: 각종 설정파일
/var: 각종 상태나, 캐시등
$HOME/.패키지명: 사용자별 설정 및 저장된 파일 및 작업디렉토리

 


<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 디렉터리 : 커널 구성 및 컴파일 시 이용되는 스크립트 들이 존재.

 

 

 

 

리눅스(Linux) kernel 구조

1. 리눅스 커널 이란 ? : 커널이란 운영체제의 핵심을 이루는 부분으로 CPU, 메모리 그리고 기타 디바이스 등의 시스템 리소스를 관리하고, 사용자 프로그램이 이를 사용할 수 있도록 해줍니다. "

wlsvud84.tistory.com

 

'IT > Linux' 카테고리의 다른 글

apt-get  (0) 2020.09.25
[Linux] cpu 정보 확인  (0) 2020.09.25
apt-get install 로 설치된 위치찾기  (0) 2020.09.25
pip & pip3 설치(install) 방법  (0) 2020.09.25
Library 경로 설정  (0) 2020.09.25