服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - Linux开机启动过程详解

Linux开机启动过程详解

2022-01-10 16:56Vamei Linux

这篇文章主要为大家详细介绍了Linux开机启动过程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

计算机开机是一个神秘的过程。我们只是按了开机键,就看到屏幕上的进度条或者一行行的输出,直到我们到达登录界面。然而,计算机开机又是个异常脆弱的过程,我们满心期望的登录界面可能并不会出现,而是一个命令行或者错误信息。了解计算机开机过程有助于我们修复开机可能出现的问题。

最初始阶段

当我们打开计算机电源,计算机会自动从主板的BIOS(Basic Input/Output System)读取其中所存储的程序。这一程序通常知道一些直接连接在主板上的硬件(硬盘,网络接口,键盘,串口,并口)。现在大部分的BIOS允许你从软盘、光盘或者硬盘中选择一个来启动计算机。

下一步,计算机将从你所选择的存储设备中读取起始的512个字节(bytes)。如果我们从光盘启动的话,那么计算机就会读取光盘最开始的512个字节。这512个字节叫做主引导记录MBR (master boot record)。MBR会告诉电脑从该设备的某一个分区(partition)来装载引导加载程序(boot loader)。引导加载程序储存有操作系统(OS)的相关信息,比如操作系统名称,操作系统内核 (内核)所在位置等。常用的引导加载程序有GRUB和LILO。

随后,引导加载程序会帮助我们加载内核(kernel)。内核实际上是一个用来操作计算机的程序,它是计算机操作系统的内核,主要的任务是管理计算机的硬件资源,充当软件和硬件的接口。操作系统上的任何操作都要通过内核传达给硬件。Windows和Linux各自有自己内核。狭义的操作系统就是指内核,广义的操作系统包括内核以及内核之上的各种应用。

(Linus Torvalds与其说是Linux之父,不如说是Linux 内核之父。他依然负责Linux 内核的开发和维护。至于Ubuntu, Red Hat, 它们都是基于相同的内核之上,囊括了不同的应用和界面构成的一个更加完整的操作系统版本。)

实际上,我们可以在多个分区安装引导加载程序,每个引导加载程序对应不同的操作系统,在读取MBR的时候选择我们想要启动的引导加载程序。这就是多操作系统的原理。

小结:BIOS -> MBR -> 引导加载程序 -> 内核

内核

如果我们加载的是Linux内核,Linux内核开始工作。内核会首先预留自己运行所需的内存空间,然后通过驱动程序(driver)检测计算机硬件。这样,操作系统就可以知道自己有哪些硬件可用。随后,内核会启动一个init进程。它是Linux系统中的1号进程(Linux系统没有0号进程)。到此,内核就完成了在计算机启动阶段的工作,交接给init来管理。

小结: 内核 -> init process

init process

(根据boot loader的选项,Linux此时可以进入单用户模式(single user mode)。在此模式下,初始脚本还没有开始执行,我们可以检测并修复计算机可能存在的错误)

随后,init会运行一系列的初始脚本(startup scripts),这些脚本是Linux中常见的shell scripts。这些脚本执行如下功能:

设置计算机名称,时区,检测文件系统,挂载硬盘,清空临时文件,设置网络……

当这些初始脚本,操作系统已经完全准备好了,只是,还没有人可以登录。init会给出登录(login)对话框,或者是图形化的登录界面。

输入用户名(比如说vamei)和密码,DONE!

在此后的过程中,你将以用户(user)vamei的身份操作电脑。此外,根据你创建用户时的设定,Linux还会将你归到某个组(group)中,比如可以是stupid组,或者是vamei组。

所以你将是用户vamei, 同时是vamei组的组员。(注意,组vamei和用户vamei只是重名而已,就好想你可以叫Dell, 同时还是Dell公司的老板一样。你完全也可以是用户vamei,同时为stupid组的组员)

总结

BIOS -> MBR -> 引导加载程序 -> 内核 -> init process -> login

用户,组。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://www.cnblogs.com/vamei/archive/2012/09/05/2672039.html

延伸 · 阅读

精彩推荐
  • LinuxLinux与grub下如何查看各分区设备名称?

    Linux与grub下如何查看各分区设备名称?

    最近一些朋友问小编Linux与grub下如何查看各分区设备名称?今天小编将要为大家带来的是Linux与grub下查看各分区设备名称的方法,有需要的朋友一起去看看吧...

    Linux之家9372019-06-03
  • LinuxLinux下两款图片编辑软件Fotoxx和Macrofusion介绍

    Linux下两款图片编辑软件Fotoxx和Macrofusion介绍

    这篇文章主要介绍了Linux下两款图片编辑软件Fotoxx和Macrofusion,都具备简单的图形化使用界面,需要的朋友可以参考下...

    imcn.me6402019-07-07
  • Linux企业级Linux!CentOS 7.0.1406正式版发布

    企业级Linux!CentOS 7.0.1406正式版发布

    7月8日,CentOS(社区企业操作系统)是红帽企业级Linux发行版之一,由于稳定性值得信赖且免费,因此人气相当高。经过短暂测试后,CentOS官方近日放出了...

    Linux教程网2402019-11-06
  • Linuxlinux mint 18虚拟机下设置1080P分辨率的方法

    linux mint 18虚拟机下设置1080P分辨率的方法

    下面小编就为大家带来一篇linux mint 18虚拟机下设置1080P分辨率的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看...

    Linux教程网7902021-12-15
  • LinuxLiteSpeed添加虚拟主机+支持htaccess图文教程

    LiteSpeed添加虚拟主机+支持htaccess图文教程

    想要使用litespeed还要进入后台进行设置,包括添加虚拟主机和.htaccess伪静态的支持,本文就继续这个话题给大家详细做个图文教程吧 ...

    Linux教程网5122019-12-17
  • LinuxVim 复制粘贴探秘

    Vim 复制粘贴探秘

    Vim作为最好用的文本编辑器之一,使用vim来编文档,写代码实在是很惬意的事情。 ...

    Linux教程网5912020-01-05
  • Linux在 Linux 终端调整图像的大小

    在 Linux 终端调整图像的大小

    用 ImageMagick 的转换命令从你的终端缩放一张图像。ImageMagick 是一个方便的多用途命令行工具,它能满足你所有的图像需求。ImageMagick 支持各种图像类型,包...

    Linux中国11312021-09-14
  • LinuxLinux下如何使用gdb调试core文件

    Linux下如何使用gdb调试core文件

    这篇文章主要介绍了Linux下如何使用gdb调试core文件,帮助大家更好的理解和学习Linux,感兴趣的朋友可以了解下...

    Dabelv10462020-08-28