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

看板Programming作者時間17年前 (2007/04/16 12:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串23/24 (看更多)
※ 引述《tester.bbs@bbs.csie.ncu.edu.tw (try or test)》之銘言: > 因為 DOS 載入程式的固定執行點或開頭是 offset 0100 , 此時 P-Segment 所在 > 之絕對位址是 psp:0000 , psp 就隨之固定可成為唯一的 id , 這個值也對應其他 > os (如多工的 ccp/m CDOS) 用之於 Process ID . > Win3.1 , Win95 開機是借助 DOS 在 檔案系統(這跟 Novell 網路 server > 有關)的支援, 此開機 DOS 及其支援的網路與檔案系統, 因為早期還沒有這類 > protection mode (Win32) 程式, 為了相容與過渡, 是在 286/386 cpu 的 Real > Address Mode (R86) 下執行, 但部份 Window 程式則是在 286 Protection Mode > 或 386 虛擬記憶體模式(VM386)硬體支援的多工下執行, 各別限用於此兩種模式的 > 程式則透過共同可以取得的 FFFF:0-ffff 高位址區塊交換訊息, 此時的 DOS 是 > Real-86 模式執行, 但多工的管理是由 Window 進行. > 當多數程式移往 Win32 之後, 如 Win9X 就逐漸不再依賴 R86(8086) 下的程 > 式, 逐漸使用 VM386 虛擬記憶體(與286保護模式相容)下的 Win32 程式, 此時的 > DOS 大概就只用於初段的開機支援. 但在 VM386 (Virtual Memory)下若要直接執 > 行原來的 8086 模式程式就有困難, 此時 386 cpu 就提供接近 Virtual Machine > 概念的 Virtual-86 模式支援, 這是由 CPU 透過硬體自動攔下低保護層狀態下的 > illegal interrupt/trap , 完全透通地(不再是經由特殊方法支援的 pseudo > reset 與特定共通區來往) 解決 8086 程式透過 INT 使用 I/O 的問題, 此時的 > R86(8086) 程式是在 Virtual-86 支援下執行的, 這時可以有好幾個 DOS prompt > 出現且可同時執行 8086 程式也可透過 INT 呼叫 原來 DOS 的 system call 或 > 其他 8086 程式(如 TSR), 但這時的 DOS OS 已完全被 Win9X 代替, 這時候多個 並沒有代替, 只要是 win9x 都是用類似 fork() 的方式複製 DOS 分身 一些 DOS TSR 及 softice 都靠這功能, ex: 在 win.com 之前跑 doskey 會讓每個 dos 都有 doskey, 之後跑就只在該 dos win 有效 win9x 不是逐漸變成 XP, 而是被不想維護兩個 OS 的 M$ 丟掉, 只剩下 NT -- ┌─────KKCITY─────┐ ◢╱ 只要你通過身份認證 ~ ◥█ bbs.kkcity.com.tw 免經驗、五人連署即開班系板 └──From:59.120.53.7 ──┘ ◥╲ 趕快為班上設個秘密基地吧! --
文章代碼(AID): #168ln400 (Programming)
討論串 (同標題文章)
完整討論串 (本文為第 23 之 24 篇):
文章代碼(AID): #168ln400 (Programming)