bootstrap 引导程序;鞋带 -> 简称 boot 启动
pull oneself up by one’s bootstraps.(体现计算机系统启动的难处)
Linux系统启动分为两大部分:
一. 第一部分:机器启动(BIOS到 加载内核 ,其实跟Linux关系不大。)
1.BIOS:Basic Input Output System 三步走
(1)通电/硬件自检
(2)读取CMOS中的设置进行初始化
(3)根据CMOS设置寻找引导程序,并加载到内存
现在比较新的笔记本电脑用的是BIOS改进版EFI/UEFI
2.MBR: Master Boot Record 主引导记录 (与之等价的有GPT)
MBR是硬盘上最前面的512个字节,其最后两个字节是55AA,表示是可以启动的。前446个字节代码区存放指针,用于指向真正的引导程序,在Linux中是GRUB。
3.GRUB
重要配置文件 grub.conf 修改此文件可以改变以下界面
4.加载内核:将/boot目录下的相关内核文件加载到内存中
二. 第二部分
- init进程(第一个进程,PID=1,是之后所有进程的父进程)
1.1守护进程:
即Windows里面的服务,一开机就会运行,不用用户自己启动。
守护进程(Daemon)一般以d结尾,如atd,crond,httpd。
如登陆界面,图形化界面(不是Linux必须)
1.2启动守护进程的两种机制:
1.2.1 init机制
将守护进程分成三种类型:自己类,独立启动(小),超级守护进程(大,要启动可能要先启动子进程)。针对这三种进程提供三种命令:init、chkconfig、service。
运行级别:不同级别下启动的程序数目不同。
例如级别2:不带网络模式的多用户——就不去启动网卡驱动之类的程序
要启动一个程序,就会有一个脚本。
如果发现tomcat没启动,如何手动启动?
sudo /etc/init.d/apache2 start
或者
service apache2 start(apache是一个service)
明白这些遇到问题时就很有用。
用户登录的三种方式:
在命令行——运行级别1:单用户模式
在shell——运行级别3:普通多用户
在图形化界面——运行级别
用户登录一定是在init启动之后,那么在用户登录出现之前可以修改密码。
1.2.2 systemd机制
init机制的缺点
- 串行,启动时间长
- 启动脚本复杂
systemd取代init成为第一个进程,CentOS 7+和其他较新的发行版均采用该机制,其主要特点是:
(1) 一个守护进程被视作一个unit(服务单元),unit按功能被分为多种类型(如service,socket-即要使用网络),多个unit组合成一个target(服务组)-联系前面的运行级别。
(2) 使用systemctl主命令统一管理守护进程。
(3) 向下兼容init.d管理机制。
systemd结构过于复杂,违反了kiss规约。
文章最后列出它的一些用法: