几个名称解释:
1.IO接口:硬件与CPU之间是通过适配器进行通信的,这些适配器就是IO接口。比如:显示器与CPU之间是通过显卡进行通信的。
2.CPU访问外设的方式有两个:
- 将某个外设的内存映射到内存中一定范围的地址空间中,CPU通过地址总线访问该内存区域时会落到外设的内存中,这种映射让CPU访问外设的内c存就如同访问主板上的物理内存一样。比如显卡,在显卡上有块存储区域,叫做显存,它被映射到主机物理内存上的低端的1MB的空间。CPU访问这片内存就是访问显存,往这片内存上写字节便是往屏幕上打印内容。
- 通过IO接口与CPU进行通信。CPU访问外设,就是访问IO接口,也就是访问IO接口上的寄存器,这些寄存器通常被称为端口。
3.物理地址:是物理内存的真正地址,相当于内存中每个内存单元的门牌号,具有唯一性。CPU最终访问的内存地址就是物理地址。
4.线性地址VS虚拟地址:在保护模式下,"段基址+段内偏移地址"有两种称呼,一种是在地址分页机制未开启时称为线性地址;另一种是在地址分页机制开启时称为虚拟地址。
5.逻辑地址VS有效地址:在任何模式下,段内偏移地址都被称为有效地址,也称为逻辑地址。这个地址是程序员可见的。
6.段选择子:由操作系统生成的GDT(全局描述表)中,每一项都是一个段描述符,记录了段的起始地址、段的大小和段的属性。其中TYPE字段和S字段组合在一起可以表示段的一些属性,比如只读等。这个段选择子其实是一个索引,根据这个索引到GDT中找到相应的段描述符,从而得到段的起始地址。