-
POST开机自检:电脑主机打开电源的时候,随后会听到滴的一声,系统启动开始了开机自检(POST-power on self
-
test)自检开始),这个过程中主要是检测计算机硬件设备比如:CPU,内存,主板,显卡,CMOS等设备是否有故障存
-
在,如果有硬件故障的话将按两种情况理:对于严重故障(致命性故障)则停机,此时由于各种初始化操作还没完成,
-
不能给出任何提示或信号;对于非严重故障则给出提示或声音报警信号,等待用户处理),如果没有故障,POST完整自己
-
的接力任务,将尾部工作交接给BIOS处理。
-
BIOS:计算机加电自检完成后第一个读取的地方就是就是BIOS(Basic Input Output System,基础输入输出系统)
-
,BIOS里面记录了主机板的芯片集与相关设置,如CPU与接口设备的通信频率、启动设备的搜索顺序、硬盘的大小与
-
类型、系统时间、外部总线、各种接口设备的I/O地址、已经与CPU通信的IRQ中断信息,所以,启动如果要顺利启动,
-
首先要读取BIOS设置。
-
按照BIOS所设定的系统启动流程,如果检测通过,则根据引导次序(Boot Sequence)开始在第一台设备上支持启动
-
程序,我们的启动设备主要包括硬盘、USB、SD等,我们一般用的是硬盘,然后进行读取第一个设备就是硬盘,第一个
-
要读去的就是该硬盘的主引导记录MBR(Master Boot Record),然后系统可以根据启动区安装的
-
引导加载程序(Boot Loader)开始执行核心识别的工作。【在此插一句:MBR程序只是找到只是硬盘分区内最前面
-
的446个字节的Boot Loader】然后查找相关配置和定义。
-
Boot Loader 加载Grub程序
-
在这个过程中主要靠Grub的引导开始的,Grub分为连个阶段:
-
stage1:主要是Boot loader
-
stage 1.5:过渡
-
stage2:主要是/boot/grub
-
根据Grub内的定义,grub读取完毕后就把下面的工作交个内核了。kernel主要是完成系统硬件探测及硬件驱动的初始
-
化,并且以读写的方式挂载根文件系统(根切换),那么这里就出现了一个“先有鸡还是先有蛋的文件了”,具体是什么
-
那?
-
要想访问真正的根文件系统(rootfs)的话,就必须加载根文件系统中的设备,这时根文件系统又没有挂载,
-
要挂载根文件系统又得加载根文件系统中的驱动程序,哪怎么办呢?为了解决这个问题,这是就用到了initrd文件了。
-
在来说下kernel初始化所要工作的内容做下简单总结:
-
探测硬件->加载驱动(initrd)->挂载根文件系统->rootfs(/sbin/init)
-
到此止内核空间的相关工作已经完成,内核空间的任务开始向用户空间转移,内核空间通过一个间接的initrd(微型
-
linux)向用户空间的/sbin/init过度,所以gurb开始引导内核转向initrd。
-
initrd:一个虚拟的文件系统,里面有lib、bin、sbin、usr、proc、sys、var、dev、boot等一些目录,
-
其实你会发现里面的目录有点像真的/对吧,所以我们称之为虚拟的根文件系统,作用就是将kernel和真的根文件系统
-
建立关联关系,让kernel去initrd中加载根文件系统所需要的驱动程序,并以读写的方式挂载根文件系统,并让执行
-
用户当中第一个进程init。
-
挂载 :将initrd中的/proc, /sys /dev 挂载到当前的主分区中的相应目录
-
创建目录:/dev/mapper
-
通过mknod完成block or character special files的创建
-
相关模块的挂载
-
创建root设备
-
挂载 /sysroot
-
最后完成根切换
-
0:halt //关机
-
1: single user mode //单用户维护模式)
-
2:multi user mode, without NFS //不支持NFS功能
-
3: multi user mode, text mode //字符界面
-
4:reserved //系统保留
-
5: multi user mode, graphic mode //图形化界面
-
6: reboot //重启
-
[选项]:[runlevel]:[行为]:[命令]
-
行为:
-
initdefault:代表默认运行级别
-
sysinit:代表系统初始化操作选项
-
ctrlaltdel:代表重启的相关设置
-
wait:代表上一个命令执行结束后方可执行下面的操作
-
respawn:代表后面字段可以无限制再生(reboot)
-
命令选项
-
一些命令,不过通常都是脚本
-
如上图所示:rc.sysinit脚本内定义了一些与系统初始化的定义
-
设定主机名
-
检测并挂载/etc/fstab中其他文件系统
-
启动swap分区
-
/etc/sysctl.conf设定内核参数
-
装载键映射-->键盘上每个键的功能
-
然后根据系统运行级别运行相关的服务脚本:/etc/rc.d/init.d/脚本和/etc/rc.d/rc#d
-
rc0-rc6目录下脚本:
-
K* ##只要是以K开头的文件均执行stop工作
-
S* ##只要是以S开头的文件均执行start工作
-
0-99 (执行次序,数字越小越先被执行)
-
用户自定义开机启动程序(/etc/rc.d/rc.local)
-
可以根据自己的需求将一些执行命令或是脚本写到/etc/rc.d/rc.local里,当开机时,就可以加载啦
-
硬件的初始化,图像界面启动的初始化(如果设置了默认启动基本)
-
主机RAID的设置初始化,device mapper 及相关的初始化,
-
检测根文件系统,以只读方式挂载
-
激活udev和selinux
-
设置内核参数 /etc/sysctl.conf
-
设置系统时钟
-
启用交换分区,设置主机名
-
加载键盘映射
-
激活RAID和LVM逻辑卷
-
挂载额外的文件系统 /etc/fstab
-
最后根据mingetty程序调用login让用户登录->用户登录(完成系统启动)
-
在系统启动过程中主要的脚本和目录有:
-
boot
-
/grub
-
/boot/grub/grub.conf
-
/boot/initrd+内核版本
-
/initrd文件中的/proc/ /sys/ /dev/ 目录的挂载 及根的切换
-
/etc/inittab 脚本
-
/etc/rc.d/rc.sysinit 脚本 等
相关推荐
Linux操作系统基础教程主要针对Linux初学者,旨在提供全面且实用的操作系统知识。这份教程共分为三个部分,包括Linux系统概述、系统管理和编程基础。以下是详细的知识点解析: **第一部分:Linux系统概述** 这部分...
ZooKeeper Linux 集群搭建流程可以分为四步:下载和解压 ZooKeeper、创建目录和 myid 文件、修改 ZooKeeper 启动配置文件、启动 ZooKeeper 节点。通过这些步骤,可以成功搭建 ZooKeeper Linux 集群,满足分布式系统...
5. 系统启动过程: - BIOS是基本输入输出系统,负责硬件初始化。 - GRUB是引导加载器,选择并加载操作系统内核。 - kernel是操作系统的核心,负责驱动硬件设备。 - init是系统启动后的第一个进程,管理其他系统...
在Linux系统中,首次启动会要求用户登录。登录过程包括输入用户名和密码,成功后会显示命令提示符,如"$"。通过命令行,用户可以执行各种操作,如`cal`命令查看日历,`passwd`命令更改密码。在Linux中,密码安全至关...
总之,`libaio`是Linux DB2安装过程中不可或缺的部分,确保其正确安装和配置对于DB2的稳定性和性能至关重要。在遇到类似问题时,按照上述步骤进行操作,一般能够解决因缺少`libaio`导致的安装问题。
Linux操作系统中,Vim编辑器是一款功能强大的文本编辑工具,它是vi编辑器的升级版本,拥有更多高级功能和插件支持。Vim在Linux系统中的地位相当重要,它是许多Linux发行版默认的文本编辑器。尽管Emacs被一些人认为是...
3. 文件系统内部存取文件的过程:通过文件名存取文件时,Linux系统首先会在目录中查找对应的I节点(Inode),然后通过I节点来定位并存取文件数据。因此,选项C是正确的。 4. Linux中不以文件形式出现的:在Linux中...
在使用 Virtual PC 2007 虚拟机软件安装 Linux 操作系统(如 Red Hat 9.0)时,可能会遇到屏幕显示异常(通常称为“花屏”)的问题。这主要是因为默认配置下,虚拟机中的 Linux 显示设置与虚拟环境不兼容导致的。...
本课件详细介绍了Linux的基础知识和安装过程,对于学习和理解Linux操作系统原理及应用具有重要价值。 在硬盘分区技术方面,Linux区分IDE和SCSI设备,例如IDE设备的分区表示为/dev/hdx,SCSI设备为/dev/sdx。Linux...
这篇文档是关于福建师范大学《Linux操作系统管理》课程的在线作业,包含了多个Linux操作系统管理相关的知识点。下面是这些知识点的详细说明: 1. **Samba服务器启动方式**:Samba服务器进程可以独立启动或由父进程...
在LINUX学习的过程中,理解操作系统的基本概念、文件系统、网络配置以及常用工具的使用是至关重要的。以下是一些关键知识点的详细说明: 1. **LINUX版本命名**:LINUX的版本命名通常遵循xx.yy.zz的格式,其中xx为主...
4. **关闭Linux系统**:`halt` 命令用于关闭系统但不重新启动,正确答案是 `B: halt`。 5. **i节点和文件的关系**:i节点是一个64字节的表,包含文件的相关信息,如文件大小、数据块位置等,每个文件对应一个i节点...
安装Linux系统时,通常有四种方式:字符界面安装、图形界面安装(需要足够的内存)、救援模式和从本地设备启动。在安装过程中,必须规划好磁盘分区。Linux系统需要一个根分区(`/`)和一个交换分区(Swap)。Swap分区...
Boot Loader是启动流程的关键部分,负责初始化系统资源,如SDRAM,并加载内核到内存。内核初始化时,start_kernel函数执行,初始化其他内核组件,创建"init"进程,开启多任务环境。设备驱动程序是内核与硬件之间的...
Linux启动流程包括BIOS自检、MBR中的引导装载程序启动内核、内核运行后加载驱动和服务,最终达到用户登录界面。 6. **桌面环境**: 常见的Linux桌面环境有GNOME和KDE,它们提供了图形化的用户交互界面。 7. **...
Linux 是一款免费且开源的操作系统,自1991年首次发布以来,它迅速成为全球最流行的操作系统之一,尤其在服务器领域占据主导地位。Linux 的核心优势在于其高度的安全性、稳定性和对资源的有效利用。 ##### Linux...
#### 一、Linux系统简介及安装 Linux 是一款免费且开源的操作系统,它起源于 Unix。本节我们将详细介绍 Linux 的起源、发展历程以及如何安装。 ##### 1.1 Unix的起源与发展 - **1969年**:Unix 系统的第一个版本...
Linux是一类免费使用和自由传播的类Unix计算机操作系统的统称,其内核由林纳斯·托瓦兹于1991年首次发布。Linux操作系统具有开放性、多用户、多任务等特点,在服务器领域有着广泛的应用。 #### 2.2 远程管理系统的...
通过正确配置和管理Uboot环境变量,可以灵活地定制系统启动行为,优化启动流程,同时确保内核能够获取到正确的初始化参数,从而顺利启动并运行。在不同的存储介质上操作Uboot环境变量的方法各异,这要求开发者具备对...