반응형

블로깅

리눅스 및 우분투에서 커널 소스가 어디에 포함되어 있는 지 궁금했습니다.
리눅스 커널이 커널 소스를 컴파일 한 OS이기 때문에, 커널 소스를 가지고 있을거라 생각했습니다.

1. 커널 소스 위치
찾는 방법
최상위 루트에서 find . -name "*linux*" 라고 검색


많은 디렉토리 중, 몇 개의 디렉토리에 대해서 간단히 정리해 보았습니다.

대부분 디렉토리 명에서 힌트를 얻을 수 있습니다.

arch : 아키텍쳐의 줄임말로서, 아키텍쳐와 관련된 코드들이 들어있습니다. 디렉토리로 이동해보면, 서브 디렉토리로는 아키텍쳐 별 디렉토리가 존재합니다. 낯익은 아키텍쳐들이 많이 있습니다.

1) arm : 32비트 계열 ARM 아키텍처 코드

2) arm64 : 64비트 계열 ARM 아키텍쳐 코드

3) x86 : 인텔 x86 아키텍쳐 코드


init : 커널을 초기화에 관련된 코드들이 존재합니다. 

mm : Memory Management의 약자로서 메모리 관련된 소스들이 존재합니다. arch 하위에도 mm 관련 소스들이 존재하며, 특정 아키텍쳐마다 메모리 관리 기법이 다르기 때문에 이렇게 구성되어 있습니다.

drivers : 시스템의 디바이스 드라이버에 관련된 것들이 존재합니다. cdrom이나 power 등의 예가 있습니다.

ipc : 프로세스간에 통신을 하는 ipc 관련 소스들이 존재합니다. 일반적으로 사용하는 메시지큐, 공유메모리 등이 있습니다.

fs : 리눅스의 모든 파일 시스템 소스 코드가 존재합니다. 많이 보는 ext2, fat 등이 있습니다.

kernel : 커널 소스들이 들어 있습니다. 메인 소스코드가 존재합니다.

1) irq : 인터럽트 관련 코드

2) sched : 스키쥴링 관련 코드

3) power 파워 관련 코드

4) locking : 커널 동기화 관련 코드

5) printk : 커널 콘솔 관련 코드

net : 네트워크 관련 코드들이 있습니다. ethernet, ipv4, ipv6 등

lib : 라이브러리가 있습니다.

scripts : 커널 설정에 사용되는 스크립트들이 있습니다.

include : 커널 코드 빌드에 필요한 헤더 파일들이 있습니다.



https://letitkang.tistory.com/231

반응형

'Linux > Kernel(커널)' 카테고리의 다른 글

[Kernel(커널)] sysctl 명령어  (0) 2024.02.24
[Kernel] 커널 빌드하기  (0) 2021.08.12
[Linux] Operating System - Linux  (0) 2021.06.22