首页 Linux基础教程linux内核管理

linux启动过程

linux加密管理

运维派是国内成立最早的IT运维技术社区,欢迎关注公众号:yunweipai

内核模块管理和编译

单内核体系设计、但充分借鉴了微内核设计体系的优点,为内核引入模块化机制
内核组成部分:
kernel:内核核心,一般为bzImage,通常在/boot目录下
名称为 vmlinuz-VERSION-RELEASE
kernel object:内核对象,一般放置于
/lib/modules/VERSION-RELEASE/

​ 辅助文件:ramdisk
​ initrd
​ initramfs

内核版本

运行中的内核:
uname命令:
uname - print system information
uname [OPTION]...
-n: 显示节点名称
-r: 显示VERSION-RELEASE
-a:显示所有信息

内核模块命令

lsmod命令:

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

modinfo命令:

功能:管理内核模块

配置文件:/etc/modprobe.conf, /etc/modprobe.d/*.conf

  • 显示模块的详细描述信息

常用选项:

范例:

  • 装载或卸载内核模块

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

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

范例:

rmmod命令:卸载模块

范例:

编译内核

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

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

CPU:

PCI设备:lspci -v ,-vv

USB设备:lsusb -v,-vv

lsblk 块设备

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

开发环境相关包

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

内核编译安装实现
  • 下载源码文件

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

  • make menuconfig:配置内核选项

  • make [-j #] 或者用以下两步实现:

    make -j # bzImage

    make -j # modules

  • 安装模块:make modules_install

  • 安装内核相关文件:make install

    • 安装bzImage为 /boot/vmlinuz-VERSION-RELEASE
    • 生成initramfs文件
    • 编辑grub的配置文件
编译安装内核实战案例

内核编译说明
  1. 配置内核选项

    ​ 支持“更新”模式进行配置:make help
    ​ (a) make config:基于命令行以遍历的方式配置内核中可配置的每个选项
    ​ (b) make menuconfig:基于curses的文本窗口界面
    ​ (c) make gconfig:基于GTK (GNOME)环境窗口界面
    ​ (d) make xconfig:基于QT(KDE)环境的窗口界面

    ​ 支持“全新配置”模式进行配置

    ​ (a) make defconfig:基于内核为目标平台提供的“默认”配置进行配置
    ​ (b) make allyesconfig: 所有选项均回答为“yes“
    ​ (c) make allnoconfig: 所有选项均回答为“no“

  2. 编译内核

    • 全编译:

    • 编译内核的一部分功能:
      (a) 只编译某子目录中的相关代码

      ​ (b) 只编译一个特定的模块

      ​ 范例:只为e1000编译驱动:

3 交叉编译内核
编译的目标平台与当前平台不相同

​ make ARCH=arch_name

要获取特定目标平台的使用帮助
make ARCH=arch_name help
示例:
make ARCH=arm help

4 重新编译需要事先清理操作

卸载内核
  • 删除/lib/modules/目录下不需要的内核库文件
  • 删除/usr/src/linux/目录下不需要的内核源码
  • 删除/boot目录下启动的内核和内核映像文件
  • 更改grub的配置文件,删除不需要的内核启动列表 grub2-mkconfig -o /boot/grub2/grub.cfg
  • CentOS 8 还需要删除 /boot/loader/entries/5b85fc7444b240a992c42ce2a9f65db5-新内核版本.conf

本文链接:http://www.yunweipai.com/33947.html

linux启动过程

linux加密管理

网友评论comments

发表评论

电子邮件地址不会被公开。 必填项已用*标注

暂无评论

Copyright © 2012-2020 YUNWEIPAI.COM - 运维派
扫二维码
扫二维码
返回顶部