探索Linux操作系统的启动过程

简介: 【8月更文挑战第31天】本文将深入探讨Linux系统从按下电源键到登录界面出现之间的神秘世界。我们将一步步揭开内核加载、初始化进程启动和系统服务运行的面纱,同时通过实际代码示例,揭示这一切是如何精妙地编织在一起的。无论你是系统管理员还是对操作系统感兴趣的爱好者,这篇文章都将给你带来新的视角和深刻的见解。

当我们按下计算机的电源键时,似乎只是一瞬间的事,但实际上背后发生了一连串复杂而精密的事件。在Linux操作系统中,这一过程尤为引人入胜。接下来,让我们逐步探索Linux系统启动的过程。

首先,当电源开启后,BIOS(基本输入输出系统)或UEFI(统一可扩展固件接口)会接管控制权。它们负责进行硬件检测和初始化,然后从硬盘读取 bootloader。

以GRUB为例,这是一个常用的Linux bootloader。GRUB的任务是将Linux内核加载到内存中并启动它。我们可以在/boot/grub2/grub.cfg文件中找到GRUB配置,例如:

menuentry 'Ubuntu' --class ubuntu {
    recordfail
    set gfxmode=$linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root <UUID>
    linux /boot/vmlinuz-... root=UUID=... ro quiet splash $vt_handoff
    initrd /boot/initrd.img-...
}

一旦内核被加载,控制权就转交给了Linux。Linux内核会进行硬件设备的检测与初始化,并启动第一个用户空间进程——init(或systemd)。

systemd是现代Linux发行版中的初始化系统和服务管理器。它负责拉起各种服务和守护进程,管理它们的运行顺序和依赖关系。我们可以通过以下命令查看systemd的服务状态:

systemctl list-units --type=service

此命令会列出所有服务及其当前状态,包括已启动的和失败的服务。

接下来,systemd会按照配置文件中的指令启动各项服务。这些配置文件通常位于/etc/systemd/system/lib/systemd/system目录下。例如,一个典型的服务配置文件可能看起来像这样:

[Unit]
Description=Example service
After=network.target

[Service]
ExecStart=/usr/bin/example-service
Restart=always

[Install]
WantedBy=multi-user.target

这个配置文件定义了一个名为"Example service"的服务,它在网络准备好后启动,并且如果该服务退出,systemd会尝试重启它。

最后,一旦所有必要的服务都启动完毕,systemd会启动getty服务,允许用户登录。此时,从按下电源键到看到登录提示符的整个过程终于完成。

通过上述步骤,我们得以一窥Linux启动过程中的奥秘。每个环节都是精心设计的,确保了系统的稳定和可靠。对于任何希望更深入了解Linux内部工作原理的人来说,这个过程提供了丰富的知识宝藏。

相关文章
|
4月前
|
Ubuntu 物联网 Linux
从零安装一个Linux操作系统几种方法,以Ubuntu18.04为例
一切就绪后,我们就可以安装操作系统了。当系统通过优盘引导起来之后,我们就可以看到跟虚拟机中一样的安装向导了。之后,大家按照虚拟机中的顺序安装即可。 好了,今天主要介绍了Ubuntu Server版操作系统的安装过程,关于如何使用该操作系统,及操作系统更深层的原理,还请关注本号及相关圈子。
|
4月前
|
监控 Ubuntu Linux
什么Linux,Linux内核及Linux操作系统
上面只是简单的介绍了一下Linux操作系统的几个核心组件,其实Linux的整体架构要复杂的多。单纯从Linux内核的角度,它要管理CPU、内存、网卡、硬盘和输入输出等设备,因此内核本身分为进程调度,内存管理,虚拟文件系统,网络接口等4个核心子系统。
351 0
|
4月前
|
Unix 物联网 Linux
都什么年代了,你还不懂啥是Linux操作系统
至于华为鸿蒙操作系统是不是独树一帜,这个留给各位阅读本文的网友们来讨论
128 0
|
4月前
|
安全 Linux iOS开发
linux属于什么操作系统
Linux是一种自由和开放源代码的操作系统,具有高度的灵活性和可定制性。与常见的操作系统如Windows和macOS相比,Linux具有自由、安全和稳定等优势。Linux已广泛应用于服务器、桌面电脑、超级计算机和嵌入式设备等领域,并且在未来的发展前景广阔。由于其自由和开放源代码的特性,Linux还促进了计算机技术和社区的发展,为全球的计算机用户提供了更多的选择和可能性。
|
4月前
|
安全 Ubuntu Unix
关于Linux操作系统,你必须要知道的事
我们可以看到无论是Debian还是Buildroot都有各自的特点,为客户提供了更大的选择空间和灵活性,大家可以根据自己的需求选择合适的版本来满足终端用户的体验和功能需求。从平技术将会一直关注更多更安全、灵敏、易于开发的Linux版本,做好适配工作,不断为客户带来“简单开发、方便应用”的使用体验。
|
4月前
|
安全 Ubuntu Linux
如何安装Linux操作系统?
此时,您可以选择重新启动计算机,然后从硬盘上的Linux系统启动。以上是一个大致的安装过程。请注意,不同的Linux发行版可能会在细节上有所差异,因此在进行安装之前,请确保您阅读并理解了相应发行版的安装指南或文档。
|
4月前
|
Ubuntu Linux 开发者
Linux发行版比较:选择适合你的操作系统
在做出选择之前,建议您先在虚拟机或双系统环境中尝试不同的发行版,根据自己的体验和需求做出决策。选择适合自己的Linux发行版是一个个人化和主观的过程,最重要的是找到符合自己需求和喜好的发行版,让您在使用Linux系统时感到舒适和方便。
|
4月前
|
Ubuntu Unix Linux
玩机强化技能,动手安装Ubuntu Linux操作系统
(13)Ubuntu重启过程中,你将在关机画面中看到提示文字“Please remove the installation medium, then press ENTER:”,按下“Enter”键即可重启电脑。
|
4月前
|
Web App开发 Ubuntu Linux
Linux之Ubuntu操作系统安装
1、在Ubuntu系统下,可以使用自带的U盘启动制作软件制作启动盘。使用方法和rufus类似。 2、或者用dd命令制作启动盘,关于dd命令的使用方法可以百度查看。经过亲自实践,archlinux系统和红旗9.0系统的启动U盘就是用dd命令制作成功。
|
4月前
|
Ubuntu Linux Android开发
Ubuntu——一款备受瞩目的Linux操作系统
目前,要在Ubuntu上使用Windows下常用的工具,一个理想的解决方案是采用Deepin-wine。Deepin-wine是Windows模拟环境,允许用户在Ubuntu上轻松运行许多Windows软件。安装Deepin-wine后,您将能够使用以下列出的众多软件: