<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 在Linux系統上仿真老式操作系統

在Linux系統上仿真老式操作系統

作者: 時(shí)間:2012-05-22 來(lái)源:網(wǎng)絡(luò ) 收藏

在 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ù)高度的靈活性。要使用它,只需下載它(請參閱參考資料中的鏈接),解壓縮并用以下命令生成即可:

make -f Makefile_linux

然后執行:

./yaze.bin

不久會(huì )看到如下顯示:

A>dirA: CCP      COM : CPM3     COM : CPM3-OK  COMA: 3ERASE   COM : 3SETDEF  COM : CMP      COMA: COMP     COM : CRC      COM : DED      COMA: DIFF     COM : E        COM : I        COMA: II       COM : L80      COM : LC       COMA: MAKE     COM : MERA     COM : MMUPRINT COMA: MOUNT    COM : PAUSE    COM : PIP      COMA: PMARC    COM : PMEXT    COM : S        COMA: SENDUUE  COM : SUB      COM : SUBMIT   COMA: SYS      COM : TABS6    COM : TOUCH    COMA: UNARC    COM : UNLOAD   COM : Z80ASM   COMA: ZEXALL   COM : ZEXDOC   COM : ZSID     COMA: 0-README 1ST : CRCKLIST CRC : DISKS    TXTA: MAKE     DOC : MOUNT    Z80 : PROFILE  SUBA: SYS      Z80 : TABS6    DOC : TEST     SUBA: TOUCH    DOC : UNIXMAKE MAN : WWW      TXTA: YAZERC   TXT : Z80ASM   DOC

缺省的 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不再難懂)


關(guān)鍵詞: Linux系統 仿真 操作系統

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>