1. 加载BIOS
2. 读取MBR
3. Boot Loader
4. 加载内核
5. init根据inittab文件来设定运行级别
6. init进程执行rc.sysinit
7. 启动内核模块
8. 执行不同运行级别的脚本程序
9. 执行/etc/rc.d/rc.local
10. 执行/bin/login程序进行登录
1. 加载BIOS
按下开机电源,计算机会首先加载BIOS并在执行开机自检,之后BIOS将控制权交给磁盘第一个扇区。
2. 读取MBR
磁盘上第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,里面存放了预启动信息和分区表信息。
系统找到BIOS指定的MBR后,会将其加载到内存中,由BIOS从第一扇区加载的代码称为第一阶段启动加载程序。
3. Boot Loader
Boot Loader就是在操作系统内核运行之前运行的一段小程序,通常是GRUB。
Ubuntu 12中GRUB的配置文件为/boot/grub/grub.cfg。
Fedora 17中GRUB的配置文件为/boot/grub2/grub.cfg。
系统读取内存中的GRUB配置信息,并依照此配置信息来启动操作系统。
4. 加载内核
根据GRUB设定的内核映像路径,系统读取内存映像,并进行解压缩操作。
Ubuntu 12内核:/boot/vmlinuz-3.2.0-29-generic-pae
Ubuntu 12内核映像:/boot/initrd.img-3.2.0-29-generic-pae
Fedora 17内核:/boot/vmlinuz-3.3.4-5.fc17.i686.PAE
Fedora 17内核映像:/boot/initramfs-3.3.4-5.fc17.i686.PAE.img
系统将解压后的内核加载到内存中,然后调用start_kernel()函数来启动一系列的初始化函数并初始化各种设备,完成Linux核心环境的建立。
在start_kernel()的结尾,内核通过调用kernel_thread()函数创建出第一个系统内核进程(即1号进程,init进程),该进程执行的是内核的init()函数,负责下一阶段的启动任务。
5. init根据inittab文件来设定运行级别
内核被加载后,第一个运行的程序便是/sbin/init,该文件会读取/etc/inittab文件,并依据此文件来进行初始化工作。
/etc/inittab文件最主要的作用就是设定Linux的运行级别,其设定形式是“:id:5:initdefault:”。
Linux的运行级别设定如下:
0:关机
1:单用户模式
2:无网络支持的多用户模式
3:有网络支持的多用户模式
4:保留,未使用
5:有网络支持有X-Window支持的多用户模式
6:重新引导系统,即重启
6. init进程执行rc.sysinit
设定了运行级别后,Linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序。
线程init的最终完成状态是能够使得一般的用户程序可以正常地被执行,从而真正完成可供应用程序运行的系统环境。
7. 启动内核模块
依据/etc/modules.conf文件或/etc/modules.d目录下的文件来装载内核模块。
Ubuntu下该文件为/etc/modules。
8. 执行不同运行级别的脚本程序
根据运行级别的不同,系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。
Ubuntu下脚本路径:/etc/rcN.d。
9. 执行/etc/rc.d/rc.local
rc.local就是在一切初始化工作完成后,Linux留给用户进行个性化设置的地方。你可以把你想设置和启动的东西放到这里。
10. 执行/bin/login程序进行登录
进入登录界面,等待用户输入用户名和密码。
分享到:
相关推荐
Linux开机启动过程是一个复杂但有序的序列,涉及多个步骤,从硬件初始化到操作系统核心的加载,再到用户界面的呈现。让我们逐步深入理解这个过程。 首先,计算机接通电源后,主板上的基本输入输出系统(BIOS)开始...
Linux 开机启动详细过程 在这篇文章中,我们将深入探讨 Linux 开机启动...Linux 开机启动过程是一个复杂的过程,涉及到多个步骤和模块的协作。只有通过深入了解这个过程,才能更好地理解 Linux 内核的工作原理和机制。
- [Linux开机启动服务设置](http://www.cnblogs.com/gzggyy/archive/2012/08/07/2626574.html) - [Linux系统启动过程详解](http://linux.chinaunix.net/techdoc/install/2006/03/10/928782.shtml) - [Linux开机启动...
### Linux内核启动过程分析 #### 一、引言 随着技术的发展,Linux作为一个免费开源的Unix类操作系统,因其强大的功能、高效的性能以及良好的可移植性,在嵌入式系统乃至高性能服务器领域获得了广泛应用。理解Linux...
Linux开机启动过程可以大致分为以下几个阶段: 1. **BIOS自检(POST)**:计算机开机后首先执行的是BIOS(Basic Input/Output System)程序,进行电源加电自检(POST)。这一阶段主要检查硬件设备是否正常工作。 2....
在深入解析Linux开机启动过程中,特别是关于`bootsect.S`文件的关键作用时,我们需要理解计算机系统如何从硬件层面逐步过渡到操作系统层面。本文将重点介绍Linux内核启动过程中的关键步骤之一:`bootsect.S`文件的...
LINUX系统启动过程分析 LINUX系统启动过程是一个复杂的过程,涉及到多个步骤和组件。下面将对LINUX系统启动过程进行详细的分析。 BIOS自检 在PC中,LINUX系统启动从BIOS中的地址0xFFFF0处开始。BIOS的第一个步骤...
【Linux开机启动程序rc.local详解】 在Linux操作系统中,开机启动程序是一个至关重要的部分,它决定了系统启动时自动运行哪些服务和脚本。rc.local是一个传统的方法,用于配置系统启动时执行的命令,尤其在CentOS7...
这份“linux开机启动资料”应该包含了一系列关于这一主题的文档、教程或者脚本,旨在帮助学习者深入理解Linux启动过程的细节。下面,我们将详细探讨Linux开机启动的相关知识点。 首先,Linux的启动流程可以分为几个...
总的来说,Linux开机启动服务的设置涵盖了从理解启动流程到编写和管理服务脚本的多个层面。熟练掌握这些技能对于日常的系统管理和运维工作至关重要。通过学习和实践,你可以更有效地控制和优化Linux环境中的服务运行...
剖析Linux系统启动过程 今日,我们将深入剖析 Linux 系统启动过程,从用户打开电源到屏幕出现命令行提示符的整个过程。 1. BIOS 开机自检 当用户打开 PC 的电源,BIOS 开机自检,按 BIOS 中设置的启动设备...
Linux启动过程是一个复杂而有序的序列,涉及到多个组件和阶段,从硬件初始化到操作系统核心的加载,再到用户空间服务的启动。以下是对Linux启动过程的详细解析,主要以Redhat 6.0 Linux 2.2.19 for Alpha/AXP为例,...
在Linux系统上,为了实现Google Chrome浏览器的开机自启并以全屏模式运行,你需要遵循以下步骤。首先,确保你的系统已经安装了Python环境,因为后续的自动化脚本将会使用到Python。下面是安装Python 3.6.5的详细过程...
### Linux内核启动过程 #### 一、引言 Linux作为一个免费开源的Unix类操作系统,在全球范围内得到了广泛应用,从嵌入式系统到超级服务器均有其身影。Linux内核以其紧凑的结构、强大的功能、高效的性能以及优秀的可...
首先,我们需要理解“Linux一键按照顺序启动、停止、重启多个jar”的概念。这通常涉及到编写一个bash shell脚本,该脚本可以依次执行Java命令来运行、停止或重启多个.jar文件。例如,`gollum.sh`可能是这样一个脚本...
Linux 启动过程详解 Linux 系统的启动流程是一个复杂而有序的过程,涉及多个步骤,从硬件初始化到操作系统核心的加载,再到用户空间服务的启动。以下是对这个过程的详细解析: 1. BIOS 初始化: - BIOS(基本输入...