看板Programming
标 题Re: [问题] dos为何要有记忆体配置的中断指令?
发信站KKCITY (Thu Apr 12 18:49:04 2007)
转信站ptt!ctu-reader!ctu-gate!news.nctu!news.ntu!news.au!zoonews.ee.ntu!news
※ 引述《[email protected] (鬼扯英吉GTB)》之铭言:
> ※ 引述《[email protected] (try or test)》之铭言:
> : DOS 7.0 跟 win95 已经是同一种版本了, 从 win3.1 之後开了多个视窗
> : 同时跑(至少是交错地跑), 要算那一种系统 ?
> PCDOS 7.0 基本上是 MSDOS 6.0 base 的东西, 跟 MSDOS 7.0
> 两码子事, 而且 Win31 下可以协调式多工跟 DOS kernel 是
> 没有关系的.
win9x 的 DOS 也还是纯 DOS, 只是有 fat32, 并且留後门让 win32 共存
protected mode 是 HIMEM.SYS 提供的 VCPI, 所以旧的程式可以当它是老 DOS
没有 HIMEM.SYS 它就呆在 real mode
後门 1:
win9x filesystem 是用 DOS 的 filesystem 避免 win32 跟 dos 程式档案存取冲突
还可以用 DOS driver
後门 2:
VM86 中所有的 DOS INT xx 都会被 win32 重导到 DOS,
DOS 的 system 区跟 user 区是特地分开让 win32 可以在不同 DOSVM 各自有各自的 data,
但是又不用每个 VM 重跑 DOS 开机流程, 像 fork()
在 linux dosemu 则是开一个完整的 VM, BIOS 对映到 syscall 让 freedos 开机
NT,2000,XP 没有 DOS, 单纯从 int21 对应到 win32 api, 所以相容差
> : DOS 过了 286 protection Mode 的时代进入 VM386, 只要是用了 MMU 功
> : 能且使用1MB 以上高位址记忆体执行程式, 就进入 win32 .
> : 使用了 protection mode 执行程式(不是只拿 1MB 之後当 ram disk 用,
> : 再用 pseudo reset 切回 real mode 跑程式), 不想用多工都不行, 那个
> : VM386 mode 是硬体多工.
> 实际上, 只有 VM86, 没有 VM386 这个模式存在.
DOS 有 malloc 最重要的就是让 application 知道那些 RAM 可以用
不同系统设定下, DOS 自己占的 memory 也不一样, application
如果没有 malloc 怎知那一块 RAM 不能碰, 就算没有别只程式也一样
EXE 档还有 overlay(swap) 更是需要记忆体管理
OS 最重要的就是 hardware abstraction, unix 就是为了 game porting 而生
UI, multitask 不过是 hardware abstraction 的表达方式
所以像 vista 这种 application 不相容的东西只能当 screensaver
--
┌─────◆KKCITY◆─────┐▇─┐KKADSL→六星级优质连线服务
│ bbs.kkcity.com.tw │┴ └─▇ 马上申请带你上网环游全世界!
└──《From:59.120.53.7
》──┘ KKADSL ┴ http://adsl.kkcity.com.tw
--