当前位置: 首页 > Linux

GNU-Linux系统启动过程

时间:2023-04-07 01:40:14 Linux

Linux系统启动过程Linux系统启动过程可分为内核启动的5个阶段。运行初始化。系统初始化。建立一个终端。用户登录系统。1、内核启动计算机开机后,BIOS会先进行自检,并根据BIOS中设置的启动设备(一般为硬盘)启动。操作系统接管硬件后,首先读取/boot目录下的内核文件。2、运行initinit进程是系统中所有进程的起点。您可以将其与系统中所有进程的祖先进行比较。没有这个进程,系统中的任何进程都不会启动。init程序首先需要读取配置文件/etc/inittab。2.1运行级别许多程序需要引导才能启动。它们在Windows中称为“服务”,在Linux中称为“守护进程”。init进程的一个主要任务就是运行这些启动程序。但是,在不同的场合需要启动不同的程序。例如,Apache作为服务器需要启动,作为桌面则不需要。Linux允许为不同的场合分配不同的引导程序,这称为“运行级别”。也就是说,根据启动时的“运行级别”,决定运行哪些程序。Linux系统有7个运行级别(runlevel):runlevel0:系统处于关机状态,系统默认的runlevel不能设置为0,否则无法正常启动runlevel1:单用户工作状态,root权限,用于系统维护,禁止远程登录运行级别2:多用户状态(无NFS)运行级别3:完全多用户状态(有NFS),登录后进入控制台命令行模式运行级别4:系统未使用,保持运行级别5:X11control登录后进入图形GUI模式。运行级别6:系统正常关闭并重新启动。默认运行级别不能设置为6,否则无法正常启动。3、系统初始化的init配置文件中有这么一行:si::sysinit:/etc/rc.d/rc.sysinit 调用并执行/etc/rc.d/rc.sysinit,并且rc.sysinit是一个bashshell脚本,它主要完成一些系统初始化工作,rc.sysinit是每个运行级别首先运行的重要脚本。它主要完成以下任务:激活交换分区、检查磁盘、加载硬件模块以及其他需要优先处理的任务。l5:5:wait:/etc/rc.d/rc5这一行的意思是运行/etc/rc.d/rc,参数为5,/etc/rc.d/rc是一个接受5作为参数的shell脚本一个参数,执行/etc/rc.d/rc5.d/目录下的所有rc启动脚本,/etc/rc.d/rc5.d/目录下的这些启动脚本其实是一些连接文件,不是的真正的rc启动脚本其实是放在/etc/rc.d/init.d/目录下的。这些rc启动脚本的用法类似,一般都接受start、stop、restart、status等参数。/etc/rc.d/rc5.d/中的rc启动脚本通常是以K或S开头的连接文件,对于以S开头的启动脚本,会带start参数运行。而如果发现有相应的脚本和以K开头的连接,并且已经在运行(以/var/lock/subsys/下的文件为标志),则首先停止这些启动的守护进程,以stop为一个参数进程,然后再次运行它。这样做是为了确保当init更改运行级别时,所有关联的守护进程都会重新启动。至于每个运行级别会运行哪些守护进程,用户可以通过chkconfig或setup中的“系统服务”自行设置。4、terminalrc执行完后,返回init。此时基本的系统环境已经搭建完成,各种守护进程也已经启动。init随后会打开6个终端供用户登录系统。inittab中的以下6行定义了6个终端:1:2345:respawn:/sbin/mingettytty12:2345:respawn:/sbin/mingettytty23:2345:respawn:/sbin/mingettytty34:2345:respawn:/sbin/mingettytty45:2345:respawn:/sbin/mingettytty56:2345:respawn:/sbin/mingettytty6从上面可以看出mingetty程序在2、3、4、5运行级别会以respawn模式运行,mingetty程序可以打开终端并设置模式。同时会显示一个文字登录界面,也就是我们经常看到的登录界面。在这个登录界面中,会提示用户输入用户名,用户输入的用户名会作为参数传递给登录程序,以验证用户身份。5、用户登录系统一般来说,用户登录有三种方式:(1)命令行登录(2)ssh登录(3)图形界面登录图形登录界面。登录成功后,可以直接进入KDE、Gnome等窗口管理器。而本文主要讲的是文本登录的情况:当我们看到mingetty的登录界面时,我们可以输入用户名和密码来登录系统。Linux账号验证程序是login,login会收到mingetty传来的用户名作为用户名参数。login然后分析用户名:如果用户名不是root且/etc/nologin文件存在,则login输出nologin文件的内容并退出。这通常用于防止非root用户在系统维护期间登录。只有在/etc/securetty中注册的终端才允许root用户登录。如果没有这个文件,root用户可以在任何终端上登录。/etc/usertty文件用于对用户进行额外的访问限制。如果此文件不存在,则没有其他限制。6、如何切换图形模式和文本模式Linux默认提供了六个命令窗口终端供我们登录,默认情况下,我们登录第一个窗口,即tty1。这六个窗口分别是tty1、tty2...tty6。您可以按Ctrl+Alt+F1~F6来切换它们。如果安装了图形界面,则默认进入图形界面。这时可以按Ctrl+Alt+F1~F6进入其中一个命令窗口界面。进入命令窗口界面再返回图形界面时,只需按Ctrl+Alt+F7即可返回。如果你用的是vmware虚拟机,切换命令窗口的快捷键是Alt+Space+F1~F6。如果您在图形界面,请按Alt+Shift+Ctrl+F1~F6切换到命令窗口。7、linux关机多用于linux领域的服务器上,很少遇到关机操作。毕竟在服务器上运行一个服务是没完没了的,除非有特殊情况才会被关闭。正确的关机流程是:sync>shutdown>reboot>halt关机命令是:shutdown,用manshutdown可以看帮助文档。例如,您可以运行以下命令来关闭:sync将数据从内存同步到硬盘。shutdown关机命令,可以看manshutdown的帮助文档。比如你可以运行下面的命令来关机:shutdown-h10'Thisserverwillshutdownafter10mins'这个命令告诉大家计算机将在10分钟后关机,并且会显示在登录的当前屏幕上-在用户中。shutdown–hnow立即关闭shutdown–h20:25系统将在今天20:25关闭shutdown–h+10十分钟后关闭shutdown–rnow系统立即重启shutdown–r+10系统重启十分钟minuteslaterreboot表示重启,相当于shutdown-rnowhalt关闭系统,相当于shutdown-hnow和poweroff最后总结一下,不管是重启系统还是关闭系统,首先运行sync命令将内存中的数据写入磁盘。关机的命令是shutdown–hnowhaltpoweroff和init0,重启系统的命令是shutdown–rnowrebootinit6。