Linux系统启动和内核管理
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系统启动和内核管理的更多相关文章
- linux基础—课堂随笔010_系统启动和内核管理
系统启动和内核管理 Linux: kernel+rootfs kernel: 进程管理.内存管理.网络管理.驱动程序.文件系统.安全功能 rootfs:程序和glibc 库:函数集合, functio ...
- Linux 0.12 内核管理存储器
Linux 0.12 内核管理存储器 其分段,用分段的机制把进程间的虚拟地址分隔开. 每一个进程都有一张段表LDT.整个系统有一张GDT表.且整个系统仅仅有一个总页表. 其地址翻译过程为: 程序中给出 ...
- Linux系统启动过程内核文件丢失解决方法
一.问题描述 公司近期因机房断电,导致服务器重启后,引导进入不了操作系统.经过检查发现启动文件缺失,导致系统启动失败,网上搜了好多资料,解决都比较零散,现结合实际处理经验和网友的建议整理接方案. 二. ...
- Linux系统启动那些事—基于Linux 3.10内核【转】
转自:https://blog.csdn.net/shichaog/article/details/40218763 Linux系统启动那些事—基于Linux 3.10内核 csdn 我的空间的下载地 ...
- Linux基本配置和管理 4 ---- Linux系统启动详解
1 系统启动的流程 BIOS -> MBR+boot code -> 执行引导程序: GRUB -> 加载内核 -> 执行init -> 运行runlevel 2 启动详 ...
- linux内核管理
一 linux组成:kernel.库.rootfs.程序 1.kernel的功能: 1) kernel提供的功能都通过系统调用给用户接口 2) kernel包括:进程管理 .内存管理 .网络管理 ...
- Linux 内核管理
Linux内核基础:Linux Kernel: Linux内核的体积结构是单内核的,但充分借鉴了微内核设计体系的优点,为内核引入模块化机制,使得虽然是单内核,但工作在模块化的方式下,并且模块可以动态 ...
- Linux内核管理子系统和进程管理子系统
内核管理子系统职能:1.管理虚拟地址与物理地址的映射 2.物理内存的分配 程序:存放在磁盘上的一系列代码和数据的可执行映像,是一个静止的实体. 进程:是一个执行中的程序,它是动态的实体 进程四要素: ...
- Linux学习之CentOS(二十一)--Linux系统启动详解
在这篇随笔里面将对Linux系统的启动进行一个详细的解释!我的实验机器是CentOS6.4,当然对于现有的Linux发行版本,其系统的启动基本上都是一样的! 首先我们来看下Linux系统启动的几个 ...
随机推荐
- 【algorithm】 二分查找算法
二分查找算法:<维基百科> 在计算机科学中,二分搜索(英语:binary search),也称折半搜索(英语:half-interval search)[1].对数搜索(英语:logari ...
- Android Studio开发第一篇QuickStart
为什么把as的环境开发放在gradle里呢,因为eclipse里装gradle插件还是不够方便,as直接集成了,然后正好as也是大势所趋,学习一下正好. 看到右边Quick Start快速启动栏下面 ...
- flask下载文件中文IE,Edge,Safari文件名乱码
flask(0.11.2)+python3.6 兼容各个主流浏览器,已经过各种测试(chrome,firefox,safari,IE,Edge) quote是将文件名urlencode化,然后以适应E ...
- F#周报2018年第50期
新闻 Bolero: 用于WebAssembly的F#工具 Ionide-fsharp安装数量超过10万 WPF的Xaml.Behaviors类库开源 Visual Studio 2019预览版 .N ...
- {Django基础六之ORM中的锁和事务}一 锁 二 事务
Django基础六之ORM中的锁和事务 本节目录 一 锁 二 事务 一 锁 行级锁 select_for_update(nowait=False, skip_locked=False) #注意必须用在 ...
- Codeforces 835C - Star sky - [二维前缀和]
题目链接:http://codeforces.com/problemset/problem/835/C 题意: 在天空上划定一个直角坐标系,有 $n$ 颗星星,每颗星星都有坐标 $(x_i,y_i)$ ...
- python中OrderedDict的使用
很多人认为python中的字典是无序的,因为它是按照hash来存储的,但是python中有个模块collections(英文,收集.集合),里面自带了一个子类 OrderedDict,实现了对字典对象 ...
- TF模型训练中注意Loss和F1的变化情况
之前训练模型,认为网络图构建完成,Loss肯定是呈现下降的,就没有太留心,知识关注F1的变化情况,找到最优的F1训练就停止了,认为模型就ok. 但实际中发现,我们要时刻关注网络的损失变化情况,batc ...
- Sticks POJ - 1011 少林神棍 dfs四次剪枝
http://poj.org/problem?id=1011 题意:若干根棍子被截成小段的木棒,现在给你这些木棒,问最短可以拼出的棍子长度. 题解:搜索,dfs(r,m) 二个参数分别代表还剩r个木棒 ...
- zabbix客户端自动注册
1. 概述 上一篇内容<zabbix自动发现配置>,大概内容是zabbix server去扫描一个网段,把在线的主机添加到Host列表中.我们本篇内容与上篇相反,这次是Active age ...