intel cpu 和 软件栈

intel cpu

intel x86 cpu 兼容性

x86 的cpu 都是向后兼容的.
为 某个 intel cpu 写的 软件和 OS 能跑在之后发布的 intel cpu上
所以你的x86_64 cpu 也能跑 dos 和 windows 1.0

intel cpu 模式及对应cpu

8086802868038680486、Pentium、Core i3、Core i5等。
    
实模式时代典型CPU   : 8086
保护模式时代典型CPU : 80386,又叫i386
长模式时代典型CPU   : 

intel cpu的各个 时代

这些时代及模式都是后来取的,当时并没有这些概念.
长模式也叫AMD64模式,也叫x86_64保护模式
模式种类 实模式 实模式 和 x86保护模式 实模式 和 x86保护模式 和 长模式
架构名称 8086 80386(i386)/i686/x86 x86_64
寻址空间 20根地址线,可扩展到1M 4G 2^64B
安全(访存) 段寄存器+通用寄存器 段描述符索引 和 GDTR 和 段描述符
安全(特权级) 没有此概念 ring0/1/2/3 同保护模式
安全(寄存器) 能访问所有的指令和寄存器 ring0也不能访问所有的指令和寄存器 同保护模式
安全(中断) 没有权限问题,直接发生 由中断描述符表确认权限,确定是否发生
特点 直接操作,没有权限概念 用段描述符增加权限概念 弱化段模式管理,保留权限概念
启动流程 直接上电实模式 上电实模式->保护模式 上电实模式->保护模式->长模式
软件栈 实模式:BIOS+DOS 1.实模式:BIOS+GRUB+Linux 2.保护模式:GRUB+Linux 1.实模式:BIOS+GRUB+Linux 2.保护模式:GRUB+Linux 3.长模式:Linux
BOOT流程1 BIOS,然后加载DOS,DOS运行在实模式 BIOS加载硬盘中的第一个扇区数据,到0x7c00地址开始的内存空间,然后跳转到0x7c00处执行指令,一般是grub 同保护模式时代
BOOT流程2 - GRUB在启动命令行前进入保护模式,但在转交控制权给kernel前会进入实模式 同保护模式时代
BOOT流程3 - linux会完成从实模式到保护模式,用户运行时都是保护模式 linux会完成从实模式到32位保护模式,再到64位保护模式的转换,用户运行时都是64保护模式

x86_64保护模式时代下的软件栈

BIOS

cpu上电从 物理地址0xffff0 启动,0xffff0区域内是BIOS代码
BIOS代码进行硬件的诊断,检测和初始化,建立软件例程(后期供其他软件调用)
BIOS代码从辅助存储设备(仅支持硬盘,光盘,U盘)001扇区读取512字节(一般叫MBR)数据到 物理地址0x7c00,然后跳转到物理地址0x7c00执行

BIOS全程运行在 实模式.如果陷入 BIOS,则也会进入实模式

BIOS的替代品是 UEFI
    
BIOS的 软件例程(TODO)
实模式下1M空间的memory map(TODO)

在这里插入图片描述

grub

这里描述的是grub,不是grub2
grub的第一行代码运行在实模式.在stage2开始的活动中,要设置好C环境,进入x86保护模式,并在该模式下获取命令,执行命令
grub在调用内核时转换为实模式.

GRUB的替代品是 grub2 和 UEFI

linux

linux会完成从实模式到32位保护模式,再到64位保护模式的转换,用户运行时都是64保护模式

其他

x86 8086实模式 向 32位保护模式转换

1. 设置 GDT表
2. 保持 CS描述符高速缓存器中的D位 为 1 // 决定了处理器当前的操作尺寸为32
3. 设置CR0 bit 01 开关 // 进入保护模式,由于 D位为1 ,则为 32位保护模式
4. ???

8086 cpu

Intel 8086 CPU于1978年产生。
这是一款16位的微处理器,由Intel公司设计和推出。
8086 CPU是x86系列处理器的起源,它采用了16位的内部数据总线和外部数据总线,并且具有20位的物理地址总线。
8086 CPU在当时具有较高的计算能力和灵活性,并且成为了后来PC(个人计算机)的基石。

值得注意的是,8086 CPU的设计和推广工作始于1976年,但是实际的产品发布和交付是在1978年。
这种微处理器在1980年代初迅速普及开来,并成为第一个IBM PC的处理器,从而推动了个人计算机的普及化。

MCS-51 单片机 和 x86 的关系

MCS-51 和 x86架构无关
但是MCS-51 的内核 8051 属于 8051架构.
8051,8051架构,x86架构都是intel的产品,且他们属于CISC架构
Intel于1980年推出了Intel 8051单片机,它是一种8位的微控制器,被广泛应用于各种嵌入式系统中。8051单片机由于其低成本、低功耗和多功能性,成为了嵌入式系统中最常用的单片机之一。

Intel的设计者们在开发8051时,采用了许多创新的设计理念和技术。
由于Intel的推广和市场份额,8051单片机获得了广泛的认可和应用。
该系列芯片逐渐演进成了805280C51、87C51等多个版本和变种。

此外,Intel还授权了许多其他公司生产8051单片机,并提供了相应的开发工具,使得8051成为了全球范围内最为流行的单片机之一。
虽然现在有许多其他的单片机架构和型号可供选择,但8051仍然被广泛使用于各种应用领域,包括家电、工业自动化、通信等。
8051系列单片机中的指令集由Intel推出,并且在后来得到了各种扩展和变种的发展。在其中,MCS-51 单片机声名远扬.

可以认为 8081单片机器 里面有个 cpu , 该cpu也叫8051 ???
----------------------------------------

Intel 8051并不是基于8086处理器设计的。它是一种独立的8位微控制器,由Intel公司独立开发。8051使用的是Harvard架构,拥有自己独立的指令集和架构。

虽然80518086都是由Intel设计的处理器,但它们的设计和目标应用领域不同。8086是一款16位的通用微处理器,主要面向桌面和服务器级的计算机系统。而8051则是一款专用于嵌入式系统的8位微控制器,被广泛应用于各种嵌入式设备中,如家电、工业自动化、通信等。

关于CISC(Complex Instruction Set Computer)的分类,80518086都可以被归类为CISC架构。CISC架构的处理器特点是具有丰富的指令集,它们的指令可以执行复杂的操作,并且支持多种寻址模式。这与RISC(Reduced Instruction Set Computer)架构的处理器相比,后者设计更为精简,指令集更加简洁。

但是他们都属于CISC , 你能在 8051 身上看到 8086的影子.
----------------------------------------------

在 MCS-51 系列里,所有产品都是 以 8051为核心电路发展起来的,他们都就具有80561的基本结构和特征.
MCS-51单片机属于8051系列单片机,其指令集架构是CISC(Complex Instruction Set Computing)复杂指令集计算机。
所有的 51 系列单片机 都是基于 8051 cpu的 SOC
-----------------------------

mcs-51 没有 RISC 典型的 load store 指令
mcs-51 是个soc , 基于 8051 cpu , 8051 又有8086 的影子. 但又有不同.
	S1. 8051 通用寄存器 A 和 B , 8086 有 AX BX CX DX
	S2. 80518086都有状态寄存器,名叫 PSW,都有堆栈指针,叫SP
	
	D1. 8051没有分段机制,但是8086有分段机制
	D2. 8051基于哈佛架构,8086基于冯诺依曼结构
	
8051 cpu , 8086 cpu 都是 CISC 架构.
我们一般不说 soc 是什么架构的,如果soc基于 一个cpu,该cpu是cisc的,那么该soc 就是 cisc架构的.
//即 你可以说 MCS-51 是 CISC架构的,具体属于8051架构
//8051架构,8086架构,80386架构,x86架构,x86_64架构 : 这些概念同级

bios 服务历程是什么

是 bios 提供的 中断服务程序
// 在实模式下
如何进入 : 通过 int 0x16 ; // 0x16 是键盘服务,从键盘读取一个按键.返回时,字符代码在寄存器AL中.
通过 int 0x10 打印一个字符 ;// 通过寄存器AL 传递 要打印的字符.

// 在保护模式下
1. OS 设置中断门描述符 , 该中断门描述符可以索引到 BIOS提供的中断服务历程
2. 通过int 0x16 来 从按键读取一个按键.
// 不过一般 OS启动之后,就不再兼容 "BIOS 服务历程了",即不会设置索引到BIOS中断服务历程的中断门描述符,而是由OS直接和硬件交互.

linux 启动过程中用到了bios历程吗?

会用到 // 什么时候用到了?
但是正常运行时就无法使用BIOS服务历程了

猜你喜欢

转载自blog.csdn.net/u011011827/article/details/132335599
今日推荐