深入了解linux操作系统引导过程详解

Linux操作系统的引导过程:开机自检、mbr引导、grub菜单、加载linux内核、init进程初始化。

1.开机自检,检测硬件后根据启动顺序将控制权交给本机硬盘

2.mbr引导,根据硬盘的主引导记录,将控制权转交给引导分区或者启动菜单

3.grub菜单,启动菜单提供给用户选择进入不同的操作系统(例如windows)的界面。默认进入linux将系统控制权转交给内核。

4.加载linux内核,内核负责分配调度硬件资源与系统程序,内核接过系统控制权,开始管理整个Linux系统。

5.init进程初始化,内核首先将/sbin/init此进程对应的PID号总是为1。程序加载到内存中运行。init进程负责完成系统初始化过程:

(1).读取配置文件/etc/inittab

(2).根据配置文件判断启动级别,后执行/etc/rc.d/rc.sysinit

(3).通过脚本文件/etc/rc.d/rc N控制不同启动级别启动哪些程序和服务

(4).最后系统会运行/sbin/mingetty指令打开一个新的终端程序

[[email protected] ~]# cat /etc/inittab

# inittab       This file describes how the INIT processshould set up

#               the system in a certainrun-level.

# Author:       Miquel van Smoorenburg,<[email protected]>

#               Modified for RHS Linux by Marc Ewingand Donnie Barnes

# 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:5:initdefault: -----------------初始化系统后进入的默认运行级别

# Systeminitialization.

si::sysinit:/etc/rc.d/rc.sysinit--------------- 系统初始化的操作脚本(启动级别为空就是全部级别)

l0:0:wait:/etc/rc.d/rc0 --------------- init进程等待该内容的所有脚本执行完毕后再继续其他

l1:1:wait:/etc/rc.d/rc1

l2:2:wait:/etc/rc.d/rc2

l3:3:wait:/etc/rc.d/rc3

l4:4:wait:/etc/rc.d/rc4

l5:5:wait:/etc/rc.d/rc5 --------------- 内容为该启动级别所需执行的各个服务的启动脚本

l6:6:wait:/etc/rc.d/rc6

# TrapCTRL-ALT-DELETE

ca::ctrlaltdel:/sbin/shutdown -t3 -r now

# When our UPS tellsus power has failed, assume we have a few minutes

# of power left.  Schedule a shutdown for 2 minutes from now.

# This does, ofcourse, assume you have powerd installed and your

# UPS connected andworking correctly.

pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System ShuttingDown"

# If power wasrestored before the shutdown kicked in, cancel it.

pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; ShutdownCancelled"

# Run gettys instandard runlevels

1:2345:respawn:/sbin/mingettytty1 --------------- 以重生的形式反复开启一个终端

2:2345:respawn:/sbin/mingettytty2

3:2345:respawn:/sbin/mingettytty3

4:2345:respawn:/sbin/mingettytty4

5:2345:respawn:/sbin/mingettytty5

6:2345:respawn:/sbin/mingettytty6

# Run xdm in runlevel5

x:5:respawn:/etc/X11/prefdm–nodaemon

------------------------------------------------------------------------------------------------------------

以上为/etc/inittab 文件中的内容其中#开头的为注释信息。其余内容每一行记录中的四个字段分别代表:

x   :     5     :  respawn :  /etc/X11/prefdm –nodaemon

id :  runlevels  : action    : process

|              |                          |                          |

标记  运行级别   动作类型    程序脚本

#init q ------------- 如文件改动可以重新读取inittab配置

#cat /etc/rc.d/rc.sysinit ------------ 系统初始化脚本,完成包括设置网络、主机名、加载文件系统、设置时钟、检测文件系统等一系列初始化工作

#vim /etc/rc.d/rc.local ------------ 在级别为2、3、4、5的启动脚本执行后会执行该脚本,可以手动在其中添加一些命令,做为系统启动后执行的自定义命令。例如:

#echo ‘/sbin/hwclock --hctosys’  >> /etc/rc.d/rc.local -------- 根据真实机的bios时间,更新自己的系统时间

系统服务控制:

各个服务的控制脚本的存放路径为/etc/rc.d/init.d/目录中

可以通过两种方法对服务程序进行控制

方法1:#service 服务名称 控制类型

方法2:/etc/init.d/服务名称 控制类型

控制类型分为:stop(启动)|stop(停止)|restart(重启)|reload(重载)|status(查看状态)

例如:#/etc/init.d/sshd start ----------- 开启远程ssh协议

以上两种方法无法再下次启动系统后生效。其中reload(重载)可以在服务不停止的情况下对服务的配置进行更新。

切换运行级别:

#runlevel -------------- 查看上一次的运行级别以及当前的运行级别

#init 3 -------------- 切换运行级别为字符型界面其中级别6为重启级别0为关机

优化开机自动加载过程:

字符界面可以通过两种方法进行优化

方法1:#ntsysv  --------------- 在字符界面下开启一个图形话交互界面,来选择当前运行级别可以设置的启动服务。如果要对其他运行级别进行调整可以加选项和参数。例如:

#ntsysv –level 35 ------------ 设置启动级别为3和5的启动服务带星号的为启动不带星号的为不启动通过空格键来选择是否启用。

方法2:#chkconfig –list  ------------用来查看服务在各个启动级别的启动情况

#chkconfig –list sshd ------- 用来查看sshd服务在不同的启动级别的启动情况

#chkconfig –level 345 sshd on/off ---------用来控制345启动级别中sshd服务是否被启用

时间: 2024-11-10 01:32:48

深入了解linux操作系统引导过程详解的相关文章

关于Linux操作系统的开机过程详解

由 于操作系统正在变得越来越复杂,所以开机引导和关机下电的过程也越来越智能化.从简单的DOS系统转移到 Windows NT系统,人们已经亲身感受到了这些变化--这已不仅仅是核心操作系统的启动引导和关闭了,还包括必须要同时启动或者关闭相当数量的服务项目.类似于 Windows NT,Linux系统启动过程需要打开的服务项目也是数量极大的. 这里,我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Li

Linux系统开机过程详解

从按下电源键开始,到登录成功,计算机都做了哪些事儿呢?且听我细细道来. 其过程可以总结如下: 一 BIOS 当按下计算机电源键时,计算机便会读取主板的BIOS(Basic Input/Output System)中存储的程序, BIOS允许你从软盘.光盘或者硬盘中选择一个来"存储设备"启动计算机. 二 MBR 当你选择"存储设备"后,计算机便读取其起始的512 bytes数据,即主引导记录MBR (master boot record), MBR会告诉计算机从该设备

Linux进程创建过程详解

本文首先使用了接口pthread_create创建一个线程,并用strace命令追踪了接口pthread_create创建线程的步骤以及涉及到的系统调用,然后讨论了Linux中线程与进程关系,最后概述了为了实现POSIX线程,Linux内核所做的修改. 一.使用pthread_create创建线程 在Linux下可以使用pthread_create来创建线程,该接口声明如下: #include <pthread.h> int pthread_create(phtread_t *thread,

Linux操作系统-route命令详解

1.名字route 用来显示/操纵(manipulate)IP路由表 2.语法route [-CFvnee] route [-v] [-A family] add [-net|-host] target [netmask Nm] [gw Gw] [metric N] [mss M] [window W] [irtt I] [reject] [mod] [dyn] [reinstate] [[dev] If] route [-v] [-A family] del [-net|-host] targ

linux命令执行过程详解

1.执行命令输入命令后回车提请shell程序找到键入命令所对应的可执行程序或者代码,并且由其分期后,提交给内核分配资源将其运行起来.在shell中可执行的命令有俩类:内部命令:由shell自带的内部集成命令help 可以查看内部命令列表 [[email protected] ~]# help GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu) These shell commands are defined internal

Linux操作系统的引导过程及初始化的必要操作详解

系统引导是操作系统运行的开始,在用户能够正常登录到系统之前,Linux操作系统的引导过程将完成一系列的初始化任务,并加载必要的程序和命令终端,为用户登录做好准备. 一.引导过程预览 如图: 1.开机自检 服务器主机开机之后,将根据主板BIOS中的设置对CPU.内存.显卡.键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交本机硬盘: 2.MBR引导 当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR(主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的

Linux系统启动过程详解

 Linux系统启动过程详解 启动第一步--加载BIOS当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息.设备启动顺序信息.硬盘信息.内存信息.时钟信息.PnP特性等等.在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了. 启动第二步--读取MBR众所周知,硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,别看地方不大,

Linux(RHEL6)启动过程详解

Linux(红帽RHEL6)启动过程详解: RHEL的一个重要和强大的方面是它是开源的,并且系统的启动过程是用户可配置的.用户可以自由的配置启动过程的许多方面,包括可以指定启动时运行的程序.同样的,系统关机时所要终止的进程也是可以进行组织和配置的,即使这个过程的自定义很少被需要. 理解系统的启动和关机过程是如何实现的不仅可以允许自定义,而且也可以更容易的处理与系统的启动或者关机相关的故障.  1.启动过程  以下是启动过程的几个基本阶段:   ① 系统加载并允许boot loader.此过程的细

linux开启过程详解

解操作系统开机引导和启动过程对于配置操作系统和解决相关启动问题是至关重要的.该文章陈述了 GRUB2 引导装载程序开机引导装载内核的过程和 systemd 初始化系统执行开机启动操作系统的过程. ??事实上,操作系统的启动分为两个阶段:引导boot和启动startup.引导阶段开始于打开电源开关,结束于内核初始化完成和 systemd 进程成功运行.启动阶段接管了剩余工作,直到操作系统进入可操作状态. ??总体来说,Linux 的开机引导和启动过程是相当容易理解,下文将分节对于不同步骤进行详细说