LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1331|回复: 1

谁知道_initfunc()

[复制链接]
发表于 2003-4-11 00:19:21 | 显示全部楼层 |阅读模式
我在读linux源代码时,在初始化部分,经常看到一些函数如setup_arch包含在一个_initfunc()的东西里面,谁知道这个_initfunc()是起什么作用的?多谢
发表于 2003-4-16 00:16:43 | 显示全部楼层
[init]
    init是第一个进程,或者说内核线程

从boot一路过来,最早执行startup_32,从
start_kernel( )程序用于初始化系统内核的各个部分,包括:

    *设置内存边界,调用paging_init( )初始化内存页面。
    *初始化陷阱,中断通道和调度。
    *对命令行进行语法分析。
    *初始化设备驱动程序和磁盘缓冲区。
    *校对延迟循环。

最后的function'rest_init' 作了以下工作:

   ·开辟内核线程'init'
   ·调用unlock_kernel
   ·建立内核运行的cpu_idle环, 如果没有调度,就一直死循环

实际上start_kernel永远不能终止.它会无穷地循环执行cpu_idle.

    最后,系统核心转向move_to_user_mode( ),以便创建初始化进程(init )。此后,进程0开始进入无限循环。

    初始化进程开始执行/etc/init、/bin/init 或/sbin /init中的一个之后,系统内核就不再对程序进行直接控制了。之后系统内核的作用主要是给进程提供系统调用,以及提供异步中断事件的处理。多任务机制已经建立起来,并开始处理多个用户的登录和fork( )创建的进程。

建议看看bootsect.s分析这个帖子
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表