본문 바로가기

컴퓨터 공학 자료(학부)/Linux

리눅스


arch : CPU에 따라 다르게 구현해야하는 코드들이 각 CUP의 어셈블리 코드로 작성 되어 있음

     arch/i366/boot/bzImage : 컴파일된 커널 이미지 파일, 약 2MB 용량 (cpu가 x86계열일 경우)

include : 헤더파일

     include/linux : 커널 프로그래밍시 사용하는 헤더파일들이 있다.

          include/linux/kernel.h : printk()

          include/linux/module.h : MODULE_LICENSE()

          include/linux/init.h : module_init(), module_exit()

kernel : 커널의 핵심 부분. 타이머, fork, 리소스관리 관련 코드, 인터럽트 처리, 시스템 콜

crypto : 암호화 라이브러리 관련 코드

drivers : 디바이스 드라이버 관련 부분

fs : 파일시스템 관련 부분

init : 커널 부팅 과정시 수행되는 초기화 관련 루틴, PID1번인 init 프로세스를 위한 코드

ipc : IPC(Inter Process Communication)관련 내용

lib : 커널의 라이브러리 루틴 관련 코드

mm : 메모리 관리와 관련된 코드

net : 네트워킹 관련 내용

 

System.map : 컴파일 할 때마다 새로 생성되는 파일이다. 커널에 들어있는 심볼에 대한 정보를 담고 있다.

메모리 주소, ? , 심볼 형태로 저장되어 있다.


    1 00100000 A phys_startup_32

    2 c0100000 A _text
    3 c0100000 T startup_32
    4 c01000a4 T startup_32_smp
    5 c0100124 t checkCPUtype
    6 c01001a5 t is486
    7 c01001ac t is386
    8 c0100210 t L6
    9 c0100212 t check_x87
   10 c010023a t setup_idt
   11 c0100257 t rp_sidt
   12 c0100264 t ignore_int
   13 c0100298 T _stext
   14 c0100298 T stext
   15 c01002a0 t rest_init
   16 c01002e0 t do_pre_smp_initcalls
   17 c01002f0 t run_init_process
   18 c0100320 t init
   19 c0100520 t try_name
   20 c0100750 T name_to_dev_t
   21 c0100a30 t calibrate_delay_direct
   22 c0100b70 T calibrate_delay
   23 c0100d90 T thread_saved_pc

퍼옴