Difference between revisions of "Arch boot process (简体中文)"

From ArchWiki
Jump to: navigation, search
(update image name.)
m (错别字,显示->显式)
Line 26: Line 26:
 
内核在载入后会解压[[mkinitcpio (简体中文)|initramfs]](初始化RAM文件系统),生成初始根文件系统。然后内核会执行 {{ic|/init}},init 成为第一个进程,'''早期用户空间'''就启动了。
 
内核在载入后会解压[[mkinitcpio (简体中文)|initramfs]](初始化RAM文件系统),生成初始根文件系统。然后内核会执行 {{ic|/init}},init 成为第一个进程,'''早期用户空间'''就启动了。
  
initramfs 的作用是将系统启动到可以访问 [[FHS|根文件系统]]的阶段,所以需要包含没有内置进内核的 IDE、SCSI、SATA(如果从USB设备中启动的话,肯定还有USB/FW模块)等驱动。在initramfs载入了必要的模块后(通过程序和脚本显示加入或通过 [[udev]] 自动装入),引导过程继续。因此,initrd无须包含所有模块,大部分模块将在随后的引导中通过[[udev (简体中文)|udev]]载入。
+
initramfs 的作用是将系统启动到可以访问 [[FHS|根文件系统]]的阶段,所以需要包含没有内置进内核的 IDE、SCSI、SATA(如果从USB设备中启动的话,肯定还有USB/FW模块)等驱动。在initramfs载入了必要的模块后(通过程序和脚本显式加入或通过 [[udev]] 自动装入),引导过程继续。因此,initrd无须包含所有模块,大部分模块将在随后的引导中通过[[udev (简体中文)|udev]]载入。
  
 
== Init 进程 ==
 
== Init 进程 ==

Revision as of 10:38, 22 November 2012

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary end

翻译状态: 本文是英文页面 Arch_Boot_Process翻译,最后翻译时间:2012-11-04,点击这里可以查看翻译后英文页面的改动。

启动加载器

系统开机并且执行完加电自检后,BIOS会根据自身设置选择最佳的启动媒介,把控制权传递给该媒介的主引导记录(Master Boot Record)部分。在GNU/Linux系统中,MBR里通常是像GRUBLILO这样的引导器(bootloader)。引导器通常会给用户一个菜单或者命令行之类的机制,供用户选择和设置。例如双系统的设置。一旦你选择启动Arch时,引导器就会载入/boot 目录下的内核镜像(比如initramfs-linux.img),并解压缩。

内核

内核是一个操作系统的核心。他作用于非常底层的硬件和控制硬件的程序之间的部分(又称之为内核空间)。由于CPU在某个时刻只能执行一个任务,为了更为高效的使用CPU,内核使用调度器,通过一定的优先级算法将 CPU 按照时间动态的分配给各个程序。给我们的感觉就像所有程序都在使用CPU一样。

initramfs

内核在载入后会解压initramfs(初始化RAM文件系统),生成初始根文件系统。然后内核会执行 /init,init 成为第一个进程,早期用户空间就启动了。

initramfs 的作用是将系统启动到可以访问 根文件系统的阶段,所以需要包含没有内置进内核的 IDE、SCSI、SATA(如果从USB设备中启动的话,肯定还有USB/FW模块)等驱动。在initramfs载入了必要的模块后(通过程序和脚本显式加入或通过 udev 自动装入),引导过程继续。因此,initrd无须包含所有模块,大部分模块将在随后的引导中通过udev载入。

Init 进程

在早期用户空间的最后,会挂载真正的根分区,并替代初始根文件系统。执行 /sbin/init 以接替 /init 进程。

Arch 现在使用Systemd作为默认的初始化进制。Arch 过去使用 Initscripts,建议使用它的用户切换到Systemd.

扩展资源