
23.12.06 최초 작성
init/main.c
kernel_start() : 커널을 시작하는 함수, setup_arch() 호출arch/arm64/kernel/setup.c
setup_arch() : arm코어 설정하는 함수, 메모리를 초기화 하는 기능 수행
kernel_start()에서setup_arch()호출
setup_arch()에서 메모리 초기화
init/main.c
kernel_start() : 커널을 시작하는 함수, arch_call_rest_init() 호출
arch_call_rest_init() : rest_init() 함수 호출
rest_init() : kernel_thread() 함수를 호출 해 initd 프로세스 생성
cpu_startup_entry() : 익셉션을 유발해 el0에서 exec() 호출
/kernel/fork.c
kernel_thread() : kernel_clone_args에 넘겨받은 인자를 저장하고 kernel_clone() 함수 호출
kernel_clone() : copy_process() 호출 해 프로세스를 복사, trace_sched_process_fork()호출 해 익셉션 처리, wake_up_new_task()를 통해 생성한 프로세스 깨움
rest_init()의kernel_thread()를 통해initd프로세스를 생성하는 부분
kernel_thread()에서kernel_clone()함수 호출
copy_process(),trace_sched_process_fork(),wake_up_new_task()호출