startup

简述

从上电开始,系统启动过程

代码

kernel/kernel.ld指定入口函数为_entry(kernel/entry.S),同时指定kernel Image的物理内存 起始地址为0x80000000

直至第一个用户程序的调用流程,如下:

_entry  -> start()       // kernel/start.c
        -> main()        // kernel/main.c
        -> userinit()    // kernel/proc.c
        -> scheduler()   // kernel/proc.c
        -> swtch()       // swtch.S
        -> forkret()     // kernel/proc.c
        -> usertrapret() // kernel/trap.c
        -> userret()     // kernel/trampoline.S
        -> start()       // user/initcode.S
        -> main()        // user/init.c

Last updated

Was this helpful?