Linux Booting Process:
(1) BIOS
功能:执行计算机系统完整性检测;通电自检;搜索/加载/执行 boot loader程序。
一旦 boot loader 程序被探测到,并且加载到内存,BIOS会把控制权交给它。
(2) MBR
MBR位于引导盘(Bootable Disk)的第一个扇区(512B)。
通常是在 /dev/sda 或者 /dev/hda 。
注意:引导盘(bootable disk)和引导分区(bootable partition)的区别。
(3) GRUB
GRUB = Grand Unified Bootloader
如果在系统中安装有多个内核镜像,你可以选择某一个被执行。
GRUB展示了一个启动画面,等待几秒,如果你不输入任何字符,它将会按照grub配置文件的规定加载默认的内核镜像。
Grub配置文件在: /boot/grub/grubconf
它包含了内核和initrdimg
(4) Kernal
(注意Kernal和kernel不一样)
Kernal按照grubconf文件的规定,挂载根文件系统。
一旦kernal启动,它第一件事情就是执行:sbin/init 进程。
initrd是被kernel用做临时根文件系统,直到Kernal挂载了根文件系统。
(5) INIT(Initilization)
根据 /etc/inittab 文件决定Linux运行层级,运行级别决定了哪个初始化程序(Initial Programs)被加载到启动项。
(6) Run Level
根据你的运行级别的设定, *** 作系统会执行下来对应的文件夹下的程序:
Linux的7个运行级别(Run levels):
标准的Linux运行级别为3或者5,如果是3的话,系统就在多用户状态;如果是5的话,则是运行着XWindow系统。不同的运行级别有着不同的用处,也应该根据自己的不同清晰来设置。例如,如果丢失了root口令,那么可以让机器启动进入单用户模式来设置。
如果是使用S(Start)开头的程序,那么是用在启动的时候,
如果是使用K(Kill)开头的程序,那么是用在关机的时候。
我不是非常确定,我可以尽我所能地帮助您理解。
单片机 bootloader 可以是由厂商提供的默认引导程序,也可以由用户自己编写。如果厂商提供了 bootloader,则可以直接使用。如果需要根据自己的特殊需求进行修改或自己编写,则需要自己编写 bootloader。
在编写 bootloader 时,需要了解特殊硬件的工作原理和优缺点,例如 flash 存储器、RAM 存储器、串口、定时器等。此外,还需要掌握汇编语言或某种高级语言(如 C 语言)。因此,相对来说需要较高的技能水平。
希望这有助于您了解单片机 bootloader 的编写问题。
上电之后到U-boot的流程
暂不关心CP的启动,而主要关心AP
Android启动流程——1序言、bootloader引导与Linux启动
以上就是关于Linux( bootloader)启动 *** 作系统过程全部的内容,包括:Linux( bootloader)启动 *** 作系统过程、单片机bootloader要自己写吗、Android系统启动流程(二)BootLoader引导程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)