linux内核及系统启动流程

Linux内核

内核概述

GUN/Linux操作系统的基本体系结构

如图,最上面是用户空间(User Space),是用户程序执行的地方;用户空间之下是内核空间(Kernel Space),内核位于此。基于此,GUN C Library(glibc)提供了连接内核的系统调用接口,还提供了在用户空间应用程序和内核之间进行转换的机制,因为内核空间和用户空间的应用程序使用的是不同的保护地址空间。用户空间的进程使用的是自己的虚拟地址空间,而内核则占用单独的地址空间。

内核的核心功能:

  • 系统调用接口(System call interface)

  • 程序管理(Process control)

  • 内存管理(Memory management)

  • 文件系统管理(Filesystem management)

  • 设备的驱动(Device drivers)

linux内核及系统启动流程

Linux内核的特点

  • 支持模块化

  • 支持模块的动态装载和卸载

linux内核的设计原则

单内核体系设计、但充分借鉴了微内核设计体系的优点,为内核引入模块化机制。

内核的组成部分

核心文件:

/boot/vmlinuz-VERSION-release
ramdisk:
    CentOS 5:/boot/initrd-VERSION-release.img
    CentOS 6:/boot/initramfs-VERSION-release.img

模块文件:/lib/modules/VERSION-release/


CentOS 系统启动流程

POST(Power On Self Test):

检测系统外围关键设备(如:CPU、内存、显卡、I/O、键盘鼠标等)是否正常。

加载BIOS(Basic Input and Output System):

根据在BIOS中设置的系统启动顺序来搜索用于启动系统的驱动器(硬盘、光盘、U盘等)。在平时的启动过程中,大多为硬盘启动,基于此,BIOS会读取硬盘的第0磁道的第1扇区(MBR)的内容来引导启动。

BOOT Sequence:

按次序查找各引导设备,第一个有引导程序的设备即为本次启动用到设备

MBR(Master Boot Record):

linux内核及系统启动流程

三部分组成,分别是主引导程序(Bootloader)、硬盘分区表DPT(Disk Partition Table)和magic number。

Bootloader:提供一个菜单,允许用户选择要启动系统或不同的内核版本;把用户选定的内核装载到内存中的特定空间中,解压、展开,并把系统控制权移交给内核。

在Linux中常用的主引导程序有LILO(LInux LOader)和GRUB(GRand Uniform Bootloader),此处以GRUB引导为例。

启动引导程序GRUB:

stage1:stage1的代码直接存在于MBR,是后续引导的入口,无识别文件系统的能力。
stage1.5: MBR之后的扇区,让stage1中的bootloader能识别stage2所在的分区上的文件系统,具有识别文件系统的能力。
stage2:加载磁盘分区(/boot/grub/)

启动内核:

当stage2被载入内存执行时,首先会解析grub的配置文件/boot/grub/grub.conf,然后加载内核镜像到内存中,并将控制权转交给内核。而内核会立即作自身初始化。
  • 探测可识别的所有硬件设备

  • 加载硬件驱动程序(可能会借助于ramdisk加载驱动)

  • 以只读方式挂载rootfs

  • 运行用户空间的第一个应用程序:/sbin/init

运行init程序

  • CentOS 5:SysV

  • CentOS 6:Upstart

  • CentOS 7:Systemd

设置默认运行级别

  • CentOS 5:/etc/inittab

  • CentOS 6:/etc/inittab,/etc/init/*.conf

  • CentOS 7:default.target–>/usr/lib/systemd/system/*.target

运行系统初始脚本,完成系统初始化

/etc/rc.d/rc.sysinit

启动内核模块

/etc/modules.conf /etc/modules.d/*

关闭对应级别下应关闭的服务,启动需要启动的服务

/etc/rc.d/rc#.d/*

执行自定义引导程序

/etc/rc.d/rc.local

设置登陆终端

/sbin/mingetty

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

(0)
JeasonJeason
上一篇 2016-08-08
下一篇 2016-08-08

相关推荐

  • 主从DNS 子域授权 基于域的转发和DNS视图的配置

    先把软件包的安装: yum install bind yum install bind-utils(DNS的查询工具,dig nslookup host) 事先我已经安装好了。 主从DNS的网络拓扑图: 主从DNS配置: 主从DNS服务器的同步可以有:完全区域同步(AXFR)和增量区域同步(IXFR),配置过程中要注意,增量备份时,需要调整区域文件中的SOA…

    Linux干货 2015-08-24
  • 计算机基础知识及服务器介绍

    现代计算机组成 根据冯·诺依曼结构体系计算机有五大部件组成: 运算器、控制器、存储器、输入设备、输出设备 CPU=运算器+控制器 运算器由算术逻辑单元(ALU)、累加器、状态寄存器、通用寄存器组等组成。 算术逻辑运算单元(ALU)的基本功能为加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、求补等操作。 运算器只能进行二进制运算、逻辑运算 控制器…

    Linux干货 2016-06-09
  • 20160803用户权限作业

    三种权限rwx对文件和目录的不同意义 文件:r:可以cat查看文件中的内容,可以查看文件的属性          w:可以ll查看文件的属性,也可以往文件中写入内容,如果其父目录具有写和执行权限就可删除其内部文件        &…

    Linux干货 2016-08-07
  • 一次css页面加载异常的折腾

    1       原始需求 近期在搭建平台,因多域名会分割流量,所以希望将类似 ansible.178linux.com  salt.178linux.com qa.178linux.com 这些平台整合为一个平台,所示如下 ansible.178linux.com =è www.178li…

    系统运维 2015-06-10
  • ☞yum源的生成与配置{ local;cdrom;http;ftp;}

    ☞yum源的生成与配置{ local;cdrom;http;ftp;} 本文是继上一篇文章“CentOS程序安装的3种方式{ 源码包安装 | rpm包安装 | yum安装;}”的补充,上篇文章http://www.178linux.com/38812主要介绍了基于cdrom的yum源制作和配置以及归纳了详细的yum命令。本文继续介绍基于本地file、远程ht…

    Linux干货 2016-08-24
  • 初识MySQL(一)

        数据库(DATABASES)      数据库是一个单位或是一个应用领域的通用数据处理系统,存储有企业和事业部门、团体和个人的有关数据的集合,该集合中数据是从全局观点出发建立的,按一定的数据模型进行组织、描述和存储。其结构基于数据间的自然联系,从而可提供一切必要的存取路径,且数据不…

    Linux干货 2015-08-24