bios加电自检————>mbr————>grub———>加载内核文件————>启动进程
检测硬件是否正常,然后根据bios中的启动设置去找内核文件。
因为grub太大,第一个扇区存不下所有的grub程序,所以分成两部分引导硬件找到内核文件。
根据greb配置文件中记录的位置,去寻找内核文件(高级语言)。
grub的作用:交互,设置密码,修复自己
grub的启动过程:
1primary boot loader :(引导记录)
1st stage:MBR的前446个字节 引导 硬件去找 内核
1.5 stage:MBR 之后的扇区,让stage1中的bootloader能识别stage2所在的分区上的文件系统
secondary boot loader :2nd stage,分区文件/boot/grub2/grub.cfg表现为文件。
把内核和镜像文件系统加载到内存中可以使用。
这是linux 系统运行的第一个程序,加载硬件驱动程序,内核把init进程加载到内存中运行。
centos6使用init 串行启动后续程序,一个一个按顺序启动。
centos7使用systemd 并行启动程序,全部一起启动。
加电后bios程序全自检硬件,硬件无故障后,会根据第一启动项去寻找内核,一般来说第一启动项是硬盘,找到在硬盘后,会根据mbr的指引找到完整的grub程序,再根据 grub的配置文件找到内核文件的具体位置,然后将内核文件加载到内存中运行,内存加载好会启动第一程序。
systemd是系统的高级程序,代为管理系统上的服务程序
systemd:yum以及rpm安装的软件可以直接使用
systemctl具有启动,关闭,重启,开机自启等功能
systemd unit(单元):systemd方便管理程序,将程序按照特定的功能分成了很多单元服务,单元配置。
通式:
systemctl [command] [unit.target]
command参数:
get-default :取得当前的target
set-default :设置指定的target为默认的运行级别 3 5
isolate :切换到指定的运行级别
unit.target :上面列出的运行级别
0:关机
1:单用户模式(root自动登录), single, 维护模式
2:多用户模式,启动网络功能,但不会启动NFS;维护模式
3:多用户模式,正常模式;文本界面
4:预留级别;可同3级别
5:多用户模式,正常模式;图形界面
6:重启
centos6使用chkconfig
通式:chkconfig --list [服务名称]
在/etc/init.d/下写一个同名文件的脚本。(必须要有执行权限)
chkconfig --add 服务名称
chkconfig --level 级别列表服务名 on ————开机自启
chkconfig --level 级别列表服务名 off ————开机自动关闭
service 服务程序 start ————开启服务
service 服务程序 stop ————关闭服务
service 服务程序 status ————查看状态
service 服务程序 restart ————重启服务
service 服务程序 reload ————重新加载
centos7使用systemd
开机自启————systemctl enable 服务名
开机自启并立刻启动————systemctl enable--now 服务名
开机不自启————systemctl disable 服务名
开机不自启并立即启动————systemctl disable--now 服务名
systemctl start 服务名 ————开启服务
systemctl stop 服务名————关闭服务
systemctl status 服务名————查看状态
systemctl restart 服务名————重启服务
systemctl reload 服务名————重新加载
vim编译内容
[Unit]
Description=The nginx HTTP and reverse proxy server
#描述软件的功能
[Service]
PIDFile=/apps/nginx/logs/nginx.pid
# 方便使用 pid 号 进行操作 , 指明进程的 pid 号
ExecStart=/apps/nginx/sbin/nginx
#使用绝对路径启动
ExecStop=/usr/bin/kill -s TERM $MAINPID
#杀死进程
ExecReload=/apps/nginx/sbin/nginx -s reload
#重新加载
[Install]
WantedBy=multi-user.target
安装子字符界面