在Linux系統上仿真老式操作系統
在 Linux 上能夠仿真各種各樣的操作系統。這不僅僅只是學(xué)術(shù)實(shí)踐,這些“托管的 OS”對不少服務(wù)器室來(lái)說(shuō)是現實(shí)的投資。
Linux 機器能做的最有用的工作之一就是在它上面運行其它操作系統的程序。這能極大地簡(jiǎn)化您的工作。
很多公司已經(jīng)在“服務(wù)器合并”上花了數百萬(wàn),希望藉此降低維護、管理甚至是散熱負擔??墒?,他們的做法往往只是在幾種不同的 UNIX 之間移來(lái)移去罷了。
然而,他們往往沒(méi)有意識到,這些由 Linux 托管的 OS 仿真,有著(zhù)相當大的范圍和相當高的質(zhì)量。其中有部分 OS,諸如 CP/M、RSX、OpenVMS 和 DOS 都是相當老的系統。此外,很多公司對于使用該軟件在多大程度上提高了服務(wù)器室操作的方便性也不甚了解。
當然,說(shuō)明這一點(diǎn)正是 服務(wù)器診所的任務(wù)之一。去年,本專(zhuān)欄致力于介紹各種在 Linux 下能完美運行的自動(dòng)操作(盡管它們沒(méi)有被廣泛地應用),諸如:Fortran 應用程序、PDF 生成、Word 文檔管理、構建 Windows 可執行文件等等。這個(gè)月,該看看 Linux 對那些使用“次要的”老式 OS 的人能有多少幫助了。
CP/M 的新生
舉個(gè)例子來(lái)說(shuō),假設您需要運行一些 CP/M 程序。那么究竟怎樣才“需要”運行一個(gè)二十年前就很陳舊的 OS 呢?如果您在開(kāi)發(fā)嵌入式系統,就很可能會(huì )有這種需要。同產(chǎn)品至少每年都更新的信息技術(shù)相比,一般認為,許多嵌入式系統一旦啟動(dòng)就會(huì )默默地自行運行數十年。
這引發(fā)了至少幾個(gè)開(kāi)發(fā)問(wèn)題,系統顧問(wèn)工程師 Rene Tschaggelar 概括為:“有鑒于嵌入式系統要運行十年到二十年甚至更長(cháng)時(shí)間,人們也就必須在這段時(shí)間內為它們提供支持?!庇腥舜_實(shí)需要維護這些系統,而這通常意味著(zhù)必須把一些老設備和程序收藏起來(lái)以備不時(shí)之需。
這樣不僅費錢(qián)而且往往很麻煩。要弄到老式的裝有 CP/M 的 S-100 機器的部件不容易。很難告訴客戶(hù),因為有人不小心弄丟了 8 吋盤(pán)上的存檔(那可是真正的軟盤(pán)),因而無(wú)法兌現承諾。一個(gè)確實(shí)可供選擇的替代解決辦法是在 Linux 機器內建立一個(gè)虛擬 CP/M 主機。注意這不只是給您一個(gè)更易于管理和負擔得起的虛擬 CPU 而已;通過(guò)在您所安裝的文件系統和硬件上工作,同時(shí)也將維護實(shí)踐與已有的基礎結構(包括用于版本控制、歸檔、遠程訪(fǎng)問(wèn)等的工具)統一起來(lái)。
這種情況下仿真所冒的風(fēng)險在于仿真器不會(huì )忠實(shí)再現您所要求的原始硬件的行為。然而,還是有很多用戶(hù) 確實(shí)報告說(shuō)對現有仿真器很滿(mǎn)意。此外,作為開(kāi)放源碼軟件,您或者為您工作的專(zhuān)家大有機會(huì )按您的需要對其做任何修正。
那么,讓虛擬 CP/M 工作需要些什么呢?并不多。有許多不同的仿真器可供選擇。我目前喜歡用的是 Andreas Gerlich 的 YAZE 2.0。它安裝和啟動(dòng)方便,并且在適應不常見(jiàn)的硬件或其它需求方面有著(zhù)高度的靈活性。要使用它,只需下載它(請參閱參考資料中的鏈接),解壓縮并用以下命令生成即可:
|
然后執行:
|
不久會(huì )看到如下顯示:
|
缺省的 YAZE 配置定位在一個(gè)虛擬 A:驅動(dòng)器上,Gerlich 在此驅動(dòng)器上提供最基本的指令: E.COM 、 HELP.COM 和 dir 。注意執行 E.com 是離開(kāi)仿真器會(huì )話(huà)的標準方式。
所以如果您一直有意重新編譯一個(gè)老的設備驅動(dòng)程序,或者要為某個(gè)特定客戶(hù)完成承諾,因而需要運行某個(gè)“古老”的嵌入式系統開(kāi)發(fā)工具箱,那就別遲疑了。不用去修理您的舊硬件。直接在現成的 Linux 主機上安裝 YAZE,把工作復制到虛擬機中,然后完成您的項目。
仿真也可用于同時(shí)期的許多其它計算機,包括 C64、MP/M、CP/M-86 計算機、Sinclair 和 Apple II 系列等。
陳舊的大鐵塊
OpenVMS 形成了一個(gè)有趣的對比。OpenVMS 在其許可和技術(shù)方面與它大致同時(shí)代的其他微機 OS(如 CP/M)完全不同。OpenVMS 現在仍在銷(xiāo)售,而且仍是一個(gè)完整、有用的產(chǎn)品;舉例來(lái)說(shuō),OpenVMS 長(cháng)期提供分布式文件系統、交叉語(yǔ)言互操作性以及群集,這些都領(lǐng)先于其他的商用 OS。
但 OpenVMS 的硬件很昂貴,而且還可能一直這樣昂貴。對一個(gè)組織來(lái)說(shuō),如果只有少量用于“關(guān)鍵任務(wù)”的 OpenVMS 應用程序而年度維護要數萬(wàn)美元的話(huà),很難證明這些開(kāi)銷(xiāo)的合理性。
于是 Linux 又有用武之地了。一個(gè)適當配置的 Linux 服務(wù)器能夠仿真一臺經(jīng)許可的 OpenVMS 副本的硬件,和一年只用上幾小時(shí)還嗡嗡叫的老古董相比,花費要少多了。這一替代方案是如此重要以至于有一個(gè)商業(yè)產(chǎn)品 Charon-VAX,是專(zhuān)門(mén)針對這種仿真而設計的。
SIMH 項目旨在對數十個(gè)老式操作系統的全系列進(jìn)行這樣的仿真,包括:1130、Eclipse、Altair、Interdata 16b 等等。
仿真世界中也有一點(diǎn)遺漏。和 OpenVMS 一樣,MPE/iX 是一個(gè)“中型”OS,有著(zhù)活躍的用戶(hù)社區和對 Linux 仿真方面極大的興趣。雖然為 MPE/iX 開(kāi)發(fā)仿真器是可能的,但要等到某個(gè)許可的細節問(wèn)題解決后,到 2004 年或 2005 年這種仿真器才可能會(huì )登場(chǎng)。
使用仿真器時(shí)另一事實(shí)是:它們并沒(méi)有完整全面的文檔記錄。Web 上許多相關(guān)鏈接已經(jīng)失效。此外,不少仿真器的作者已經(jīng)“成熟”而不再需要它們,因而也不再為自己的作品提供支持。
盡管如此,對于許多操作仿真器托管有著(zhù)極大的優(yōu)勢。有了 Linux,不用擔心缺乏硬件會(huì )妨礙您運行需要的軟件了。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論