看板Programming
标 题Re: [问题] dos为何要有记忆体配置的中断指令?
发信站中央大学松涛风情资讯站 (Fri Apr 13 16:25:26 2007)
转信站ptt!ctu-reader!ctu-gate!news.nctu!news.ncu!news.csie.ncu!Evergreen
> ==>发信人: [email protected] ( ), 信区: programming
> ※ 引述《[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
====
Win3.1 执行视窗模式的程式时, 这个系统的表现是多重程式与多工的.
此时, DOS 与 Win3.1 是并存的, DOS 主要是用来支援 File System
及某类 Real-mode I/O driver 的使用. 此时, 摆在 1MB 之後的程式
是在 protection mode 下执行, 而 80286/386 CPU 却是有硬体支援的
Task Switch 需要程式与之配合, 在 protection mode 下就因硬体对
记忆体的隔离保护与多工切换, process 的概念就具体了.
Win9X 的 DOS 还不如将之称为是类似 "终级 OS" 使用的 Boot Loader,
只是在 Win 3.X 的系统下, 并不是用过即抛弃的片段, 是可以并存於不
同模式下切换着使用, 但多工的管理并不来自於 DOS, 但需由 DOS 来协
助取得与载入, 在载入程式於保护模式下的记忆体(就是扩充模式记忆体
)时, 这个载入动作需特定的, 位於可供沟通的两用区的 xxx.sys 协助
(高人们称之为後门). 但 DOS 这边还是得知道全部记忆体(虽然 Real
Mode 的 DOS 无法碰触)的使用记载, 在 Win3X 上来後, 原来的 DOS 及
其记忆体, Real-Mode I/O driver 整个比较像个独立的 8086 Machine,
此时, 这堆 8086 程式被执行时, 真像是个 "process" .
Win9X 之後, 这些 Real-Mode 的 8086 程式就大量移往 Virtual Mode
里执行, 此时的 DOS 就再也不是那麽必要, 因此 DOS 寄身的 8086
Machine 就跟着 VM386 的技术虚拟化变为可化身多部的 VM86 执行 DOS
prompt .
现在让 MS 睡不着觉的就是比 VM86 更进一步的 X86本身(如 VM386)
的全虚拟化, 竟然不是由她主导. 但虚拟就是 "相容" 的关键, 而相容既
不是守旧也不是食古不化, 而是"连续性不留空隙(不被竞争者趁虚而入)"
的前进.
原始的 DOS 不必管理 PROCESS , 几乎也不管记忆体配置, 但这个
DOS 随年代与硬体技术变迁增加一些必要的功能如记忆体的分配记载, 可
以支承下一代的多工 OS 或其他 AP (如 Win) 的利用记忆体.
> > 实际上, 只有 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
======
偏软体的喜欢 Hardware Abstraction 这个说法, 熟硬体与架构的可能会说
软体是迁就硬体使与之配合, 补充其不足, 并使之让使用者觉得方便好用.
"相容" 的奥妙在舍弃少数(非主流)但又不让他们觉得被忽略, 对新加
的功能明明还没人用, 却又让大家觉得这是多数(主流)者都想要的, 但对真
正现存的多数现有的, 是绝不会忽略以犯众怒. 从单工的 DOS 到现今的视
窗网路多工, 优胜的关键就是 "不给空隙的过渡" .
--
◎ Origin: 中央松涛站□bbs.csie.ncu.edu.tw From: 140.115.6.234
1F:嘘 dolphinus:Win31用protect_mode耶-.- 210.241.239.20 04/13 16:53
2F:推 leicheong:挑点小bug:real/protected/V86是CPU状态 202.134.126.84 04/13 16:56
3F:→ leicheong:不可能针对每程式设定. 202.134.126.84 04/13 16:57
4F:→ leicheong:还有286时protected mode并不能切换回 202.134.126.84 04/13 16:58
5F:→ leicheong:real mode的. 202.134.126.84 04/13 16:59
6F:→ leicheong:还有当Win95载入时, DOS的很大一部份 202.134.126.84 04/13 17:34
7F:→ leicheong:interrupt都会被相应的VxD取代, 因此说 202.134.126.84 04/13 17:35
8F:→ leicheong:Win9X的command prompt (即使是跑 202.134.126.84 04/13 17:36
9F:→ leicheong:command.com)不能说是DOS的说法. 202.134.126.84 04/13 17:37
10F:→ leicheong:进入Windows後基本上DOS部份的机能都 202.134.126.84 04/13 17:38
11F:→ leicheong:被Windows取代了, 讨论那没意义... 202.134.126.84 04/13 17:39
12F:推 leicheong:最後, VM386是FreeDOS的memory manager 202.134.126.84 04/13 17:43
13F:→ leicheong:而VM/386是IGC的多用户DOS系统, 都和 202.134.126.84 04/13 17:43
14F:→ leicheong:讨论无关. 202.134.126.84 04/13 17:44
15F:推 UNARYvvv:搞不懂 tester 为何一直说 VM"386"220.132.114.113 04/13 21:06
16F:→ UNARYvvv:Virtual 8086 mode 简称 V86220.132.114.113 04/13 21:07
17F:→ UNARYvvv:他从很久以前每次扯到这个都会说VM"386"220.132.114.113 04/13 21:08
18F:推 abcdefghi:他前几篇有讲了,术语和专业是相关的... 140.113.23.107 04/13 21:40
19F:推 UNARYvvv:我有看到,而且他还说220.132.114.113 04/13 21:50
20F:→ UNARYvvv:「用错术语的麻烦就是会引起误会」= =220.132.114.113 04/13 21:51
21F:→ dolphinus:问题是根本没有 V386 模式,他自己想像的218.168.202.230 04/15 00:11