1

我玩了一下内核 linux,在引导过程中遇到了一些错误: Kernel panic - not syncing: Attempted to kill init! 我想了解 linux 内核的引导过程一般是如何工作的,尤其是在 start_kernel() 函数和负载期间和之后的rootfs。

感谢你们。

4

1 回答 1

0

让我们举一个通过 mmc 在 beaglebone 上移植 linux 的例子。你了解启动过程的概念。它是这样工作的 -

  1. 首先,当我们给板子上电时,bootrom 代码会执行(在板子的 rom 中硬编码)并初始化 CPU,禁用 MMU。
  2. 执行引导 ROM 代码后,它会跳转到 MLO(带头的 X-loader,它是特定于板的)并加载它。
  3. MLO 执行并加载特定于板的 Uboot,并且所有外围设备都在此处初始化。
  4. 现在 Uboot 执行并寻找内核和 rootfs 寻址的 bootcmd(在 mmc 中)。这调用内核
  5. 提取内核,然后调用 initramfs(根文件系统)

实际上,用户不能仅通过内核与硬件交互,因此 rootfs 为内核提供了用户接口来运行应用程序。

于 2015-06-04T07:28:27.823 回答