操作系统的启动过程大致可以分为以下几步:
BIOS,Basic Input/Output System,基本输入输出系统。
早期的 BIOS 存储在内存的 ROM 中,不会断电消失;现在大多存储在内存的闪存(Flash Memory)中。
BIOS 程序执行过程有以下几步:
按下电源开关后,电源就开始给主板和其他设备供电,CPU 会把所有寄存器的值都设为默认值,即恢复初始状态。随后 CPU 会执行初始位置的指令,跳转到 BIOS 启动代码位置,开始启动 BIOS。
BIOS 首先进行 POST(Power On Self Test,硬件自检),检查计算机硬件是否满足运行的基本条件,并完成相应的初始化工作。如果发现了问题,主板会发出不同的蜂鸣声表示不同的问题。
BIOS 按照启动顺序开始搜索可引导的存储设备,找到后,会将存储设备中的引导扇区读入物理内存,并执行引导扇区中的程序,开始系统引导。
BIOS 是按照顺序依次搜索可引导的存储设备的,这个顺序就叫启动顺序(Boot Sequence),可以在 BIOS 中进行查看和修改。
至此,BIOS 的工作就完成了。BIOS 所实现的功能可以简单地概括为以下几点:
接下来以最常见的硬盘启动为例进行说明。
读取并执行硬盘的第一个扇区,即 MBR(Master Boot Record,主引导记录,大小为 512 字节)。其作用为告诉计算机到硬盘的哪一个位置去找操作系统。MBR 的结构如下:
搜索 MBR 中的分区表,找到唯一的活动分区(Active Partition),并将活动分区的第一个扇区中的引导扇区(称为“卷引导记录”,Volume Boot Record,VBR)读入内存,就能找到操作系统在这个分区中的位置。然后,计算机就会开始加载操作系统了。
分区表的长度只有 64 个字节,里面又分成四项,每项 16 个字节。所以,一个硬盘最多只能分四个主分区,但是可以将一个主分区作为扩展分区(扩展分区最多只有一个),并扩展成多个逻辑分区。一个主分区可以安装一个操作系统,像常见的 Windows 系统,C盘、D盘就是对应的一个个分区,而操作系统默认就是安装在 C 盘的。
由于一台计算机中可以安装多个操作系统,所以启动系统时也会有不同的情况。当有多个操作系统时,会运行启动管理器(Boot Loader),让用户选择启动操作系统;当只有一个操作系统时,就会直接从激活分区中启动操作系统(当然也可以选择将控制权交给启动管理器,boot loader 可以存在 MBR 中,也可以存在主分区的引导扇区中)。
操作系统启动后,控制权就从 boot loader 转交给了操作系统,之后,操作系统的内核首先被载入缓存,随后会运行初始化进程进行操作系统的初始化。
至此,整个计算机的启动过程就完成了。
我尝试使用Python中的Altair模块创建一个交互式timeseries图表,其中包含20多行数据。在创建我正在查看的形状的数据帧的代码如下:import numpy as npimport altair as altyear = np.arange(1995, 2020)day = np.arange(1, 91)def gen_next_number(previous, limit, ma...
-->随着一些相关资料对as3.0的介绍,有人可能认为它是另一种语言。它的根本改变在哪呢,它是什么呢?现在我们要放松一点。如果你熟知as2.0,那么它的变化并不是很大,甚至增加了一些命令你可以使用。 从我们第一眼看as3.0,它并不是一个全新的语言,它的架构要好于AS2.0,你将从FLASH8开始发现这些。任何东西都有自已的类和整洁的子类。类的继承关系看起来很复杂,但是它却是很容易
大数据顾名思义就是数量极其庞大的数据资料。大数据的意义在于提供‘大见解’:从不同来源收集信息,然后分析信息,以揭示用其他方法发现不了的趋势。早期,IBM定义了大数据的5v特性:大量性( Volume), 多样性(Variety), 快速性(Velocity)价值(Value)真实(Veracity)。
python3.8 + win10 安装 python-Levenshtein 失败安装失败安装方法直接下载 .whl 文件,直接安装安装失败C:\Users\86189\Downloads>pip install python_LevenshteinLooking in indexes: http://mirrors.aliyun.com/pypi/simple/Collecting python_Levenshtein Downloading http://mirrors.aliyun
目录AbstractIntroductionRelated WorkNeural Radiance Field Scene RepresentationVolume Rendering with Radiance FieldsOptimizing a Neural Radiance FieldPositional encodingHierachical volume samplingImplementation detailsResultsDatasetsComparisonsDiscussionAblat
[[email protected] ~]# ll总用量 286436-rw-r--r-- 1 root root 0 11月 22 13:54 a-rw-r--r-- 1 root root 0 11月 22 13:54 ab-rw-r--r-- 1 root root 0 11月 22 13:54 abc...
Zabbix监控脚本返回值是字符串时,也可以使用字符串函数来创建触发器。举个栗子,现在有个需求要监控从服务器上下载数据是否出现异常,当数据下载失败时返回异常并告警。那么就可以在监控脚本中设置当下载成功时返回值为”download complete”,下载失败时返回值为异常信息。 创建监控项时设置返回值为字符型。创建触发器 选择当存在匹配值时,则返回1否则返回0设置匹配值V为download co
MatlabR2014a凸优化工具箱CVX安装计算机小白记录学习过程,望能够坚持下去.老师布置的任务:实现压缩感知加密. 发现代码的实现需要CVX工具箱,于是在此记录安装过程.下载CVX安装包前往CVX官网下载页面:http://cvxr.com/cvx/beta/,可以看到如下界面.我的电脑是Win7系统,matlab是64位的R2014a,所以下载了cvx-w64-zip.下载后解...
ListView和BaseAdapter
今天要重启一台Liunx机器,对于Liunx小白来说当然不知道啦,打电话问同事得到结果,直接执行命令:reboot搞定。
简介String.intern() 方法可以使得所有含相同内容的字符串都共享同一个内存对象,减少内存中相同字符串的数量,节省一些内存空间。注意:字符串常量池中的 String 对象,也是可以被 GC 回收的,只要它不再被引用了。intern原理分析 注:本文基于JDK8分析 ,如有错误,欢迎指出,非常感谢。1. new String() String str1 = new Stri...
公司项目用vue写需要兼容IE浏览器,我最近做的两个项目在IE11中都是一片空白,一个是用webpack初始化的,另一个使用vue脚手架初始化的。1、用webpack初始化的这个项目在IE打开一片空白,且中报错如下图:一般情况下IE浏览器打开页面空白是js没有加载成功,报错 script1003,根据报错信息定位到是封装的一个组件直接引用了element依赖的ji,而在打包的时候报node_modules的element的js是忽略的,默认下载的是转了ES5后的。方法1:可以在webpack配置中.