linux 系统启动流程探讨

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进程。

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

原创文章,作者:old_radish,如若转载,请注明出处:http://www.178linux.com/73203

(0)
old_radishold_radish
上一篇 2017-04-11 17:22
下一篇 2017-04-12 10:28

相关推荐

  • 网络基础

    网络小白一个,针对网络的基础知识无从下手,因此本文引用了鸟哥私房菜中的众多概念性知识,在此谢过,本文主要从OSI七层协议,TCP协议和一些网络中专业词汇进行解析,并通过子网掩码的划分,网络接口的配置、路由配置等实例来加深对网络的理解。 一、OSI七层协议:     OSI七层协议的由来:   由于网络链接过程…

    Linux干货 2016-09-07
  • 第二周 N28

    作业二

    2017-12-10
  • 进程管理

    一、进程概述 1、进程的概念        用户通过执行命令,将程序提起到内存中运行,运行中的程序即称为进程。内核为了方便管理,根据内核发起者的权限、属性等参数,为每个进程设置一个独立的PID号,通过PID号来判断进程的权限。 2、进程的分类:    &nbs…

    Linux干货 2016-09-07
  • Liunx权限的管理

    一、权限 获取某种资源的能力。对于Liunx而言,一切皆文件。所以,对于Liunx的权限定义,也就是定义文件被不同用户访问能力的过程。 权限分为三种:r、w、x 文件 r:查看文件内容 w:修改文件内容 x:可以将文件启动运行 目录 r:可以使用ls命令查看目录中的文件名 w:可以在目录中创建或删除文件(能否删除文件,取决于用户对目录的写权限 x:可以cd到…

    Linux干货 2015-04-03
  • 0803作业

    课上练习 1.当用户xiaoming 对/testdir  目录无执行权限时,意味着无法做哪些操作?  drwxr-xr–. 14 root root 4096 Aug  3 13:35 /testdir [xiaoming@localhost ~]$ touch /testdir/f1…

    Linux干货 2016-08-04
  • Linux脚本基础练习

    马哥教育网络班+ 第7周课堂练习 Linux脚本基础练习 练习: 1、创建一个10G分区,并格式为ext4文件系统; (1)要求其block大小为2048,预留空间百分比为2,卷标为MYDATA,默认挂载属性包含acl (2)挂载至/data/mydata目录 要求挂载时禁止程序自动运行,且不更新文件的访问时间戳 第一步,在虚拟机中挂载一块20G的新硬盘 &…

    Linux干货 2016-11-09