Linux组成

由 kernel 和 rootfs 组成

单内核:(进程管理,内存管理,网络管理, 驱动程序,文件系统, 安全功能)

/boot/vmlinuz-VERSION-release

辅助的伪根系统

/boot/initramfs-VERSION-release.img            这是一个cpio格式的归档文件,存放的是各种驱动模块

md5sum vmlinuz /boot/vmlinuz       查看两个文件中的内容是否完全一致,只要有一个字符不一样,两个文件的md5值就会不同

伪根系统的操作

解压查看包含文件

 mv initramfs-3.10.-.el7.x86_64.img initramfs-3.10.-.el7.x86_64.img.gz

 gunzip initramfs-3.10.-.el7.x86_64.img.gz

 cpio -tv < initramfs-3.10.-.el7.x86_64.img

生成伪文件系统(ramdisk或者initramfs文件的制作):

(1) mkinitrd命令     为当前正在使用的内核重新制作ramdisk文件         mkinitrd   /boot/initramfs-$(uname -r).img $(uname -r)

(2) dracut命令        为当前正在使用的内核重新制作ramdisk文件         dracut     /boot/initramfs-$(uname -r).img $(uname -r)

系统启动流程

post 加电自检

BIOS +  MBR

MBR中前446个字节存放的是GRUB软件中的bootloader程序

UEFI +  GPT

MBR引导

寻找MBR扇区中前446个字节的数据

GRUB

GRUB是一个复杂的软件,它安装在磁盘的不同位置

一部分安装在MBR中的前446个字节 MBR不属于任何分区     是以二进制的方式进行读写

另外一部分安装在 /boot/grub 中

如果需要访问boot分区下的文件,就必须首先识别boot分区的文件系统,如果需要识别文件系统,就必须首先加载对应文件系统的驱动.

GRUB启动被分为3个stage

1 stage                   执行 bootloader中的446个字节的程序

1.5 stage                MBR存在第一个扇区,把boot分区的文件系统驱动存储在MBR后面的几个扇区

2 stage                   读取boot分区下的文件

加载内核文件

/boot/vmlinuz-VERSION-release 加载内核后开始访问硬盘上的根分区,找到根以后启动系统中的第一个进程

内核文件是随着操作系统的发行一起发布的,存储在光盘中

根分区是在grub的配置文件中作为内核启动参数传递给内核的

/boot/initramfs-VERSION-release.img 就是用来加载根分区所属的文件系统的驱动,进而读取根分区下面的文件

伪文件系统文件是在安装操作系统的时候临时生成的,因为只有在装操作系统的时候才知道根分区采用的是什么文件系统类型

bootloader引导加载器

Windows: ntloader  仅是启动os  不支持Linux

Linux:       GRUB     功能丰富,同时支持Linux和windows

安装Windows的时候就会默认安装windows的bootloader,安装Linux的时候就会安装Linux的bootloader

后安装的操作系统的bootloader会覆盖掉前面安装的bootloader

一个主机只能安装一个bootloader.如果要在一台主机上安装双系统,最好先安装Windows然后再安装Linux.

Linux系统启动和内核管理的更多相关文章

  1. linux基础—课堂随笔010_系统启动和内核管理

    系统启动和内核管理 Linux: kernel+rootfs kernel: 进程管理.内存管理.网络管理.驱动程序.文件系统.安全功能 rootfs:程序和glibc 库:函数集合, functio ...

  2. Linux 0.12 内核管理存储器

    Linux 0.12 内核管理存储器 其分段,用分段的机制把进程间的虚拟地址分隔开. 每一个进程都有一张段表LDT.整个系统有一张GDT表.且整个系统仅仅有一个总页表. 其地址翻译过程为: 程序中给出 ...

  3. Linux系统启动过程内核文件丢失解决方法

    一.问题描述 公司近期因机房断电,导致服务器重启后,引导进入不了操作系统.经过检查发现启动文件缺失,导致系统启动失败,网上搜了好多资料,解决都比较零散,现结合实际处理经验和网友的建议整理接方案. 二. ...

  4. Linux系统启动那些事—基于Linux 3.10内核【转】

    转自:https://blog.csdn.net/shichaog/article/details/40218763 Linux系统启动那些事—基于Linux 3.10内核 csdn 我的空间的下载地 ...

  5. Linux基本配置和管理 4 ---- Linux系统启动详解

    1 系统启动的流程 BIOS -> MBR+boot code -> 执行引导程序: GRUB -> 加载内核 -> 执行init -> 运行runlevel 2 启动详 ...

  6. linux内核管理

      一  linux组成:kernel.库.rootfs.程序 1.kernel的功能: 1) kernel提供的功能都通过系统调用给用户接口 2) kernel包括:进程管理 .内存管理 .网络管理 ...

  7. Linux 内核管理

    Linux内核基础:Linux Kernel:  Linux内核的体积结构是单内核的,但充分借鉴了微内核设计体系的优点,为内核引入模块化机制,使得虽然是单内核,但工作在模块化的方式下,并且模块可以动态 ...

  8. Linux内核管理子系统和进程管理子系统

    内核管理子系统职能:1.管理虚拟地址与物理地址的映射 2.物理内存的分配 程序:存放在磁盘上的一系列代码和数据的可执行映像,是一个静止的实体. 进程:是一个执行中的程序,它是动态的实体 进程四要素: ...

  9. Linux学习之CentOS(二十一)--Linux系统启动详解

      在这篇随笔里面将对Linux系统的启动进行一个详细的解释!我的实验机器是CentOS6.4,当然对于现有的Linux发行版本,其系统的启动基本上都是一样的! 首先我们来看下Linux系统启动的几个 ...

随机推荐

  1. JMeter命令行执行及问题解决 Error in NonGUIDriver java.lang.RuntimeException: Could not find the TestPlan class!

    下面介绍的是在windows环境下如何运行jmeter linux 命令相同      1.首先要准备好脚本,并且设置好线程属性,假设我们设置一个线程,循环一次.                 2. ...

  2. linux Email 体系

    大致了解了DNS与邮件服务器之间的关系后,接下来我们介绍邮件到底是如何传送到目的邮件主机的.下面我们分成“寄信”与“收信”两个主要的邮件服务器使用方式进行介绍.先说明关于“寄信”的部分.通常我们都是使 ...

  3. 8月10日CSS总结

    1.三角形光标转换 CSS: .one{ width: 0;­­ height: 0; border-top: 100px solid #000; border-right:100px solid t ...

  4. 导入Excel 类型的数据

    thinkphp 访问此控制方法就可以导入了 //数据导入 public function impUser(){ if (!empty($_FILES)) { $upload = new \Think ...

  5. HDU 5950 - Recursive sequence - [矩阵快速幂加速递推][2016ACM/ICPC亚洲区沈阳站 Problem C]

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5950 Farmer John likes to play mathematics games with ...

  6. BZOJ 1003 - 物流运输 - [最短路+dp]

    题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1003 Time Limit: 10 Sec Memory Limit: 162 MB D ...

  7. 2016年蓝桥杯省赛A组c++第8题(暴力求解)

    /* 四平方和定理,又称为拉格朗日定理: 每个正整数都可以表示为至多4个正整数的平方和. 如果把0包括进去,就正好可以表示为4个数的平方和. 比如: 5 = 0^2 + 0^2 + 1^2 + 2^2 ...

  8. 使用double无法得到数学上的精确结果的原因及为何不能用double来初始化BigDecimal

    使用double无法得到数学上的精确结果的原因: double类型的数值占用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低位上一定会与实际数据存在误差(除非实际数据恰好是2的n次方) ...

  9. knowledge learning things TODO

    加密分区 suricata调研 tor配置 tilda配置 automake / autoconf / libtool 使用 大页内存的深入原理 Memory channels Network Man ...

  10. 【Java】一台服务器配置多个Tomcat

    需求缘由 最近接收了一个新的工具业务:ipublish发布系统,刚接手这个业务的时候,发现每次发布新的代码 需要到群里告知大家,我要停服务几分钟,准备更新代码啦.这尼玛 哪个公司都不敢这么牛逼的和用户 ...