linux系统上电初始化代码主要是:
1. 4个汇编程序 bootsect.S setup.S head.S entry.S
2. init目录下的main.c文件。
main.c下主要函数是start_kernel。主要关注以下几个方面
1.中断系统及调度系统。
2.文件系统的初始化。
3.设备管理系统的初始化。
4.网络协议的初始化。
rest_init函数调用kernel_thread创建一个内核线程init(linux的内核线程是没有虚拟存储空间的进程,它运行在内核中,直接使用物理地址空间),init线程在do_basic_setup函数中调用和网络有关的初始化函数sock_init(为网络创建执行环境,并为协议栈申请内存空间),do_initcalls函数调用__initcall_start和__initcall_end。
阅读(1718) | 评论(0) | 转发(0) |