阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

linux 系统启动流程探讨

190次阅读
没有评论

共计 1149 个字符,预计需要花费 3 分钟才能阅读完成。

Linux 系统启动流程:

Linux 系统启动流程,按层次分的话,可以分为内核空间的启动与用户空间的启动。

下面先说说内核空间的启动流程。

一个 Linux 要跑起来,在最简陋的情况下,必须有:kernel , lib ,application

kernel 功能:加载驱动程序,内存管理,进程管理,文件系统,网络管理,安全管理,glibc

库:是一个函数的集合,每个库文件是一个依赖于其他应用程序才能运行起来的代码片段。

库头文件:一个库中有多少函数,不同函数之差接受的参数,类型不同,这些特点需要有一个文件来对其进行描述,这种对库中的函数的描述性文件就称为库文件。

application: 就是平时我们用的二进制程序了

要了解 Linux 的启动流程,就要先了解下面的几个概念。

内核的设计流派:
单内核:紧密,效率高,牵一发而动全身。一个小的故障全局崩溃。

微内核:离散设计,效率相对低,子系统故障不会影响全局。

Linux 为单内核。

虽是单内核,但却充分吸引微内核设计思想,将能选择的功能,统统做成功能模块。即使是内核,自己也被做成模块。一般为.ko 结尾的文件。ko 即 kernel object。用户空间的功能模块称为 share object,以.so 结尾

支持模块的在线装卸。
内核组成部分:
1:核心文件:/boot/vmlinuz-version-release
2: 模块文件:/lib/modules/version-release

ramdisk: 基于内存的磁盘。将硬盘中的 mbr 载入内存,得到文件系统驱动程序,加载 grub。进入 grub 菜单。

内核空间系统启动流程解析:

post –> bios –> bootloader(引导从哪块硬盘加载) –> mbr –> 加载 stage2 中的 grub —> kernel –> init

post:poweron self test  加电自检。自检的过程由主板上的 rom 芯片自己定义。rom 芯片就是传说中的 cmos。

bios : base input output system. 也是装在 rom 中的一个简单的程序,主要作用就是按用户设置的引导顺序,从指定的设备加载写有 bootloader 的设备。

mbr: 加载指定的设备后,根据 mbr 内容中的 stage1 的指向,得知 stage2 的位置,并且加载 stage1_5 到内存中,得到 stage2 所在硬件设备的驱动程序,加载驱动后能读到 stage2 的内容,即 grub。

grub: grand uniform bootloader。统一加载器。grub 会提供一个菜单,给用户选择要启动的操作系统的 kernel。

kernel:kernel 加载到内存中后,自解压,自初始化,探测各硬件后装载硬件的驱动程序,以只读方式挂载根文件系统,并启动 init 进程。

至此,内核空间的启动完成了。剩下的就是用户空间的启动了。

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-12-03发表,共计1149字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中