linux kernel x86 启动主线函数

arch/x86/boot/header.S   -->   _start   -->   calll   main

arch/x86/boot/main.c   -->   main -- >   go_to_protected_mode

arch/x86/boot/pm.c   -->   go_to_protected_mode   -->   protected_mode_jump

arch/x86/boot/pmjump.S   -->   GLOBAL(protected_mode_jump)   -->   jmpl    *%eax

arch/x86/boot/compressed/head_64.S   -->   ENTRY(startup_32)   -->   ENTRY(startup_64)   -->    jmp *%rax

arch/x86/kernel/head_64.S   -->   startup_64   -->   ENTRY(secondary_startup_64)   -->   lretq (%rax)

arch/x86/kernel/head64.c   --> x86_64_start_kernel   -->   start_kernel

init/main.c   -->   start_kernel   -->   rest_init

posted @ 2017-11-16 14:57  ShannonSN  阅读(720)  评论(0编辑  收藏  举报