从按下电源键开始,到登录成功,计算机都做了哪些事儿呢?且听我细细道来。
其过程可以总结如下:
一 BIOS
当按下计算机电源键时,计算机便会读取主板的BIOS(Basic Input/Output System)中存储的程序,
BIOS允许你从软盘、光盘或者硬盘中选择一个来“存储设备”启动计算机。
二 MBR
当你选择“存储设备”后,计算机便读取其起始的512 bytes数据,即主引导记录MBR (master boot record),
MBR会告诉计算机从该设备的哪一个分区(partition)来装载引导加载程序(boot loader)。
三 boot loader
boot loader中储存有操作系统(OS)相关信息,如操作系统名称,内核 (kernel)所在位置等,
常用的boot loader有GRUB和LILO,然后加载操作系统内核(kernel)。
四 kernel
kernel管理计算机的硬件资源,充当软件和硬件的接口。kernel会首先预留自己运行所需的内存空间,
然后通过驱动程序(driver)检测计算机硬件,启动初始化进程(init process)。
五 init process
init process是系统中1号进程,根据boot loader选项,Linux此时可以进入单用户模式(single user mode),检测并修复计算机可能存在的错误,
随后,init process会运行一系列的初始脚本(startup scripts)。
六 startup scripts
startup scripts是一些shell scripts,用以设置计算机名称,时区,检测文件系统,挂载硬盘,清空临时文件,设置网络等。
然后,给出登录(login),或者给出图形化的登录界面。
七 login
输入用户名密码,然后进行登录验证,并根据你创建用户时的设定,Linux还会将你归到某个组(group)中。
整个过程到此结束。
总结:BIOS -> MBR -> boot loader -> kernel -> init process -> startup scripts -> login。