0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux开机启动:计算机开机是一个神秘的过程

马哥Linux运维 来源:未知 作者:李倩 2018-08-23 17:52 次阅读

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

最初始阶段

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

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

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

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

实际上,我们可以在多个分区安装boot loader,每个引导加载程序对应不同的操作系统,在读取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

用户,组。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10988

    浏览量

    206725
  • 计算机
    +关注

    关注

    19

    文章

    6646

    浏览量

    84490

原文标题:Linux开机启动(bootstrap)

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    按下计算机电源开关时,工控机没有任何反应,不能正常启动 解决方法

    按下计算机电源开关时,计算机没有任何反应,不能正常启动。 (1) 检查电源连接是否良好,确保电源供应正常; (2) 检查计算机电源是否能正常工作(
    发表于 01-10 14:43

    计算机启动异常与电源故障分析

    计算机启动异常与电源故障分析   引起计算机起动异常的故障很多,有很大部分是计算机的电源故障引起的,各种杂志和资料上也多有介绍,本人经历的
    发表于 01-06 10:08

    计算机启动异常与电源故障分析

    计算机启动异常与电源故障分析 引起计算机起动异常的故障很多,有很大部分是计算机的电源故障引起的,各种杂志和资料上也多有介绍,本人
    发表于 03-16 10:06

    最慢Linux 计算机启动需要4小时!

    !不过,启动之后,该计算机还是有点用处的。  另外,Grinberg自己也介绍称这款计算机设备也许是世界上最便宜,最慢,最简陋,最少部件量,最低端的
    发表于 03-30 15:57

    python黑客操作:远程开机和关机

    具有定的操作能力,可以监控计算机的外部网络广播信息,当发现特定格式的信息时,它就会启动。现在的主板基本都支持。 只需要在网络适配器中配置下面两选项下图这个勾不能选上,我们要保证网卡
    发表于 01-19 20:22

    Linux设置服务开机自动启动的方式有哪些?

    Linux设置服务开机自动启动的方式有好多种,这里分别介绍下centos操作系统开机脚本自启动
    发表于 11-05 07:43

    用了这么多年的Linux CentOS,终于知道开机的流程了 精选资料分享

    CentOS开机流程详解BIOS:(Basic Input Output System)基本输入输出系统,它是组固化到计算机内主板上一个ROM芯片 上的程序,保存着
    发表于 07-23 09:23

    计算机开机启动过程详解 精选资料分享

    计算机开机启动过程(1) 启动过程总揽(二)详细说明1、CPU 供电按下主机的电源键后,计算机开始启动
    发表于 07-23 09:18

    linux创建开机自动启动服务的方法步骤

    要去设置进程 开机自动启动 这里我记录下我用的种方法我做的是
    发表于 11-05 06:02

    如何取消开机启动

    如何取消开机启动项 首先教你通过删除注册表启动项的键值,来取消开机启项的方法。 第一种解决方法:找到注册表的
    发表于 02-13 10:06 9296次阅读
    如何取消<b class='flag-5'>开机</b><b class='flag-5'>启动</b>项

    Linux基础命令之Linux启动过程详解

    。 2.2.1 概述 用户开机启动Linux过程如下: (1)当用户打开PC(intel CPU)的电源时,CPU将自动进入实模式,并从地址0xFFFF0000开始自动执行程序代码,这
    发表于 10-18 14:17 2次下载
    <b class='flag-5'>Linux</b>基础命令之<b class='flag-5'>Linux</b><b class='flag-5'>启动过程</b>详解

    Linux系统开机启动过程

    分别为iOS操作系统,Android操作系统。而今天小编就给大家着重讲讲Linux系统开机启动过程。 内核引导 当计算机打开电源后,首先是BIOS
    发表于 07-09 11:53 1698次阅读

    全球最大规模的神经形态超级计算机近日正式开机

    受欧盟人脑计划支持的目前全球最大规模的神经形态超级计算机近日正式开机
    的头像 发表于 12-13 09:04 2962次阅读

    电脑没硬盘能开机

    电脑没装硬盘能开机,并且显示器能够点亮。硬盘属于外存储器,它并不是计算机开机所必须的零件(这里所说的开机,并不是说进入Windows操作系统)。在不安装硬盘的情况下,电脑也可以
    的头像 发表于 03-12 15:12 4.1w次阅读

    linux是如何设置nginx与mysql开机启动

    有很多小伙伴都没有一个统一的设置nginx和mysql开机启动的方式,今天我就将我的统一开机启动格式分享给大家
    的头像 发表于 01-20 10:25 1319次阅读