歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> 關於Unix

服務器診所:在Linux上仿真老式系統

CP/M 的新生 舉個例子來說,假設您需要運行一些 CP/M 程序。那麼究竟怎樣才“需要”運行一個二十年前就很陳舊的 OS 呢?如果您在 開發 嵌入式 系統,就很可能會有這種需要。同產品至少每年都更新的信息技術相比,一般認為,許多嵌入式系統一旦啟動就會默默地
  CP/M 的新生
  舉個例子來說,假設您需要運行一些 CP/M 程序。那麼究竟怎樣才“需要”運行一個二十年前就很陳舊的 OS 呢?如果您在開發嵌入式系統,就很可能會有這種需要。同產品至少每年都更新的信息技術相比,一般認為,許多嵌入式系統一旦啟動就會默默地自行運行數十年。
  
  這引發了至少幾個開發問題,系統顧問工程師 Rene Tschaggelar 概括為:“有鑒於嵌入式系統要運行十年到二十年甚至更長時間,人們也就必須在這段時間內為它們提供支持。”有人確實需要維護這些系統,而這通常意味著必須把一些老設備和程序收藏起來以備不時之需。
  
  這樣不僅費錢而且往往很麻煩。要弄到老式的裝有 CP/M 的 S-100 機器的部件不容易。很難告訴客戶,因為有人不小心弄丟了 8 吋盤上的存檔(那可是真正的軟盤),因而無法兌現承諾。一個確實可供選擇的替代解決辦法是在 Linux 機器內建立一個虛擬 CP/M 主機。注意這不只是給您一個更易於管理和負擔得起的虛擬 CPU 而已;通過在您所安裝的文件系統和硬件上工作,同時也將維護實踐與已有的基礎結構(包括用於版本控制、歸檔、遠程訪問等的工具)統一起來。
  
  這種情況下仿真所冒的風險在於仿真器不會忠實再現您所要求的原始硬件的行為。然而,還是有很多用戶確實報告說對現有仿真器很滿意。此外,作為開放源碼軟件,您或者為您工作的專家大有機會按您的需要對其做任何修正。
  
  那麼,讓虛擬 CP/M 工作需要些什麼呢?並不多。有許多不同的仿真器可供選擇。我目前喜歡用的是 Andreas Gerlich 的 YAZE 2.0。它安裝和啟動方便,並且在適應不常見的硬件或其它需求方面有著高度的靈活性。要使用它,只需下載它(請參閱參考資料中的鏈接),解壓縮並用以下命令生成即可:
  
  make -f Makefile_linux
  然後執行:
  
  ./yaze.bin
  不久會看到如下顯示:
  
  A>dir
  A: CCP COM : CPM3 COM : CPM3-OK COM
  A: 3ERASE COM : 3SETDEF COM : CMP COM
  A: COMP COM : CRC COM : DED COM
  A: DIFF COM : E COM : I COM
  A: II COM : L80 COM : LC COM
  A: MAKE COM : MERA COM : MMUPRINT COM
  A: MOUNT COM : PAUSE COM : PIP COM
  A: PMARC COM : PMEXT COM : S COM
  A: SENDUUE COM : SUB COM : SUBMIT COM
  A: SYS COM : TABS6 COM : TOUCH COM
  A: UNARC COM : UNLOAD COM : Z80ASM COM
  A: ZEXALL COM : ZEXDOC COM : ZSID COM
  A: 0-README 1ST : CRCKLIST CRC : DISKS TXT
  A: MAKE DOC : MOUNT Z80 : PROFILE SUB
  A: SYS Z80 : TABS6 DOC : TEST SUB
  A: TOUCH DOC : UNIXMAKE MAN : WWW TXT
  A: YAZERC TXT : Z80ASM DOC
  缺省的 YAZE 配置定位在一個虛擬 A:驅動器上,Gerlich 在此驅動器上提供最基本的指令:E.COM、HELP.COM 和 dir。注意執行 E.com 是離開仿真器會話的標准方式。
  
  所以如果您一直有意重新編譯一個老的設備驅動程序,或者要為某個特定客戶完成承諾,因而需要運行某個“古老”的嵌入式系統開發工具箱,那就別遲疑了。不用去修理您的舊硬件。直接在現成的 Linux 主機上安裝 YAZE,把工作復制到虛擬機中,然後完成您的項目。
  
  仿真也可用於同時期的許多其它計算機,包括 C64、MP/M、CP/M-86 計算機、Sinclair 和 Apple II 系列等。
  
  陳舊的大鐵塊
  OpenVMS 形成了一個有趣的對比。OpenVMS 在其許可和技術方面與它大致同時代的其他微機 OS(如 CP/M)完全不同。OpenVMS 現在仍在銷售,而且仍是一個完整、有用的產品;舉例來說,OpenVMS 長期提供分布式文件系統、交叉語言互操作性以及群集,這些都領先於其他的商用 OS。
  
  但 OpenVMS 的硬件很昂貴,而且還可能一直這樣昂貴。對一個組織來說,如果只有少量用於“關鍵任務”的 OpenVMS 應用程序而年度維護要數萬美元的話,很難證明這些開銷的合理性。
  
  於是 Linux 又有用武之地了。一個適當配置的 Linux 服務器能夠仿真一台經許可的 OpenVMS 副本的硬件,和一年只用上幾小時還嗡嗡叫的老古董相比,花費要少多了。這一替代方案是如此重要以至於有一個商業產品 Charon-VAX,是專門針對這種仿真而設計的。
  
  SIMH 項目旨在對數十個老式操作系統的全系列進行這樣的仿真,包括:1130、Eclipse、Altair、Interdata 16b 等等。
  
  仿真世界中也有一點遺漏。和 OpenVMS 一樣,MPE/iX 是一個“中型”OS,有著活躍的用戶社區和對 Linux 仿真方面極大的興趣。雖然為 MPE/iX 開發仿真器是可能的,但要等到某個許可的細節問題解決後,到 2004 年或 2005 年這種仿真器才可能會登場。
  
  使用仿真器時另一事實是:它們並沒有完整全面的文檔記錄。Web 上許多相關鏈接已經失效。此外,不少仿真器的作者已經“成熟”而不再需要它們,因而也不再為自己的作品提供支持。

Copyright © Linux教程網 All Rights Reserved