标签:文件 CentOS 启动 make 硬件 内核 模块 内核模块
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的配置文件
标签:文件,CentOS,启动,make,硬件,内核,模块,内核模块 来源: https://www.cnblogs.com/wangnengwu/p/13918250.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。