建立在cpu 基础之上的内核-聊聊cpu

软件都是建立在硬件的基础之上,这个硬件在我们这里就是cpu、内存、硬盘、键盘、屏幕等等,而至关重要的则是cpu——这个核心中的核心。

x86系列CPU

目前在我们学习linux内核的过程中,所使用到的cpu都是比较早期的cpu, Intel 8086、80386这些。

80386是x86系列的cpu

x86是指一系列基于intel
8086且向后兼容的中央处理器指令集架构,最早的8086处理器于1978年推出,是16位处理器,后续的处理器命名都是以80x86命名,其中就包括80386。

80386的特点是其内存地址访问长度从16位扩展到32位,从而能够寻址最大4GB地址空间。

作为一个硬件,80386具有三种工作模式:

工作模式应用场景特点
真实模式DOS系统. 直接内存访问空间限制在1M字节,只有分段,代码和数据放在不同区域,操作系统和用户程序没有区分开,指针都指向实际物理地址
保护模式Linux系统.访问4G字节内存,具备异常处理机制。支持分页机制,支持虚拟内存,支持多任务优先级,区分开操作系统跟用户程序
虚拟模式虚拟86模式. 可同时模拟多个8086处理器进行并发处理

冯诺依曼结构

要说cpu的结构,首先要说的则是冯·诺依曼结构
在这里插入图片描述
冯诺依曼存储程序计算机在体系结构上主要特点有:

  • 以运算单元为中心
  • 采用存储程序原理
  • 存储器是按地址访问、线性编址的空间
  • 控制流由指令流产生
  • 指令由操作码和地址码组成
  • 数据以二进制编码

cpu基本结构

cpu 由运算器、控制器、寄存器等器件组成,这些器件依靠内部总线相连接,依靠外部总线与其他组件联系。

其基本结构如下:

在这里插入图片描述

80386寄存器组

其中以80386为代表,其寄存器组如下:
在这里插入图片描述
操作系统代码的编写需要遵循CPU的使用手册,CPU有什么能力,操作系统代码才能够在这个能力基础之上进行开发功能、组合功能,从而层层嵌套,向上扩展功能。

80386的寄存器具体如下,在后续的章节中,我们则会使用到这些寄存器,来为操作系统打下基础,实现分段、分页、中断等基础功能,在这些基础功能之上,才能够继续开发,实现内存管理,任务调度,文件系统以及用户程序上层应用。

从这个发展的角度来讲,我们会发现,这真是一件神奇的事情。

寄存器详细结构

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

CF(Carry Flag):进位标志位; PF(Parity Flag):奇偶标志位; AF(Assistant
Flag):辅助进位标志位; ZF(Zero Flag):零标志位; SF(Singal Flag):符号标志位; IF(Interrupt
Flag):中断允许标志位,由CLI,STI两条指令来控制;设置IF位使CPU可识别外部(可屏蔽)中断请求,复位IF位则禁止中断,IF位对不可屏蔽外部中断和故障中断的识别没有任何作用;
DF(Direction Flag):向量标志位,由CLD,STD两条指令来控制; OF(Overflow Flag):溢出标志位;
IOPL(I/O Privilege
Level):I/O特权级字段,它的宽度为2位,它指定了I/O指令的特权级。如果当前的特权级别在数值上小于或等于IOPL,那么I/O指令可执行。否则,将发生一个保护性故障中断;
NT(Nested
Task):控制中断返回指令IRET,它宽度为1位。若NT=0,则用堆栈中保存的值恢复EFLAGS,CS和EIP从而实现中断返回;若NT=1,则通过任务切换实现中断返回。在ucore中,设置NT为0。

在这里插入图片描述
在这里插入图片描述

参考材料

https://objectkuan.gitbooks.io/ucore-docs/content/lab0/lab0_2_5_3_intel_80386_registers.html

https://blog.csdn.net/judyge/article/details/52343719

80386程序员参考手册

https://wizardforcel.gitbooks.io/intel-80386-ref-manual/content/12.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值