xv6的启动过程

bootloader

1. bootasm.S : start32

2. bootmain.c : bootmain

kernel

3. main.c : main

4. proc.c : userinit

  创建第一个用户进程 initcode

5. main.c : mpmain

  调用scheduler开始任务调度

 

用户空间的第一个进程

  调用内核接口SYS_exec,使用 init 替换掉自己,然后开始执行init,在init中循环启动sh,等待sh执行结束,然后又启动sh , 

 

posted @ 2018-07-26 16:33  方田  阅读(631)  评论(0)    收藏  举报