linux操作系统的引导过程,深入了解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指令打开一个新的终端程序
[root@localhost ~]# cat /etc/inittab
# inittab This file describes how the INIT processshould set up
# the system in a certainrun-level.
# Author: Miquel van Smoorenburg,
# 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服务是否被启用
linux操作系统的引导过程,深入了解linux操作系统引导过程详解相关推荐
- linux mv复制命令,linux中删除复制移动文件rm,mv,cp命令详解linux操作系统 -电脑资料...
在linux中对文件的复制删除移动分别会使用到rm,mv,cp三个命令,下面我来给大家介绍一下rm,mv,cp命令对文件的常规操作吧, 先看实例 删除复制移动文件命令 Linux代码 rm -rf / ...
- linux系统下安装pip3,linux下安装python3和对应的pip环境教程详解
linux下安装python3和对应的pip环境教程详解 1.下载python3.6的安装包: 2.解压后,进入到解压目录下,执行如下命令,将python3.6进行编译,如下是将python的环境编译 ...
- linux复制文件scp命令,Linux 中的文件复制cp命令和scp命令详解
Linux 中的文件复制cp命令和scp命令详解 在使用操作系统的使用过程中,常常需要复制文件到本地或者传输文件到其他电脑上,这时候用到两个命令cp和scp. cp命令用来复制文件或者目录.scp是s ...
- Linux 高可用(HA)集群之Pacemaker详解
大纲 说明:本来我不想写这篇博文的,因为前几篇博文都有介绍pacemaker,但是我觉得还是得写一下,试想应该会有博友需要,特别是pacemaker 1.1.8(CentOS 6.4)以后,pacem ...
- linux中用zip压缩文件,详解Linux中zip压缩和unzip解压缩命令及使用详解
下面给大家介绍下Linux中zip压缩和unzip解压缩命令详解 1.把/home目录下面的mydata目录压缩为mydata.zip zip -r mydata.zip mydata #压缩myda ...
- linux命令wget的url路径太长,Linux中WGET下载https链接及WGET命令的详解
Linux中WGET下载https链接及WGET命令的详解 使用如下的命令下载https链接: ```bash wget -r -np -nd --accept=gz --no-check-certi ...
- linux下grep文件内容搜索工具及基本正则表达式详解
linux下grep文件内容搜索工具及基本正则表达式详解 grep命令: 根据模式(文本字符和基本正则表达式的元字符组合而成之匹配条件)搜索文本, 并将符合模式的文本行显示出来. 格式:grep [选 ...
- linux中etc下的hosts(本地IP解析)文件详解
linux中etc下的hosts(本地IP解析)文件详解 1./etc/hosts(本地解析) 很多人一提到更改hostname首先就想到修改/etc/hosts文件, 认为hostname的配置文件 ...
- 【Linux】shell脚本实战-if多分支条件语句详解
文章目录 前言 多分支语句的语法 多分支语句举例: 1. 出嫁的条件 2. 管理http服务实战脚本 3. 猜数字游戏v1版本-if版本 总结 前言 前面我们已经学习过单分支语句和双分支语句的使用. ...
- Linux下zip格式文件的解压缩与压缩操作命令详解
< Linux下zip格式文件的解压缩与压缩操作命令详解 > * 声明:网上找来比较凌乱,整理了一下,方便自己查看 zip格式文件的解压缩与压缩操作: 1.把/home目录下面的huaza ...
最新文章
- 我的笔记本电脑有一个自带的摄像头 可是开机后在我的电脑里没有这个图标
- android点滴13:Eclipse连接不上模拟器(一片空白,无报错)
- JPQL中使用LIKE进行模糊查询
- python3菜鸟教程-Python3 元组
- HDOJ 1143 Tri Tiling
- python 常用算法学习(1)
- PDFlib免费下载地址及详细介绍手册
- Opencv——图像膨胀
- via浏览器简洁主页html源码 支持搜索提示
- php调用airtestide,raw device
- ANDROID调用webservice带soapheader验证
- Flink WatermarkKeyed
- linux系统mysql创建表,Linux系统下手动新建数据库
- VUE 响应式原理源码:带你一步精通 VUE | 原力计划
- css3新属性partA
- android学习-仿Wifi模块实现
- 手机端与pc端页面html5,浅谈pc和移动端的响应式的使用
- Go语言 基础教程 实战
- BT601、BT656和BT.709、BT1120
- ctf攻防渗透-加密-栅栏密码