<返回更多

Linux 系统启动过程详解

2023-09-08  微信公众号  微技术之家
加入收藏

如果有一天你们公司很重要的一台linux服务器突然启动不了了,重装系统又浪费时间,如果是启动过程有问题,那么你知道启动过程可以快速定位系统问题,很快就可以解决。

图片

Linux 系统启动是一个复杂而有序的过程,它是系统从硬件启动到软件运行的全过程。了解 Linux 的启动过程可以帮助我们更好地理解操作系统如何管理计算机资源,以及如何优化系统性能。本文将详细介绍 Linux 系统启动的各个阶段。

图片

一、内核引导

当计算机打开电源后,首先是 BIOS 开机自检,按照 BIOS 中设置的启动设备(通常是硬盘)来启动。紧接着由启动设备上的 GRUB 程序开始引导 Linux,当引导程序成功完成引导任务后,Linux 从它们手中接管了 CPU 的控制权,然后 CPU 就开始执行 Linux 的核心映象代码,开始了 Linux 启动过程。

二、运行 init 进程

在内核加载完毕后,会启动Linux操作系统第一个守护进程init,这个进程的PID是1,所有的进程都是它的子进程。

通过这个进程读取/etc/inittab文件,/etc/inittab文件的作用是设定Linux的运行等级,文件内容大致如下:

# Default runlevel. The runlevels used by RHS are:#   0 - halt (Do NOT set initdefault to this)#   1 - Single user mode#   2 - Multiuser, without NFS (The same as 3, if you do not have.NETworking)#   3 - Full multiuser mode#   4 - unused#   5 - X11#   6 - reboot (Do NOT set initdefault to this)# id:3:initdefault:
...

从文件内容知道Linux系统运行等级一共有7种:

0:关机模式,运行等级为0,系统会立即关机,在系统启动后可以利用这种等级对系统进行关机操作,但是不允许将系统下次启动时的等级设定为0,否则系统将无法正常启动(启动后立即关机)。1:单用户模式,类似于windows系统下的安全模式,具有ROOT权限。2:无网络支持的多用户模式,顾名思义就是支持多用户登录3:字符界面多用户模式,文本命令行界面,一般服务器都是此模式4:保留,未使用模式5:图形界面多用户模式,系统启动之后会进入到图形化桌面系统中6:重新引导系统,重启模式,千万不要设置为6,和0相似。

/etc/inittab文件内容中的设定的行:

  • id:3:initdefault:

表示启动的层级为3,即图形界面多用户模式。一般3和5比较常用,如果需要其它等级,可以手动修改这个值。

每一个运行级别都在/etc目录下有一个对应的子目录,可以指定每一个运行级别需要加载哪些程序,rcN.d的字母d是directory的意思,表示这是一个目录。

init 进程是系统所有进程的起点,你可以把它比拟成系统所有进程的老祖宗,没有这个进程,系统中任何进程都不会启动。init 进程在内核引导完成后立即运行,它的任务是初始化系统环境,创建一些必要的进程和设备,以及为后续的启动步骤做好准备。

三、系统初始化

系统初始化主要通过 rc.sysinit 来进行。这个脚本会进行一些系统特定的初始化操作,比如设置系统时间、挂载文件系统、启动磁盘检查等。此外,rc.sysinit 还会加载并启动一些必要的守护进程和服务,以便在系统启动的后续阶段能够正常运行。

四、建立终端

rc.sysinit 执行完毕后,返回 init。这时基本系统环境设置好了,各种守护进程也已经启动了。init 接下来会打开 6 个终端,以便用户登录系统。这些终端分别是:tty1、tty2、tty3、tty4、tty5 和 tty6。用户可以通过这些终端进行命令行登录或远程登录。

五、用户登录

一般来说,用户的登录方式有三种:命令行登陆、SSH 登陆、图形界面登陆。当用户通过这些方式成功登录后,就可以开始使用 Linux 系统了。

图片

总之,Linux 系统启动过程是一个从硬件到软件、从引导到登录的复杂过程。通过深入了解这个过程,我们可以更好地理解和优化系统的性能,同时也有助于我们解决系统启动过程中可能遇到的问题。

关键词:Linux      点击(8)
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多Linux相关>>>