...现代操作系统的基本特征之一就是虚拟地址, 两个进程里的同一个地址实际上是物理内存上的不同地址, 硬件提供了映射机制, 不然岂不是要乱套?
【 在 hgoldfish 的大作中提到: 】
像这种硬件与操作系统通信机制有没有啥书籍可以看的?
我最近觉得内存映射才是唯一正确的 API. 不止硬件与操作系统交互时应该使用内存映射,包括操作系统内核与用户程序的交互也应该使用内存映射。比如统一使用 mmap() 映射文件到内存,把 tcp 连接映射到无尽的内存地址段、信号量变成监测某个内存地址的内容等等
【 在 HighCloud 的大作中提到: 】
: cpu通过总线和外设交换数据,低速是io端口方式,高速是dma和内存映射。内存映射最快最直接,但是如你所说,地址有限,只能用dma模式。硬盘和网卡也是dma。1M内的高段内存一开始主要是给外设的bios用的,那32k是显卡bios的位置,不是交换数据用的。同样,网卡也需要bios,ide
: 才痰腷ios包含在系统bios之中,但scsi的bios是需要从高段内存里加载的。
--
FROM 222.129.6.*