16bit programs not compatible?

呢位 Microsoft Insider Users 在 Forum 上的回應認真詳盡…

Incompatibility of several applications

http://answers.microsoft.com/en-us/windows/forum/windows_7-windows_programs/incompatibility-of-several-applications/2d8af6cb-bb4d-4038-ae7a-5a32258593b0?page=1

 

CPU 指令集失傳/消失所引發的舊有 OS 危機

大家還記得大約在 2002 年時 NASA 以及部分國家的政府,甚至軍事單位四出尋找仍真正支援 REAL Mode (主要是 8086 指令集) 運算的舊電腦主板及 286/386 CPU 等配件嗎?

到 2005 年左右,Intel/AMD 開始推出 x86-64(x64 or x86_64 or EM64T) 指令集的 CPU 時(Pentium 4 600 系開始),CPU 按 Boot 機 OS 需要,一開機就進入 Protected Mode (386 Enhanced Mode) for 32bit 或 LONG Mode (64bit),後來才推出 追加回 VT 功能版本,方便配合 Virtualization software 模擬舊 OS 執行 16bit/8bit OS and software。

指令集沒落

其實 CPU 電路結構太複雑,進入 LONG mode 64bit 時代之時己經不再相容 Protected Mode(286)、Protected Mode (386)、REAL Mode (8086)。VT 電路只是一種加速橋樑,橋接 Virtualization software (e.g. VMware, VirtualBOx, DOSBox) 轉化 8/16 bit 指令成 LONG mode 運算,再回傳結果。Intel/AMD 設計 LONG mode 時大概認為己沒有必要應付 8/16bit 世界了,可是世上不小機構甚至科研領域並非如此。十年前左右美國出現時光怪客未來人 John Titor,除了在 Forums 上留下九個預言外,更重要的是他聲稱急尋 IBM 的 5100 Portable Computer 的資料,其 CPU 架構在未來己失傳,但舊有關鍵系統在未來遇上麻煩,急需回到千禧年代嘗試修正…以便拯救未來。5100 系列大致上也並非 x86 指令集呢 (IBM 5100 系列),是更舊的。那位怪客不久便消失了,可能用他的時光機再回到更早的年代吧。

一種技術的消失是很容易

人類文明雖然在近一百年神奇地突飛猛進,但同時也出現較以往容易流失文明的可能。看看日本不少職人(職人指針對某一種技術持續研究實踐至神級)仙遊後無人傳承便可知其嚴重性,工廠機器大量生產模式下,職人的消失絕對有可能阻礙有關技術進一步發展下去,而未來䓢中關鍵的細節出現問題需要糾正時,也有可能出現困難。資訊爆炸的今天,一個機構一旦消失,寶貴的資訊何去何從?似乎比以往一紙一書更為困難吧。尤其當今流行雲端服務,機構一旦不再續約,或者沒有付費過久,一切都可以一下子自動消失掉。試想想一家 Software house 的結朿,沿用它們提供的系統、軟件、操作平台之客戶機構又會發生甚麼不可預期的事?我就曾遇過類近的問題了,跟隨公司其中一位老闆離開並夥拍其中一家原客戶企業合作,公司原有的其中一個客戶仍想找回我們跟進一套他們仍在使用中的電腦系統問題,但己經愛莫能助,仍留在公司裡沒有離開的人員,面對的局面是文件齊全也好,己沒有人能跟進之。從新找來人員從頭開始 Study 也是一件成本十分高昂的工作,時間成本是最大問題,金錢也未必最關鍵。客戶公司簽約時同時有權獲得一切 Spec. Document ,但那又如何?他們不是科研性質,要主理 System development 實在無可能。

Microsoft 向來都很重視 Backward Compatibility,至少 Bill Gates 仍主理時這是絕對的。而知識保存方而,Microsoft 也有份支持 Wiki system 的 Open Source Project,世界上最出名採用 Wiki system 的可說是 Wikimedia 組織旗下的 Wikipedia 了,但 Wiki system 其實每個人也可以自行架設。而 Microsoft 大企業/組織 專用的 SharePoint System 上,也有 Wiki system 功能可加上並使用,但那個商用改良版本主要是方便橋接 SharePoint 其它元件及 Sub-system。不過,若 Wiki system 不是架設在組織自身的 Server machine 上,知識庫的消失同樣容易吧。Web 2.0 時代裡的 Blogging platform,規模大得如 Yahoo Blog 的也能一下子消失(有過渡期讓人們下載打包檔,但未曾聽過有甚麼容易方式轉移內容到其它 Blogging platform,複雜的方法又不是一般人懂)。

P.S. Yahoo Japan 是另一個獨立個體,其它大部分於 各國/城市/地區 所取消掉的 Yahoo 服務並沒有跟隨取消的。但當年也沒有提供 Yahoo Blog Hong Kong 搬遷到 Yahoo Japan 的 Blog 平台上的通路。

How about running 16bit programs on x64 CPU with 32bit Operating System?

SUre, but…  若安裝 32bit Windows 於 x64 CPU 的電腦上,是有可能執行大部分 16bit/8bit programs 的,可是自從 386 CPU (32bit CPU) 開始,8086 Virtual Mode 功能導入,配合 Windows Operating System 模擬 8086 指令運算,這種模擬畢境跟真實的 8086 會有出入。所以這種環境下未必完全可靠,只能說是某程度上的相容。

386 Enhanced Mode

386 CPU 是 x86 指令集世界裡的一個傳奇,首個 32bit 支援,同時 CPU 配合當時的 Windows Operating System 可以應付 Real mode 指令集的 8/16bit programs,Boot 機後處於 Run time 狀態下仍能 Switchable between Real, Protected, Enhanced modes。不過又因此結構複雜熱量較高,直到 Pentium 時代,Intel 加入 Decoder 部件,解譯指令從 CISC 變換成 RISC 來運算,大大減低電路複雜性,CPU 效能才能以較簡單方式持續發展下去。情況有點似 NetBrust 架構過度複雜過於耗電發熱而退回去改良 Pentium III Tualatin 核心,發展出 CORE core CPU 架構 (沒錯,今時今日甚麼 6th generation of CORE i7/i5/i3 CPU 均建基於 Pentium III Tualatin 核心慨念,即最尾一代的 Pentium III 架構)。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です