热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

linux启动顺序

下面给大家介绍linux启动顺序,更多Linux使用教程请访问Linux视频教程​进行学习!

下面给大家介绍linux启动顺序,更多Linux使用教程请访问Linux视频教程进行学习!

启动第一步--加载 BIOS

当你打开计算机电源,计算机会首先加载 BIOS 信息,BIOS 信息是如此的重要,以至于计

算机必须在最开始就找到它。这是因为 BIOS 中包含了 CPU 的相关信息、设备启动顺序信

息、硬盘信息、内存信息、时钟信息、PnP 特性等等。在此之后,计算机心里就有谱了,

知道应该去读取哪个硬件设备了。

启动第二步--读取 MBR

众所周知,硬盘上第 0 磁道第一个扇区被称为 MBR,也就是 Master Boot Record,即主

引导记录,它的大小是 512 字节,别看地方不大,可里面却存放了预启动信息、分区表信

息。

系统找到 BIOS 所指定的硬盘的 MBR 后,就会将其复制到 0x7c00 地址所在的物理内存中。

其实被复制到物理内存的内容就是 Boot Loader,而具体到你的电脑,那就是 lilo 或者 grub

了。

启动第三步--Boot Loader

Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可

以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,

以便为最终调用操作系统内核做好一切准备。

Boot Loader 有若干种,其中 Grub、Lilo 和 spfdisk 是常见的 Loader。

我们以 Grub 为例来讲解吧,毕竟用 lilo 和 spfdisk 的人并不多。

系统读取内存中的 grub 配置信息(一般为 menu.lst 或 grub.lst),并依照此配置信息来

启动不同的操作系统。

启动第四步--加载内核

根据 grub 设定的内核映像所在路径,系统读取内存映像,并进行解压缩操作。此时,屏幕

一般会输出“Uncompressing Linux”的提示。当解压缩内核完成后,屏幕输出“OK,

booting the kernel”。

系统将解压后的内核放置在内存之中,并调用 start_kernel()函数来启动一系列的初始化函

数并初始化各种设备,完成 Linux 核心环境的建立。至此,Linux 内核已经建立起来了,基

于 Linux 的程序应该可以正常运行了。

启动第五步--用户层 init 依据 inittab 文件来设定运行等级

内核被加载后,第一个运行的程序便是/sbin/init,该文件会读取/etc/inittab 文件,并依据

此文件来进行初始化工作。

其实/etc/inittab 文件最主要的作用就是设定 Linux 的运行等级,其设定形式是“:

id:5:initdefault:”,这就表明 Linux 需要运行在等级 5 上。Linux 的运行等级设定如下:

0:关机

1:单用户模式

2:无网络支持的多用户模式

3:有网络支持的多用户模式

4:保留,未使用

5:有网络支持有 X-Window 支持的多用户模式

6:重新引导系统,即重启

启动第六步--init 进程执行 rc.sysinit

在设定了运行等级后,Linux 系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit 脚本程

序,它做的工作非常多,包括设定 PATH、设定网络配置(/etc/sysconfig/network)、启

动 swap 分区、设定/proc 等等。如果你有兴趣,可以到/etc/rc.d 中查看一下 rc.sysinit 文

件。

启动第七步--启动内核模块

具体是依据/etc/modules.conf 文件或/etc/modules.d 目录下的文件来装载内核模块。

启动第八步--执行不同运行级别的脚本程序

根据运行级别的不同,系统会运行 rc0.d 到 rc6.d 中的相应的脚本程序,来完成相应的初始

化工作和启动相应的服务。

启动第九步--执行/etc/rc.d/rc.local

你如果打开了此文件,里面有一句话,读过之后,你就会对此命令的作用一目了然

rc.local 就是在一切初始化工作后,Linux 留给用户进行个性化的地方。你可以把你想设置

和启动的东西放到这里。

启动第十步--执行/bin/login 程序,进入登录状态

以上就是linux启动顺序的详细内容,更多请关注其它相关文章!


推荐阅读
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 在Linux系统中配置并启动ActiveMQ
    本文详细介绍了如何在Linux环境中安装和配置ActiveMQ,包括端口开放及防火墙设置。通过本文,您可以掌握完整的ActiveMQ部署流程,确保其在网络环境中正常运行。 ... [详细]
  • 本文详细介绍如何使用arm-eabi-gdb调试Android平台上的C/C++程序。通过具体步骤和实用技巧,帮助开发者更高效地进行调试工作。 ... [详细]
  • 新冠肺炎疫情期间,各大银行积极利用手机银行平台,满足客户在金融与生活多方面的需求。线上服务不仅激活了防疫相关的民生场景,还推动了银行通过互联网思维进行获客、引流与经营。本文探讨了银行在找房、买菜、打卡、教育等领域的创新举措。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 题库来源:安全生产模拟考试一点通公众号小程序G3锅炉水处理报名考试是安全生产模拟考试一点通生成的,G3锅炉水处理证模拟考试题库是根据G3锅炉水处理最新 ... [详细]
  • 如何高效创建和使用字体图标
    在Web和移动开发中,为什么选择字体图标?主要原因是其卓越的性能,可以显著减少HTTP请求并优化页面加载速度。本文详细介绍了从设计到应用的字体图标制作流程,并提供了专业建议。 ... [详细]
  • 本文详细介绍了如何通过命令行启动MySQL服务,包括打开命令提示符窗口、进入MySQL的bin目录、输入正确的连接命令以及注意事项。文中还提供了更多相关命令的资源链接。 ... [详细]
  • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
    学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
  • 本文将详细介绍在Windows 7环境下,检查U盘启动盘是否制作成功的多种方法,包括通过BIOS设置和使用模拟启动工具。 ... [详细]
  • 本文介绍如何使用 NSTimer 实现倒计时功能,详细讲解了初始化方法、参数配置以及具体实现步骤。通过示例代码展示如何创建和管理定时器,确保在指定时间间隔内执行特定任务。 ... [详细]
  • 本文探讨了在开发测绘小程序时,如何利用面向对象编程思想实现附合水准路线平差。该方法通过测站和实测高差数据,计算高差改正数及未知点高程。文中介绍了点类和线类的设计,并详细描述了具体的计算步骤与逻辑。 ... [详细]
  • 本文介绍了在Windows环境下使用pydoc工具的方法,并详细解释了如何通过命令行和浏览器查看Python内置函数的文档。此外,还提供了关于raw_input和open函数的具体用法和功能说明。 ... [详细]
  • 题目Link题目学习link1题目学习link2题目学习link3%%%受益匪浅!-----&# ... [详细]
author-avatar
余小刚玩guitarvp_996
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有