> 文章列表 > 回炉重造八--系统启动和内核管理

回炉重造八--系统启动和内核管理

回炉重造八--系统启动和内核管理

系统启动和内核管理

1、系统启动

1.1 centos7启动的过程

回炉重造八--系统启动和内核管理

  1. UEFI或BIOS初始化,运行post开机自检
  2. 选择启动的设备(USB、硬盘、本地光盘)
  3. 引导装载程序,centos7是给grub2
  4. 加载装载程序的配置文件: /etc/grub.d/ /etc/default/grub /boot/grub2/grub.cfg
  5. 加载内核选项
  6. 加载 initramfs 初始化伪文件系统
  7. 内核初始化,centos7使用systemd代替init
  8. 执行initrd.target所有单元,包括挂载/etc/fstab
  9. 从 initramfs 根文件系统切换到磁盘根目录
  10. systemd 执行默认 target 配置,配置文件/etc/systemd/system/default.target
  11. systemd 执行 sysinit.target初始化系统及 basic.target准备操作系统
  12. systemd 启动 multi-user.target下的本机与服务器服务
  13. systemd 执行 multi-user.target 下的/etc/rc.d/rc.local
  14. Systemd 执行 multi-user.target 下的 getty.target及登录服务
  15. systemd 执行 graphical 需要的服务

1.1.1 硬件启动POST

Power-On-Self-Test,加电自检,是BIOS功能的一个主要部分。负责完成对CPU、主板、内
存、硬盘子系统、显示子系统、串并行接口、键盘等硬件情况的检测

1.1.2 启动加载器

grub是统一资源引导器,也就是引导加载器;它的工作是提供一个菜单,允许用户选择要启动的系统或不同的内核版本;把用户选定的内核装载到RAM中的特定空间中,然后解压、展开,而后把系统控制权移交给内核。

1.1.3 加载内核

#kernel自身初始化的过程
1. 探测可识别到的所有硬件设备
2. 加载硬件驱动程序(借助于ramdisk加载驱动)
3. 以只读方式挂载根文件系统
4. 运行用户空间的第一个应用程序:/sbin/init#Linux内核的特点
1、支持模块化:.ko(内核对象),如:文件系统,硬件驱动,网络协议等
2、支持内核模块的动态装载和卸载

1.1.4 系统初始化

POST --> BootSequence (BIOS) --> Bootloader(MBR) --> kernel(ramdisk) --> rootfs(只读) -->
init(systemd)#init初始化脚本
(1) 设置主机名
(2) 设置欢迎信息
(3) 激活udev和selinux
(4) 挂载/etc/fstab文件中定义的文件系统
(5) 检测根文件系统,并以读写方式重新挂载根文件系统
(6) 设置系统时钟
(7) 激活swap设备
(8) 根据/etc/sysctl.conf文件设置内核参数
(9) 激活lvm及software raid设备
(10)加载额外设备的驱动程序
(11)清理操作

1.2 系统启动文件的说明

[root@exercise1 ~]# vim /usr/lib/systemd/system/nginx.service   #配置文件内容[Unit]   #服务的说明                                       
Description=nginx  #对服务的描述
After=network.target  #描述服务运行的级别[Service]  #服务运行参数的设置
Type=forking  #服务运行的方式(这里指服务后台运行)
ExecStart=/usr/local/nginx/sbin/nginx  #服务运行的具体命令
ExecReload=/usr/local/nginx/sbin/nginx -s reload #服务重启的命令
ExecStop=/usr/local/nginx/sbin/nginx -s stop  #服务停止的命令
PrivateTmp=true  #表示给服务分配独立的临时空间[Install] 
WantedBy=multi-user.target#对启动文件的解释
[Unit]:服务的说明
Description:描述服务
After:描述服务类别[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3这部分总结的不行,有几个案例还没研究好,等弄明白了,后面再补上。