内核初始化中的调用顺序

Linux 内核初始化过程中,子系统初始化调用的顺序是经过精心设计的,以确保内核的各个部分能够按正确的依赖关系进行初始化。根据搜索结果,内核初始化的一般顺序如下:

  1. CPU 检查:内核首先检查 CPU 的特性和数量。

  2. 内存检查:接下来,内核检查和初始化内存。

  3. 设备总线发现:内核识别系统中的设备总线。

  4. 设备发现:内核发现系统中的设备,并初始化设备驱动程序。

  5. 辅助内核子系统设置:内核设置辅助子系统,如网络和文件系统等。

  6. 根文件系统挂载:内核挂载根文件系统,以便可以访问文件系统。

  7. 用户空间启动:最后,内核启动用户空间的进程,如 init 或 systemd。

在内核初始化过程中,会使用不同的宏来指定初始化函数的执行顺序,例如early_initcallcore_initcallsubsys_initcallfs_initcall等。这些宏定义了初始化函数在内核启动过程中的不同阶段被调用。例如,early_initcall通常用于架构特定的硬件初始化,而fs_initcall用于文件系统相关的初始化。subsys_initcall用于子系统的初始化,它在核心初始化之后,在文件系统初始化之前。

这些宏通过__define_initcall实现,该机制允许内核在启动时按顺序调用不同的初始化函数。每个宏对应内核初始化的一个特定阶段,确保了初始化函数按照正确的顺序执行。

用户空间启动?

用户空间启动是操作系统启动过程中的一个关键阶段,它涉及到从内核空间向用户空间的转换,并启动用户空间的第一个进程。以下是用户空间启动的具体过程:

  1. 内核初始化完成:在内

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万物琴弦光锥之外

给个0.1,恭喜老板发财

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值