Linux的引导过程与服务控制

Linux操作系统引导过程

开机自检MBR引导GRUB菜单加载Linux内核init进程初始化
1.开机自检
服务器主机开机以后,将根据主板BIOS中的设置对CPU、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交给本机硬盘。

总结:检测出第一个能够引导系统的设备,比如硬盘或者光驱
2. MBR引导
当从本机硬盘中启动系统时,首先根据硬盘第--个扇区中MBR(主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区:或者直接根据MBR记录中的引导信息调用启动菜单(如GRUB)。

总结:运行放在MBR扇区里的启动GRUB引导程序
3. GRUB菜单
对于Linux操作系统来说,GRUB (统一启 动加载器)是使用最为广泛的多系统引导器程序。系统控制权传递给GRUB以后,将会显示启动菜单给用户选择,并根据所选项(或采用默认值)加载Linux内核文件,然后将系统控制权转交给内核。

Centos 7采用的是GRUB2启动引导器。

总结: GRUB引 导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置和路径位置
4.加载Linux内核
Linux内核是---个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度。内核接过系统控制权以后,将完全掌控整个Linux操作系统的运行过程。

Centos 7系统中,默认的内核文件位于“/boot/vmlinuz-3.10.0-514.e17.x86_ _64"。
总结:把内核和镜像文件系统加载到内存中
5. init进程初始化
为了完成进一-步的系统引导过程,Linux内核首先将系统中的“/sbin/init"程序加载到内存中运行(运行中的程序称为进程),init进程负责完成整个系统的初始化,最后等待用户进行登录。

总结:加载硬件驱动程序,内核把init进程加载到内存中运行

系统初始化进程

init进程

  • 由Linux内核加载运行/sbin/init程序
  • oinit进程是系统中第一个进程, 是所有进程的父进程
  • oinit进程的PID (进程标记)号永远为1

Systemd

  • Systemd是Linux操作系统的一种init软件
  • CentOS7中采用全新的Systemd启动方式,取代传统的SysVinit    (传统的SysVinit 是串行执行shell脚本启动服务,Systemd并行启动,快)
  • CentOS7中运行的第一个init进程 是/lib/systemd/systemd

 

Systemd单元类型

单元类型 扩展名 说明
*Service .service 描述一个系统服务
Socket .socket 描述一个进程间通信的套接字
Device .device 描述一个内核识别的设备文件
*Mount .mount 描述一个文件系统的挂载点
Automount .automount 描述一个文件系统的自动挂载点
Swap .swap 描述一个内存交换设备或交换文件
Path .path 描述一个文件系统中文件或目录
Timer .timer 描述一个定时器
Snapshot .snapshot 用于保存一个systemd的状态
Scope .scope 使用systemd的总线接口以编程的方式创建外部进程
Slice .slice 描述居于cgroup的一组通过层次组织的管理系统进程
*Target .target 描述一组systemd的单元

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

系统服务控制

systemctl 控制类型 服务名称

控制类型:

  • start:启动
  • stop:停止
  • restart:重新启动
  • reload:重新加载
  •  status:查看服务状态

 查看运行级别

  • runlevel命令                      #只能查看切换运行级别与当前运行级别
  • systemct工具
    systemct get-default                      #查看系统默认运行级别
    systemct set-default  xx.target      #永久修改运行级别

 

临时切换运行级别:

  • init命令
  • systemctl工具
init的命令参数是运行级别所对应的数字
systemctl的命令参数是具体的target
多种方法的运行切换:
init 0  =  systemctl isolate poweroff.target   = poweroff    
init 1  =     systemctl isolate rescue.target
init 3  =  systemctl isolate multi-user.target
init 5  =  systemctl isolate graphical.target
init 6  =  systemctl isolate reboot.target    =    reboot
 
systemctl set-default  xx.target      #修改运行级别

置永久运行级别:

  • 创建软连接方法: ln -sf /lib/ systemd/ system/multi-user.target /etc/ systemd/ system/default.target
  • 直接修改: systemctl set-default multi-user.target

 

运行级别所对应的Systemd目标

 

运行级别 Systemd的target 说明
0 target 关机
1 rescue.target 单用户模式,不需要密码验证可登入系统,多用于系统维护
2 multi-user.target 等同于3
3 multi-user.target 字符界面
4 multi-user.target 等同于3
5 graphical.target 图形界面
6 reboot.target 重启

 

 

 

 

 

 

 

 

 

 

 

 

 

优化启动过程  (开机自加载)

ntsysv工具         (管理多个服务)

  • 提供一个交互式、可视化窗口
  • 可以在字符终端运行
  • 便于集中管理多个服务
  • 用于控制服务是否开机自启动

Linux的引导过程与服务控制

 

 上下键翻动  空格键选择

systemctl 工具   (管理单个服务)

  • 不提供交互式、可视化窗口
  • 管理单个服务效率高
systemctl enable   服务                 开启

systemctl disable  服务                 关闭
systemctl is-enabled 服务             查询状态
 
 
 

Linux的引导过程与服务控制

上一篇:Photoshop 光滑的蓝色水晶字制作教程


下一篇:win7 debian 双系统修改引导项顺序