电脑启动选项有什么用 (电脑启动选项有什么用处)

首先按下开机键,电源电压稳定,电脑开始自检。自检测过程大致为:加电-CPU-ROM-BIOS-System Clock-DMA-64KB RAM-IRQ-显卡-VGA接口-键盘-硬盘-并行口(打印机)和串行口(RS232)。所以电脑自检首先自检cpu,到串行口(RS232)检查结束。

自检中如发现有错误,将按两种情况处理:对于严重故障(致命性故障)则停机,此时由于各种初始化操作还没完成,不能给出任何提示或信号;对于非严重故障则给出提示或声音报警信号,等待用户处理。电脑

当自检完成后,系统进行下一步骤:从硬盘、光盘或网络服务器上寻找操作系统进行启动,电脑的控制权将由操作系统完成。

此时交给了UEFI。

UEFI系统的启动流程遵循PI Spec。

UEFI系统从加电到关机可以分为七个阶段,这七个阶段分别为:

SEC(安全验证)->PEI(EFI前期初始化)->DXE(驱动执行环境)->BDS(启动设备选择)->TSL(操作系统加载前期)->RT(系统系统运行阶段)->AL(系统灾难恢复期或关机,这里不详解)

SEC阶段:

作为计算机上电后第一阶段,SEC会做一些与硬件相关的验证,并且将控制权交给PEI Foundation。(注:IA-32和Itanium会有差别)

SEC阶段主要功能:

–处理平台启动及重启信号

–创建临时存储区域

–作为可信系统的根

–传递参数给下一阶段(既PEI Foundation)

1、处理平台启动机重启信号:

系统上电信号处理,系统重启信号处理,系统异常信号处理。

2、创建临时存储区域:

SEC阶段需要初始化一些临时内存(这时各种外设及内存并没有被初始化),作为程序的运行载体,仅对CPU和CPU内部Cache作为临时RAM,区别于普通的内存,我们称它为CAR(Cache As RAM)。因为内存并没有初始化,需要将Cache配置成为no-eviction,当read/write miss时候并不会向内存发出miss事件,如果这时向内存发出miss事件会导致平台故障。

3、作为可信系统的根

任何安全设计中,后续模块获得控制的完整性,由调用者证实必须有根,既SEC阶段作为整个可信系统的根。

4、传递参数给下一阶段(既PEI Foundation)电脑

SEC阶段需要为PEI阶段做准备,最终SEC需要把控制权交给PEI。

需要准备如下信息给PEI Foundation:

–当前的系统状态,PEI可以根据这些状态判断系统的健康状况。(注:IA-32和Itanium会有差别)

–BFV(Boot Firmware Volume)的地址和大小

–临时RAM的地址和大小

–栈的地址和大小

–EFI_SEC_HOB_DATA_PPI这个HOB(Optional)

PEI阶段:

PEI阶段资源依然十分有限,PEI后期才会初始化内存,主要功能就是初始化一些硬件设备,并且给DXE准备执行环境,通过HOB传递给DXE Foundation,最终将控制权交给DXE Foundation。

–初始化内存

–准备memory相关的HOB

–准备FV相关的HOB

–控制权交给DXE Foundation

PEI阶段主要由PEI Foundation、PEIM Dispatcher来处理上述操作。

–PEI Foundation:负责初始化gPeiServices和流程执行

–PEI Dispatcher:找出系统中所有的PEIM,并根据PEIM之间的依赖关系按顺序执行PEIM,其中CPU/Memory初始化都是由特定的PEIM来完成的,其中DxeIpl来Load DxeCore。


PEI阶段流程

DXE阶段:

这一阶段,内存已经完全可以使用了,这个阶段进行大量的工作,主要是提供:

–DXE Foundation:负责初始化一系列服务如BootServices/RuntimeServices/DxeServices,和安装一些ConfigurationTable。

–DXE 电脑 Dispatcher:负责分发DXE Drivers,包括MM Drivers也是在这个阶段共同分发。

–DXE Drivers:负责初始化一些Protocol及安装Binding Driver为后续使用。

BDS阶段:

BDS阶段理论上也是DXE阶段的一部分,主要负责执行可启动策略,主要包括:

–初始化控制台设备

–为设备加载相关的驱动,由Binding Driver来决定怎么加载。

–为BIOS Setup做准备。

–根据系统设置加载和启动可启动选项(Linux grub开始加载)。

TSL阶段:

由BDS阶段LoadImage并StartImage的grub镜像。

这一阶段由grub执行,资源由UEFI kernel提供,当grub调用ExitBootServices后就进入系统Runtime阶段。

在Linux资料中,被俗称GRUB的就是Boot Loader,GRUB是GRand Unified Bootloader的缩写,MBR的前446字节存放的就是GRUB程序的一部分,它是一个多重操作系统启动管理器,用来引导不同系统,GRUB是目前Linux环境中最流行的启动管理器。

如果你的计算机上配置了双操作系统,使用者就是在GRUB中进行选择究竟启动哪个操作系统。

RT阶段:

这阶段控制权完全交给了OS,保留RuntimeServices交给OS使用,MM Mode脱离于OS独立运行。

此时Linux开始加载,首先读入 /boot 目录下的内核文件

内核文件加载以后,就开始运行第一个程序 /sbin/init,它的作用是初始化系统环境

init是Linux系统中的第一个运行的程序,所以他的进程编号(PID)为1恒不变

许多程序电脑需要开机启动,即Daemon。

init进程的一大任务,就是去运行这些开机启动的程序。但是,不同的场合需要启动不同的程序,比如用作服务器时,需要启动Apache,用作桌面就不需要。Linux允许为不同的场合,确定其所需要的RunLevel。Linux启动时根据"运行级别",确定要运行哪些程序

Linux预置七种运行级别(0-6):

–运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动

–运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆

–运行级别2:多用户状态(没有NFS)

–运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式

–运行级别4:系统未使用,保留

–运行级别5:X11控制台,登陆后进入图形GUI模式

–运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

Linux会根据存放在/etc的子目录下所存放的RunLevel,决定要加载的progress。

第四步:加载开机启动程序(system init)

系统从 /etc/rcN.d 目录里列出的程序链接至 /etc/init.d目录 (ps:没想到吧,这才是真正的启动目录)。init进程逐一加载开机启动程序。

第五步:用户登录

开机启动程序加载完毕以后,就要让用户登录了。

Linux登录大致分为以下三种:

1.最简单的root账号密码登陆

通过root+root密码登陆Linux服务器

2.普通用户登陆

通过普通用户登陆到服务器上,如果要使用sudo的权限就需要切换到root账号上去

3.公钥私钥免密码的方式登陆

可以分为2种

①把本地主机公约输入到被登陆的服务器上(这个是最常见,也是最保险的免密码登陆方式,不过如果是多台服务器的话,就需要添加本地主机的公钥到多台的被登陆的服务器上去)

②把被登陆的服务器的私钥提供给本地主机(这种方式可以应用在管理多台服务器上,如果所有远程服务器都设置成同一个公钥,用一个私钥就可以登陆所有的服务器上了)

经过密码验证,我们进入了桌面环境,Linux就此启动完成。

怎么样,你学废了吗?


电脑 电脑