- 主题:假设往 DOS 机器里面安装了 1MB 内存
意思是 UMA 里面其实都是些 BIOS ROM 代码,正常是不能写入的是吧?
【 在 HighCloud 的大作中提到: 】
: 跳线。想在机箱里加一块板卡,首先要知道已经插进去多板卡们都占了哪些io端口、中断号、dma通道,然后设置板卡跳线避开。古早计算机是isa总线,你看一下总线定义,中断和dma多信号有好几组,因为这是硬线,实实在在的线路,不能冲突。后来intel和ms搞了个pnp即插即用,因为is
: a的硬伤,要到pci时代才实用化。pci只有一组请求线,通过软件动态分配资源给板卡。
: 内存映射是硬件已经决定的,从a00000开始固定映射到总线上。板卡的地址线译码决定占用哪段内存。其实用内存映射的板卡很少,大部分还是用dma
: ...................
--
FROM 110.84.122.*
进程访问的时候触发缺页中断,然后把 TCP 的数据读过来,写到物理页再返回不就行了。
【 在 tom6bj 的大作中提到: 】
: ...现代操作系统的基本特征之一就是虚拟地址, 两个进程里的同一个地址实际上是物理内存上的不同地址, 硬件提供了映射机制, 不然岂不是要乱套?
: 像这种硬件与操作系统通信机制有没有啥书籍可以看的?
: 我最近觉得内存映射才是唯一正确的 API. 不止硬件与操作系统交互时应该使用内存映射,包括操作系统内核与用户程序的交互也应该使用内存映射。比如统一使用 mmap() 映射文件到内存,把 tcp 连接映射到无尽的内存地址段、信号量变成监测某个内存地址的内容等等
: ...................
--
FROM 27.154.110.*
我的意思是显卡有这么多显存,就没法映射到 640KB-1MB 这个 UMA 里面了。
【 在 tom6bj 的大作中提到: 】
: 640*480但是只有16色, 用4bit, 分别映射到4个页面上, 总共需要256k内存
: (实际上用到640*480/2=150k)
: 所以VGA显卡至少需要256k的显存, 我用的第一个显卡是Avance Logic ALS2064, 512K, 之后用SiS6202是1M.
: ...................
--
FROM 27.154.110.*
这种古董级的文章真是稀缺。不错。。
可惜我还是没看懂 VGA 是怎么样显示的。
但是现在清楚了,VGA 的显存确实也是映射到 UMA 里面去的。
【 在 tom6bj 的大作中提到: 】
: (前面换成csdn的域名)cosmoslife/article/details/9179093
: 可以按这篇文章实际操作一下试试嘛
--
FROM 27.154.110.*
是的。最早的 EMS 是用硬件实现的。
EMS 和 XMS 最大的区别就能能够使用 UMB/UMA 内存。
EMM386 的原理是 386 的 vm86 模式。应用这个原理,不止可以映射 UMB 内存,还可以映射到常规内存。有人用这个原理搞多任务 DOS,我主贴有谈到这个。
【 在 mephistoxp 的大作中提到: 】
: 一些英文资料说,286电脑的BIOS固件可以把640KB基本内存之上的物理内存模拟成扩展卡上的内存,供应用程序以EMS方式使用。
: 到了386时代,QEMM和微软官方的EMM386软件,就可以把640KB基本内存之上的物理内存模拟成UMB和EMS内存供程序使用了……
: 总结来说,EMS内存不像XMS内存,其构成除了物理内存1MB之上的EMB,还有640KB~1024KB的一部分~
: ...................
--
FROM 47.243.39.*
嗯,这听起来就很容易冲突啊。
不过 DOS 时代反正大家也没钱买啥扩展卡。一般就一块声卡吧。
【 在 dormouseBHU 的大作中提到: 】
: DOS时代还没有PCI,那时用的是ISA总线。板卡的地址和中断号是通过硬件跳线来更改的。
--
FROM 47.243.39.*
这样啊。。没想到 DOS 的世界这么丰富!
听起来就很好玩。
【 在 BigCarrot 的大作中提到: 】
: 你错了
: dos时代的卡比现在多多了
: 那时主板上连基本的io控制器都没有
: ...................
--
FROM 120.37.21.*
VESA 是不是只能在实模式下就不能用了?
【 在 longsword 的大作中提到: 】
: VGA的图形显示,是让显卡的内存和主板的内存一一对应实现的,简单地说,就是写内存地址,同时会写到显卡地址。
: 最初的低分辨的显示,对应内存地址从0xB800开始,共16KB
: 后来的高分辨的显示,对应内存地址从0xA000开始,好像是6&4KB(不确认)
: ...................
--
FROM 223.104.53.*
UMA 居然有多余的内存地址空间给 VESA 折腾?
如果还有空闲的 128KB, 为啥当年 VGA 不直接用掉?
最早定义的 63+1KB ROM BASIC 空间倒是可以拿出来用掉。
【 在 longsword 的大作中提到: 】
: VESA 实模式下 可以用
: 记得内存用a0000-bffff(不确认),这是128k,1对8,支持1M显存,1024*768*256是足够的
--
FROM 27.152.110.*