请简述 arm linux 内核启动流程
时间: 2023-10-01 09:03:14 浏览: 188
ARM上的Linux内核启动过程
当系统加电后,BIOS(或 UEFI)会初始化硬件并加载 U-Boot(或其他 bootloader)到内存中。接下来,U-Boot 会初始化更多硬件并加载 Linux 内核到内存中。内核加载后,它会执行以下步骤:
1. 执行 startup_32(或 startup_64)汇编代码,这是内核启动的入口点。
2. 初始化 CPU,包括设置页表、启用 MMU 等等。
3. 初始化内存管理,包括设置内存映射、初始化内存池等等。
4. 初始化进程管理,包括初始化调度器、创建 idle 进程等等。
5. 初始化系统调用接口。
6. 初始化设备驱动子系统,包括注册驱动、初始化设备等等。
7. 初始化文件系统,包括安装根文件系统、挂载文件系统等等。
8. 启动 init 进程。
最终,init 进程会执行 /etc/init.d/rcS 脚本,这是 Linux 系统启动过程中的第一个用户空间脚本,它会启动各种系统服务和用户进程。
阅读全文