科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道在Linux系统上仿真老式操作系统 (1)

在Linux系统上仿真老式操作系统 (1)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在 Linux 上能够仿真各种各样的操作系统。这不仅仅只是学术实践,这些“托管的 OS”对不少服务器室来说是现实的投资。

作者:jinwai 来源:赛迪网技术社区 2007年10月21日

关键字: 操作系统 系统 仿真 Linux

  • 评论
  • 分享微博
  • 分享邮件
 

在 Linux 上能够仿真各种各样的操作系统。这不仅仅只是学术实践,这些“托管的 OS”对不少服务器室来说是现实的投资。

Linux 机器能做的最有用的工作之一就是在它上面运行其它操作系统的程序。这能极大地简化您的工作。

很多公司已经在“服务器合并”上花了数百万,希望藉此降低维护、管理甚至是散热负担。可是,他们的做法往往只是在几种不同的 UNIX 之间移来移去罢了。

然而,他们往往没有意识到,这些由 Linux 托管的 OS 仿真,有着相当大的范围和相当高的质量。其中有部分 OS,诸如 CP/M、RSX、OpenVMS 和 DOS 都是相当老的系统。此外,很多公司对于使用该软件在多大程度上提高了服务器室操作的方便性也不甚了解。

当然,说明这一点正是 服务器诊所的任务之一。去年,本专栏致力于介绍各种在 Linux 下能完美运行的自动操作(尽管它们没有被广泛地应用),诸如:Fortran 应用程序、PDF 生成、Word 文档管理、构建 Windows 可执行文件等等。这个月,该看看 Linux 对那些使用“次要的”老式 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 系列等。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章