当前位置: 首页 > 科技观察

Linux操作系统启动过程

时间:2023-03-13 08:44:05 科技观察

1。前言在本文中,我们将回顾Linux操作系统中的启动过程。操作系统如何通过不同的启动状态阶段。本文是为刚接触Linux的读者编写的。了解Linux如何启动对于在系统出现故障时有效地进行故障排除非常重要。系统启动后,几分钟后,我们收到登录提示。我们是否试图找出在启动序列的所有阶段发生了什么,以及在系统启动期间幕后发生了什么。2.打开电源BIOSBasicInputOutputSystem是一个预装在主板芯片组中的软件程序。BIOS加载并扫描硬盘驱动器、CD-ROM、RAM等设备。BIOS搜索主硬盘驱动器的MBR(主引导记录:扇区1),扫描第一阶段加载程序(在我们的示例中,bootloader是(GRUBLILO),把责任交给MBR。BootPROM/FLASH/BIOS可以巧妙地将MBR加载到RAM中执行。3.MBR(MasterBootRecord)512bytesofspace-->MBRMBR包含大部分的loader信息操作系统,如UNIX、Linux、WINDOWSMBRstorageloader第一阶段的二进制信息MBR包括第一个磁盘驱动器的物理扇区(通常为512bytes),不属于任何分区,放置在主磁盘上驱动器,磁道第一个柱面的主扇区为0,磁头为0(这整个路径通常是为bootloader保留的)MBR包括一个小的可执行程序和一个指定主分区的表。BootCode(GRUB)446bytespartition1:16bytespartition2:16bytespartition3:16bytespartition4:16bytesmagicNumber:2bytesMBR还记录了哪个主分区处于活动状态。BIOS向第一阶段引导加载程序提交权限,然后扫描分区表并在配置为可引导的分区上找到第二阶段引导加载程序。4.Linux操作系统引导引导加载程序引导加载程序是从第一阶段加载程序定义的,并将自身加载到RAM中。所有这一切都发生在几毫秒内。默认的第二阶段引导加载程序是GRUB(GrandUnified引导加载程序)或LILO(Linux加载程序)。一旦GRUB被加载到RAM中,它就会搜索内核的位置。GRUB将通过映射文件找到位于(/boot)下的内核映像并加载它。GRUB从/boot分区加载内核(vmlinux-version)Linux操作系统引导加载程序BootLoader5。Linux操作系统bootloader的grubGRUB是initrd->organizationRAMDISK(RAMDISK是从RAM中预留的空间)。此外,它将initrd驱动到RAM中,让内核准备好将自身加载到内存和相关模块中,这样它就可以将系统留给“init”进程大多数驱动程序都是预先构建为模块的,这些模块是初始ram驱动器(initrd.img),其中包含附加模块的所有信息。因此,当内核启动时,它会创建ramdrive并加载initrd.img及其相关模块。GRUB读取/boot/grub/grub.conf为用户选择操作系统提供一个干净的界面。一旦内核加载了它所依赖的模块,它就会交给“init”进程。内核映像有一个小的、未打包的程序,可以解包内核并运行它。6.Linux操作系统引导过程中的LILO为了在硬盘上定位操作系统,LILO需要指明MBR。对/etc/lilo.conf所做的任何修改,都必须在MBR中更新,但如果是GRUB,则不需要更新,它直接从文件/boot/grub/grub.conf中读取。在/etc/lilo.conf中进行更改后,我们必须手动更新MBRLinux操作系统引导过程的LILO/sbin/lilo-v7。LinuxOS引导过程的第二阶段是GRUB第二阶段加载程序,它驻留在MBR和/引导分区中。一旦GRUB加载到内存中,它就成为第二阶段加载程序。8、Linux操作系统引导过程的第三阶段不要删除/initrd目录,该目录是内核快速访问引导系统模块所需的模块(包括设备驱动程序)的临时占位符。9.Linux内核初始化的要点包括:初始化CPU组件,如MMU初始化调度器(PID0)以rw模式挂载根文件系统Forkinit进程(PID1)本质上,内核初始化做了两件事:启动Coresystemwith共享资源管理器(RAM、处理器和大容量存储)。启动单个进程/sbin/initInit进程(sbin/init)是第一个加载所有不同守护进程并挂载/etc/fstab下列出的所有分区的进程。10、关于/etc/fstab/sbin/init读取/etc/inittab文件设置默认运行级别(telinit命令允许管理员告诉init进程改变其当前运行级别)调用/etc/rc.d/rc.sysinit和/etc/rc.d/rcx(其中“x”是运行级别)在/etc/rc.d/rc5.d目录文件中,字母K代表杀死进程的脚本。以字母S开头的文件代表启动脚本。启动tty进程和xdm(X显示管理器)启动用户登录界面