zoukankan      html  css  js  c++  java
  • 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的配置文件

  • 相关阅读:
    Address already in use: JVM_Bind:80 异常的解决办法
    Spring(转载二)
    Spring(转载一)
    mybatis(二)
    mybatis(一)
    存储过程(二)
    存储过程(一)
    web过滤器
    请求转发和请求重定向
    JavaWeb(二)
  • 原文地址:https://www.cnblogs.com/wangnengwu/p/13918250.html
Copyright © 2011-2022 走看看