Re: [問題] dos為何要有記憶體配置的中斷指令?

看板Programming作者時間18年前 (2007/04/13 16:32), 編輯推噓4(5115)
留言21則, 4人參與, 最新討論串19/24 (看更多)
> ==>發信人: sniffer@kkcity.com.tw ( ), 信區: programming > ※ 引述《dolphinus.bbs@ptt.cc (鬼扯英吉GTB)》之銘言: > > ※ 引述《tester.bbs@bbs.csie.ncu.edu.tw (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

04/13 16:53, , 1F
Win31用protect_mode耶-.-
04/13 16:53, 1F

04/13 16:56, , 2F
挑點小bug:real/protected/V86是CPU狀態
04/13 16:56, 2F

04/13 16:57, , 3F
不可能針對每程式設定.
04/13 16:57, 3F

04/13 16:58, , 4F
還有286時protected mode並不能切換回
04/13 16:58, 4F

04/13 16:59, , 5F
real mode的.
04/13 16:59, 5F

04/13 17:34, , 6F
還有當Win95載入時, DOS的很大一部份
04/13 17:34, 6F

04/13 17:35, , 7F
interrupt都會被相應的VxD取代, 因此說
04/13 17:35, 7F

04/13 17:36, , 8F
Win9X的command prompt (即使是跑
04/13 17:36, 8F

04/13 17:37, , 9F
command.com)不能說是DOS的說法.
04/13 17:37, 9F

04/13 17:38, , 10F
進入Windows後基本上DOS部份的機能都
04/13 17:38, 10F

04/13 17:39, , 11F
被Windows取代了, 討論那沒意義...
04/13 17:39, 11F

04/13 17:43, , 12F
最後, VM386是FreeDOS的memory manager
04/13 17:43, 12F

04/13 17:43, , 13F
而VM/386是IGC的多用戶DOS系統, 都和
04/13 17:43, 13F

04/13 17:44, , 14F
討論無關.
04/13 17:44, 14F

04/13 21:06, , 15F
搞不懂 tester 為何一直說 VM"386"
04/13 21:06, 15F

04/13 21:07, , 16F
Virtual 8086 mode 簡稱 V86
04/13 21:07, 16F

04/13 21:08, , 17F
他從很久以前每次扯到這個都會說VM"386"
04/13 21:08, 17F

04/13 21:40, , 18F
他前幾篇有講了,術語和專業是相關的...
04/13 21:40, 18F

04/13 21:50, , 19F
我有看到,而且他還說
04/13 21:50, 19F

04/13 21:51, , 20F
「用錯術語的麻煩就是會引起誤會」= =
04/13 21:51, 20F

04/15 00:11, , 21F
問題是根本沒有 V386 模式,他自己想像的
04/15 00:11, 21F
文章代碼(AID): #167q0300 (Programming)
討論串 (同標題文章)
文章代碼(AID): #167q0300 (Programming)