CentOS 的启动过程和内核管理

linux组成:

kernel:实现进程管理,内存管理,网络管理,驱动程序,文件系统,安全功能等功能

rootfs:包括程序和glibc库

程序:二进制执行文件

库:函数集合,function,调用接口(头文件负责描述)

centos的启动流程:

1开机加电自检,加载BIOS的硬件信息,并进行硬件检测,获取第一个启动设备

BIOS硬件检测:负责对CPU,主板,内存,硬盘,显示子系统,串并行接口,键盘等硬件情况检测

2 读取MBR主引导扇区

3 启动GRUB引导装载程序

引导装载程序:功能丰富,提供菜单,允许用户启动不同的操作系统和内核版本,把用户选定的内核装载到内存中的特定空间中,解压、展开,并把系统控制权移交给内核

4 GRUB开始引导加载init 0 系统的第一个初始化进程,并获取默认的运行信息

5 init 0 程序执行/etc/rc.d/rc.sysinit文件,重新挂载根文件系统

6 启动核心的外挂模块

7 执行各个批处理文件

8执行/etc/rc.d/rc.local

9执行/bin/login程序,等待用户登入

10登录之后以shell开始控制主机

 

内核模块管理和编译

kernel内核,通常在/boot目录下,名称为 vmlinuz-VERSION-RELEASE,

kernel object内核对象,一般放置于/lib/modules/VERSION-RELEASE/

运行中的内核版本:

uname [OPTION]…
-n: 显示节点名称
-r: 显示VERSION-RELEASE
-a:显示所有信息

内核模块:

lsmod命令:

  • 显示由核心已经装载的内核模块
  • 显示的内容来自于: /proc/modules文件

 

modinfo:显示模块详细信息

 

装载和卸载内核模块:

depmod命令:内核模块依赖关系文件及系统信息映射文件的生成工具

insmod命令:指定模块文件,不自动解决依赖模块

rmmod:卸载模块,例如:rmmod xfs  rmmodexportfs

编译内核

编译安装内核准备:
(1) 准备好开发环境
(2) 获取目标主机上硬件设备的相关信息
(3) 获取目标主机系统功能的相关信息,例如:需要启用相应的文件系统
(4) 获取内核源代码包, www.kernel.org

编译准备
目标主机硬件设备相关信息

CPU:cat /proc/cpuinfo

PCI设备:lspci -v ,-vv

USB设备:lsusb -v,-vv

dnf install usbutils -y

lsusb

lsblk 块设备

全部硬件设备信息:hal-device:CentOS 6

开发环境相关包

gcc make ncurses-devel flex bison openssl-devel elfutils-libelf-devel

 

内核编译安装实现:

下载源码文件

准备文本配置文件/boot/.config

make menuconfig:配置内核选项

 

 

make -j # bzImage

make -j # modules

安装模块:make modules_install

 

安装内核相关文件:make install

安装bzImage为 /boot/vmlinuz-VERSION-RELEASE

生成initramfs文件

编辑grub的配置文件

 

posted @ 2020-11-03 10:57  王能武  阅读(190)  评论(0编辑  收藏  举报