IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 趣谈 Linux,系统初始化 -> 正文阅读

[系统运维]趣谈 Linux,系统初始化

从 8086 到 x86 的实模式和保护模式

![image.png](https://img-blog.csdnimg.cn/img_convert/68aebfbaf8829a92c930aa009d2ba682.png#align=left&display=inline&height=444&margin=[object Object]&name=image.png&originHeight=592&originWidth=926&size=131502&status=done&style=shadow&width=695)
8086 数据总线:16 位,地址总线 20 位

8 个 16 位的通用寄存器:AX、BX、CX、DX、SP、BP、SI、DI
其中 AX 可以分成两个 8 位的来用,分别是 AH 和 AL(High 高位、Low 地位)

IP 寄存器,指令指针寄存器(Instruction Pointor Register),指向代码段中下一条指令的位置
CPU 会根据 IP 不断地将指令从内存的代码段中加载到 CPU 的指令队列中,然后交给运算单元执行

每个进程都分代码段和数据段,相关的寄存器是 CS、DS、SS、ES
CS 是代码段寄存器(Code Segment Register),存放代码在内存中的位置
DS 是数据段寄存器(Data Segment Register),存放数据在内存中的位置
SS 是栈寄存器(StackRegister),这里所说的栈是具有 FILO 的特性的

CPU 运算中需要加载内存中的数据,通过 DS 找到内存中的数据,加载到寄存器中
对于一个段,有一个起始地址,段内位置称为偏移量(Offset)
在 CS 和 DS 中存放段的起始地址
代码段的偏移量在 IP 寄存器中,数据段的偏移量在通用寄存器中

**Q:**8086 的寄存器都是 16 位的,但是地址总线是 20 位,怎么凑够这 20 位呢?
**A:**起始地址 * 16 + 偏移量
也就是把 CS 和 DS 中的段起始地址左移 4 位,变成 20 位
然后加上 16 位的偏移量,这样得到 20 位的数据地址
这样就可以寻址 2^20=1M
**Q:**如果想要访问超过 20 位的地址,比如 1M+X
**A:**总线上最多发 20 位,所以超过 20 位的部分发不出去
Q:一段有多大?
A:偏移量只能是 16 位的,所以一个段最大是 2^16=64k。

![image.png](https://img-blog.csdnimg.cn/img_convert/efcef3d473a36f2f5e2978f6bf5fd146.png#align=left&display=inline&height=164&margin=[object Object]&name=image.png&originHeight=164&originWidth=398&size=23615&status=done&style=stroke&width=398)

到了 32 位处理器,为了保持兼容:
通用寄存器 && IP寄存器都扩展成 32 位的
![image.png](https://img-blog.csdnimg.cn/img_convert/d4188613cf3c3b2059307cf766e968db.png#align=left&display=inline&height=155&margin=[object Object]&name=image.png&originHeight=207&originWidth=560&size=41614&status=done&style=stroke&width=420)
![image.png](https://img-blog.csdnimg.cn/img_convert/95e4e1ff76e1de893985448ec66707b5.png#align=left&display=inline&height=53&margin=[object Object]&name=image.png&originHeight=53&originWidth=520&size=5688&status=done&style=stroke&width=520)
段寄存器(CS、DS、SS、ES)变化较大,他们还是 16 位的,但是里面存的内容改变了
8086 存的是段起始地址
32 位系统下不再是段的起始地址,段的起始地址存在内存的某个地方
这个地方是一个表格,表格中的一项是段描述符(Segment Descriptor)
段描述符中才是真正的段起始地址,段寄存器保存表格中的哪一项,称为选择子
![image.png](https://img-blog.csdnimg.cn/img_convert/1a709ae9f3d4269f19b34f2a0575b776.png#align=left&display=inline&height=161&margin=[object Object]&name=image.png&originHeight=161&originWidth=937&size=47239&status=done&style=none&width=937)
这种情况下,为了快速拿到段的起始地址,段寄存器会从内存中拿到段描述符到 CPU 的高速缓冲器

前一种模式称为实模式(Real Pattern),后一种模式称为保护模式(Protected Pattern)

x86 架构有两种模式:实模式、保护模式

  • 实模式只能寻址 1M,每个段最多 64K
  • 保护模式能够寻址 4G

系统刚启动的时候,CPU 处于实模式,这时和原来的模式是兼容的,当需要更多内存时,遵循一定的规则,执行一系列操作,然后切换到保护模式,这样就可以用到 CPU 更强大的能力。

![image.png](https://img-blog.csdnimg.cn/img_convert/31c5803b5ee444bf5a97b7b8213ef5d1.png#align=left&display=inline&height=382&margin=[object Object]&name=image.png&originHeight=382&originWidth=915&size=92602&status=done&style=none&width=915)

开机启动!

ROM(Read Only Memory,只读存储器),上面固化了一些初始化程序,也就是 BIOS(Basic Input and Output System,基本输入输出系统)。

1、按下启动按钮,主板上电。
2、

展开阅读全文
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-02 11:10:24  更:2021-08-02 11:11:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:43:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码