看板Programming
标 题Re: [问题] dos为何要有记忆体配置的中断指令?
发信站中央大学松涛风情资讯站 (Tue Apr 17 09:36:46 2007)
转信站ptt!ctu-reader!ctu-gate!news.nctu!news.ncu!news.csie.ncu!Evergreen
> ==>发信人: [email protected] ( ), 信区: programming
> > R86(8086) 程式是在 Virtual-86 支援下执行的, 这时可以有好几个 DOS prompt
> > 出现且可同时执行 8086 程式也可透过 INT 呼叫 原来 DOS 的 system call 或
> > 其他 8086 程式(如 TSR), 但这时的 DOS OS 已完全被 Win9X 代替, 这时候多个
> 并没有代替, 只要是 win9x 都是用类似 fork() 的方式复制 DOS 分身
是否全代替, 需区分要使用的 R86(8086)程式是否绑定 DOS. 这可以用
mem 这个程式看出让出来的 640KB 空间及 DOS 位址. DOS 可以被代替
的是 Win32 的 file System 及 支援程式.
在 Win3.x 或 win9x 下调出 DOS prompt , 通常就是要执行 R86(8086)
模式的程式, 而 R86 程式是透过 8086 的 int trap 调用 R86 形式的 DOS
或 TSR , 但此时因已不再使用 Real Mode, 系统是在 VM386 及 V86 模拟下
, 8086 形式的中断指令因此会被 386 硬体拦下, 再由後续程式依 int 或
system call 代码, 对应事先设定的支援模组是 Win32 还是 16bit 的形式,
决定是否切换.
如果设定支援的是 Win32 File System 就不是调用 8086 形式的 DOS
而是调用 Win32 的 Win 来支援, 若是调用 8086 TSR 程式, 则是由 VM386
下换回在 16bit 的 V86 模式下执行 TSR.
doskey 是 TSR , 在开机的 real mode 下, 开机 dos 安装的其他来源
的 driver 也是 TSR . 这是假设这些 R86 程式就是 V86 DOS prompt 要使
用的环境, 因此会复制一份这个 Virtual Machine 过来. fork 只复制 parent
process 成为 child process , 至於是否复制 INT table 及随 table 而来的
TSR I/O Driver , process 的定义应该没有那麽大的涵盖范围. V86 明确的是
Virtual Machine 8086 , DOS prompt 是其 virtual console , 她有其自备的
I/O (虽然是 Virtual I/O, 但也可以使之对应至 特定 16bit real mode I/O
执行).
Win 透过 DOS 开机, DOS 也有 mem 这个程式协助显示可用的 8086 程式
空间, 其主要目的是配置 8086 TSR 之用.
--
◎ Origin: 中央松涛站□bbs.csie.ncu.edu.tw From: 140.115.6.234