LinuxGod

LinuxGod.net
Linux大神网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

启动第一步--加载BIOS当你打开计算机电源(组图)

2023年1月23日 378点热度

linux启动过程详解_linux启动过程详解 图_tomcat启动过程详解

启动第一步--加载BIOS

当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了。

启动第二步--读取MBR

众所周知,硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,别看地方不大,可里面却存放了预启动信息、分区表信息。

系统找到BIOS所指定的硬盘的MBR后,就会将其复制到0×7c00地址所在的物理内存中。其实被复制到物理内存的内容就是Boot Loader,而具体到你的电脑,那就是lilo或者grub了。

启动第三步--Boot Loader

linux启动过程详解 图_tomcat启动过程详解_linux启动过程详解

Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核做好一切准备。

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

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

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

启动第四步--加载内核

根据grub设定的内核映像所在路径,系统读取内存映像linux操作系统下载,并进行解压缩操作。此时,屏幕一般会输出“Uncompressing Linux”的提示。当解压缩内核完成后,屏幕输出“OK, booting the kernel”。

系统将解压后的内核放置在内存之中linux启动过程详解 图,并调用start_kernel()函数来启动一系列的初始化函数并初始化各种设备,完成Linux核心环境的建立。至此,Linux内核已经建立起来了,基于Linux的程序应该可以正常运行了。

tomcat启动过程详解_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:重新引导系统,即重启

关于/etc/inittab文件的学问linux启动过程详解 图,其实还有很多

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

在设定了运行等级后,Linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序,它做的工作非常多,包括设定PATH、设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc等等。如果你有兴趣,可以到/etc/rc.d中查看一下rc.sysinit文件,里面的脚本够你看几天的

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

tomcat启动过程详解_linux启动过程详解_linux启动过程详解 图

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

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

根据运行级别的不同,系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。

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

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

# This script will be executed *after* all the other init scripts.

# You can put your own initialization stuff in here if you don’t

tomcat启动过程详解_linux启动过程详解 图_linux启动过程详解

# want to do the full Sys V style init stuff.

rc.local就是在一切初始化工作后,Linux留给用户进行个性化的地方。你可以把你想设置和启动的东西放到这里。

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

此时,系统已经进入到了等待用户输入username和password的时候了,你已经可以用自己的帐号登入系统了。:)

===

漫长的启动过程结束了,一切都清静了…

其实在这背后,还有着更加复杂的底层函数调用,等待着你去研究…本文就算抛砖引玉了:)

本文参考了如下文章,精炼荟萃而成:

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: bios grub 初始化 电脑 计算机电源
最后更新:2023年1月23日

Linux大神网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

Linux大神网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
自带几个预设,你可以在Numix、Arc或Materia主题样式上创建自己的GTK主题 (架构)为什么要在Linux下写C++程序? Ubuntu中各种类型频繁发生的更新错误以及修复方法 图1.3编程的7个步骤,你知道吗? 虚拟机Linux安装教程及安装流程介绍-苏州安嘉 常用且流行的Linuxshell脚本编写工具:/Vim编辑器 Linux下统计C语言程序执行时间的几种常用方法 Grafana常见的配置选项及常见配置文件介绍-苏州安嘉 开机流程:(BasicInputOutputSystem)基本输入输出系统 (知识点)LinuxGCC的使用方法及汇总 bash和rc有什么区别?文件描述文件问题 (Linux基础知识)定期自动运行程序Linux的基本操作 嵌入式Linux驱动学习笔记01-Ubuntu系统入门教程01 虚拟机模拟分布式结构的安装步骤和安装方法 Linux实现开机自定义的系统服务开机程序主要有两种方法 snap软件包的应用程序之间的依赖问题是什么? (Linux基础知识)Linux自主招生常见问题及解决办法 unix网络编程百度云 Python:为什么要学Python? Linux基础知识:启动脚本文件系统的应用程序分析方法 DockerDesktop与Ubuntu20.04WSL集成时出现异常怎么办?
linux版本信息 wouldtheinstallation系列和XWindow系列系列系列lrzsz服务器使用命令在线安装使用rz命令本地linux服务器80端口无法访问问题解决可以依次从上往下排查虚拟存储器的操作系统课程,你了解多少?Linux操作系统内核的启动过程及使用者有所启迪HDFS分布式文件系统的设计目标是什么?生态系统上海会计培训-如何获取日期字符串的时间戳?Android应用程序框架篇(2017年9月1日)Linux系统的优化调优策略:优化的分区策略Linux/Unix社区的版块不热闹,高手太忙,偶把自己这几年的Linux学习过程讲讲教程讨论Excel中日期和Unix时间戳之间的转换发车!Linux进程的内存分布长什么样?从服务器获取数据中的时间戳格式的java方法指定端口被哪个进程占用的情况怎么办?探讨!在线转换工具:北京时间和UNIX时间戳和标准安装软件注安装方式步骤及安装方法Linux的一切皆文件-实用程序和API:身份证明检索失败开始->进程的配置文件微控制器简化存储数据的组织形式如何从Elrepo或者源代码来安装最新的Linux内核4.0
1.移植uboot2.内核3.移植根文件系统linux系统包含的三个必要软件 linux下mysql中可以使用REVOKE语句来删除某个用户的权限 启动虚拟机中Ubuntu下的vsftp命令设置下文 娃白天睡觉不太踏实,搞一个局域网实时监控,怎么办? Linux系统进程与文件相关的信息 Linux一模一样远程连接编辑的操作图是什么? (干货)Python(计算机程序设计语言)Python、计算机编程语言 Linux系统用户账号管理有什么区别呢?【豹子融】 0x1查看用户在命令行中输入:​输出的第一列表示 Linux软件安装目录及位置4种方法(服务器学习) Hadoop技术体系面临的安全问题主要是什么? Linux操作系统和虚拟机的区别是怎样的?? 轻松掌握Linux目录权限777提升技巧 TCL电视看电视直播方法购买智能电视的热卖,不少 go语言被称作互联网时代的c语言,用来开发嵌入式linux的理由 Ubuntu本地提权漏洞CVE-2017-16995 Flutter的“野心”不止于跨平台开发,而是全平台制霸 Linux端口占用情况的教程操作环境 如何知道自己的Linux内核版本的几种方法?方法 Linux发行版的学习方法与学习中应该注意的一些事
标签聚合
命令 操作 文件目录 应用 内核 软件 linux系统 文件 虚拟机 linux服务器
书籍
课程
技术群
技术干货大合集↓
  • 2023年12月 / 2篇
  • 2023年11月 / 88篇
  • 2023年10月 / 94篇
  • 2023年9月 / 90篇
  • 2023年8月 / 93篇
  • 2023年7月 / 94篇
  • 2023年6月 / 90篇
  • 2023年5月 / 93篇
  • 2023年4月 / 90篇
  • 2023年3月 / 129篇
  • 2023年2月 / 84篇
  • 2023年1月 / 161篇
  • 2022年12月 / 187篇
  • 2022年11月 / 76篇
友情链接:

Linux书籍 | Linux命令 | Linux系统 | RHCE红帽认证 | Linux软件 | Linux教程 | CentOS系统 | Linux内核 | Linux服务器 | Linux大神 | IT资源

COPYRIGHT © 2024 linuxgod.net ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang