Linux系统启动过程
引言
Linux系统是一种开源操作系统,它的启动过程相比于Windows等闭源系统,更加透明和灵活。本文将介绍Linux系统的启动过程,包括硬件启动、引导加载器、内核启动、初始化进程等步骤。
硬件启动
在计算机开机后,BIOS会自动启动进行硬件自检,检测计算机所有的硬件是否正常。如果硬件检测正常,BIOS会查找可启动设备列表,例如硬盘、光驱、USB等。BIOS会按照启动设备顺序查找可启动设备,并尝试从它们中的第一个设备中加载引导程序。
引导加载器
引导加载器是一段小程序,它的主要功能是加载操作系统内核到计算机内存中。Linux系统中最常用的引导加载器是GRUB(GRand Unified Bootloader),它支持多操作系统引导,为Linux系统带来更多的灵活性。
grub> root (hd0,0) grub> kernel /vmlinuz root=/dev/sda1 grub> initrd /initrd.img grub> boot
上述代码是GRUB的一个示例配置,其中root命令指定引导设备,kernel命令加载内核,initrd命令加载启动镜像,boot命令启动系统。
内核启动
当引导加载器成功加载内核到内存中后,内核就开始执行。内核是Linux系统的核心,它负责管理系统资源、驱动设备、执行用户程序等任务。内核启动时,它会初始化系统资源、加载驱动程序、挂载文件系统等操作。
[ 0.000000] Linux version 5.10.0-8-amd64 (debian-kernel@lists.debian.org) (gcc-10 (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2) #1 SMP Debian 5.10.46-1 (2021-07-21) [ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-5.10.0-8-amd64 root=/dev/sda1 ro quiet [ 0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
上述代码是内核启动时的一部分输出信息,它显示了内核的版本、命令行参数、支持的硬件特性等信息。
初始化进程
内核启动后,它会启动第一个用户空间进程init(或systemd),它是整个系统的父进程,负责启动其他用户进程。init进程会读取/etc/inittab文件,根据其中的配置启动系统服务。
# /etc/inittab: init(8) configuration. # $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $ # The default runlevel. id:3:initdefault: # Boot-time system configuration/initialization script. # This is run first except when booting in emergency (-b) mode. si::sysinit:/etc/init.d/rcS # What to do in single-user mode. ~~:S:wait:/sbin/sulogin # /etc/init.d executes the S and K scripts upon change # of runlevel. # # Runlevel 0 is halt. # Runlevel 1 is single-user. # Runlevels 2-5 are multi-user. # Runlevel 6 is reboot. l0:0:wait:/etc/init.d/rc 0 l1:1:wait:/etc/init.d/rc 1 l2:2:wait:/etc/init.d/rc 2 l3:3:wait:/etc/init.d/rc 3 l4:4:wait:/etc/init.d/rc 4 l5:5:wait:/etc/init.d/rc 5 l6:6:wait:/etc/init.d/rc 6
上述代码是/etc/inittab文件的示例配置,其中id:3:initdefault:指定系统默认运行级别为3(多用户命令行模式),si::sysinit:/etc/init.d/rcS表示在sysinit阶段执行rcS脚本等。
总结
本文介绍了Linux系统的启动过程,包括硬件启动、引导加载器、内核启动、初始化进程等步骤。Linux系统的启动过程相比于Windows等闭源系统,更加透明和灵活,这也是Linux系统受到广泛关注和喜爱的原因之一。
本文来源:词雅网
本文地址:https://www.ciyawang.com/8j0sz4.html
本文使用「 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 」许可协议授权,转载或使用请署名并注明出处。
相关推荐
-
深入了解Cookie:从小饼干到网络跟踪器
据?答案是Cookie。 Cookie是一小段存在于计算机或移动设备上的文本文件,由网站存储在用户的硬盘上。当用户访问网站时,服务器会读取Cookie并使用其中存储的信息,以提供个性化的服务。Cook
-
数据恢复:如何找回丢失的数据
。 数据恢复的原理 数据恢复的原理基于一个简单的事实:当我们删除一个文件时,实际上并没有将文件从硬盘中完全删除,而是将其标记为可覆盖的状态。因此,在一段时间内,我们可以通过数据恢复软件找回这些文件
-
数据备份:保障你的重要数据
数据的丢失或损坏,可能会给我们带来很大的经济和时间上的损失。以下是一些常见的数据丢失原因: 硬盘故障 人为误操作 病毒攻击 自然灾害 因此,备份数据是非常有必要的,它可以帮助我
-
性能监控和系统优化
。因此,我们可以通过以下几种方式来优化磁盘 I/O。 使用 RAID 磁盘阵列。 使用高速硬盘或者固态硬盘。 关闭不必要的服务和进程。 使用缓存技术,如 memcached。 优
-
虚拟化技术:提高效率的未来
虚拟化技术通过软件层将物理服务器分割成多个虚拟机。每个虚拟机都有自己的虚拟硬件,包括CPU、内存、硬盘和网卡等。虚拟机之间是相互隔离的,操作系统和应用程序都可以在虚拟机上运行。虚拟化技术可以让企业更
-
什么是网络虚拟化?如何实现网络虚拟化?
见的虚拟化技术有以下几种: 1. 虚拟机技术 虚拟机技术是将一台物理机器上的资源(如CPU、内存、硬盘等)分割成多个虚拟机,在每个虚拟机中运行不同的操作系统和应用程序。 在虚拟机中,可以利用网络虚
-
如何进行缓存策略设计和缓存性能优化方法
系统的性能和响应速度。缓存通常可以加快数据访问速度,因为它们将数据存储在较快的介质中,例如内存或固态硬盘。 缓存可以用于各种场景,例如: Web 应用程序的页面缓存:将网页的 HTML、CS
-
如何进行缓存策略设计和缓存性能优化
的数据,以便在将来的请求中更快地访问该数据。这是因为当您首次请求数据时,它需要从较慢的存储介质(例如硬盘驱动器或网络)中读取。但是,一旦数据被缓存,下一次请求将从更快的存储介质(例如内存)中读取,因此
-
网络备份:你需要知道的一切
网络备份? 在数字化时代,数据已成为我们生活中不可或缺的一部分。但数据损失却是一个普遍存在的问题。硬盘故障、文件损坏、病毒攻击以及自然灾害都可能导致数据丢失。网络备份可以帮助我们保护数据,避免重要信
-
网络传输速率:如何快速提升网速?
不必要的网络服务,可以减少网络流量的占用,提高网络传输速率。 3. 清理系统垃圾 系统垃圾会占用硬盘空间,导致电脑运行缓慢,影响网络传输速率。因此,定期清理系统垃圾可以提高电脑的运行速度,进而提高