Linux系统启动过程及常用服务工作原理
1.Linux系统的启动过程
1.计算机通电后会载入ROM芯片中的BIOS程序,BIOS程序会读取CMOS中的内容识别硬件配置,并对其自检和初始化,并获得一个可开机的设备
2.读取并执行第一个开机设备内MBR的boot loader(grub2等)
3.依据boot loader的设定载入kernel,kernel会开始检测硬件与载入驱动程序
4.在应将驱动成功后,kernel会主动呼叫systemd程序,并以default target流程开机
systemd执行sysint.target初始化系统及basic.target准备作业系统
systemd启动multi-user.target下的本机服务
systemd执行multi-user.target下的/etc/re.d/rc.local文件
systemd执行multi-user.target下的getty.target以及登入服务
systemd执行graphical需要的服务
2.web工作原理
(1) client在浏览器上输入网址或者点击链接,浏览器响应用户请求。
(2) 浏览器与对端服务程序建立TCP三次握手连接。
(3) 浏览器将client请求按照HTTP协议格式打包成一个数据包,其实质就是在待发送缓冲区中的一段有着HTTP协议格式的字节流。
(4) 浏览器确认对端可写,并将该数据包推入Internet,该包经过网络最终递交到对端服务程序。
(5) 服务端程序拿到该数据包后,同样以HTTP协议格式解包,然后解析给客户端。
(6) 得知客户端请求后,进行分类处理,或是提供某种文件、或是处理数据。
(7) 将结果装入缓冲区,或是HTML文件、或是一张图片等。
(8) 按照HTTP协议格式将(7)中的数据打包
(9) 服务器确认对端可写,并将该数据包推入Internet,该包经过网络最终递交到客户端。
(10) 浏览器拿到包后,以HTTP协议格式解包,然后解析数据,假设是HTML文件。
(11) 浏览器将HTML文件展示在页面
3.dhcp工作原理
(1) 客户端:利用广播数据包发送搜索DHCP服务器的数据包
(2)服务器端:DHCP服务器在监听到客户端发出的dhcp discover广播后,会针对这个客户端的硬件地址( MAC)与本身的设置数据进行下列工作:
到服务器的日志文件中查找该用户之前是否曾经租用过某个IP,若有且该IP目前无人使用,则提供此IP给客户端。若配置文件针对该MAC地址提供特定的固定IP时,则提供该固定的IP给客户端。
(3)客户端:决定选择DHCP服务器提供的网络参数租约并向服务器确认。
(4)服务器端:记录该次租约行为后并向客户端发送响应数据包信息以确认客户端的使用。当服务器端收到客户端的确认选择后,服务器会回送确认的dhcp ack响应数据包,并且告知客户端这个网络参数租约的期限,并且开始租约计时。
4.dns解析原理
1、首先客户端在浏览器输入http://www.zdns.cn的域名,是由浏览器发起一个DNS解析请求,如果本地缓存服务器中找不到结果,则首先会向根服务器查询,根服务器里面记录的都是各个*域所在的服务器的位置,当向根请求http://www.zdns.cn的时候,根服务器就会返回.cn服务器的位置信息。
2、递归服务器拿到.cn的权威服务器地址以后,就会寻问cn的权威服务器,知不知道http://www.zdns.cn的位置。这个时候cn权威服务器查找并返回http://zdns.cn服务器的地址。
3、继续向http://zdns.cn的权威服务器去查询这个地址,由http://zdns.cn的服务器给出了地址:202.173.11.10
4、最终才能进行http的链接,顺利访问网站。
5、一旦递归服务器拿到解析记录以后,就会在本地进行缓存,如果下次客户端再请求本地的递归域名服务器相同域名的时候,就不会再一层一层查了,因为本地服务器里面已经有缓存了,这个时候就直接把http://www.zdns.cn的A记录返回给客户端就可以了。
5.nfs的作用
允许网络中的计算机(不同的计算机、不同的操作系统)之间通过TCP/IP网络共享资源,NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中看来,那个远程主机的目录就好像是自己的一个磁盘分区一样。
6.ftp的主动模式和被动模式
主动模式FTP:
主动模式下,FTP客户端从任意的非特殊的端口(N > 1023)连入到FTP服务器的命令端口–21端口。然后客户端在N+1(N+1 >= 1024)端口监听,并且通过N+1(N+1 >= 1024)端口发送命令给FTP服务器。服务器会反过来连接用户本地指定的数据端口,比如20端口。
过程如图所示:
被动模式FTP
当开启一个FTP连接时,客户端打开两个任意的非特权本地端口(N >; 1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P >; 1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。
7.pxe+kickstart安装系统原理
(1)pxe client向DHCP server端发送请求。
(2)DHCP server收到pxe client发送的请求后会向pxe客户端提供相应的信息。
(3)pxeclient向install/boot server请求下载启动文件。
(4)Install/boot server响应请求并传输文件。
(5)pxe client向OS server请求下载自动应答文件。
(6)OS server为pxe客户端开始安装操作系统,根据ks.cfg中的设置重启系统并结束安装。