如何在Linux中运行DOS程序

经典的DOS操作系统支持许多出色的应用程序:文字处理器,电子表格,游戏和其他程序。 仅仅因为应用程序很旧并不意味着它不再有用。

今天有许多原因可以运行旧的DOS应用程序。 也许从旧版业务应用程序中提取报告。 或玩经典的DOS游戏。 或者只是因为您对“经典计算”感到好奇。 您无需双重引导系统即可运行DOS程序。 相反,您可以借助PC模拟器和FreeDOS在Linux内部直接运行它们。

FreeDOS是一个完整的,免费的,与DOS兼容的操作系统,您可以用来玩经典的DOS游戏,运行旧版商业软件或开发嵌入式系统。 在MS-DOS上运行的任何程序也应在FreeDOS上运行。

在过去,您将DOS安装为计算机上的唯一操作系统。 如今,将DOS安装在Linux下运行的虚拟机中要容易得多。 QEMU (Quick EMUlator的缩写)是一种开源软件虚拟机系统,可以将DOS作为“来宾”操作系统Linux运行。 默认情况下,最流行的Linux系统包括QEMU。

步骤1:设置虚拟磁盘

您需要在QEMU内安装FreeDOS的位置,为此,您将需要一个虚拟C:驱动器。 在DOS中,驱动器分配有字母-A:B:是第一个和第二个软盘驱动器,而C:是第一个硬盘驱动器。 其他介质(包括其他硬盘驱动器或CD-ROM驱动器)被分配为D:E:等。

在QEMU下,虚拟驱动器是映像文件。 要初始化可用作虚拟C:驱动器的文件,请使用qemu-img命令。 要创建大约200MB的图像文件,请输入以下命令:

 qemu-img create dos.img 200M 

与现代计算相比,200MB似乎很小,但是在1990年代初,200MB很大。 这足以安装和运行DOS。

步骤2:QEMU选项

与VMware或VirtualBox等PC仿真器系统不同,您需要通过指示QEMU添加虚拟机的每个组件来“构建”虚拟系统。 尽管这看起来很麻烦,但实际上并不难。 这是我用来在QEMU中引导FreeDOS的参数:

qemu-system-i386

QEMU可以模拟几个不同的系统,但是要启动DOS,我们需要有一个兼容Intel的CPU。 为此,请使用i386命令启动QEMU。

-m 16

我想定义一个具有16MB内存的虚拟机。 这看起来很小,但是DOS不需要太多内存来完成其工作。 当DOS为王时,具有16MB甚至8MB的计算机非常普遍。

-k en-us

从技术上讲, -k选项不是必需的,因为QEMU会将虚拟键盘设置为与您的实际键盘匹配(在我的情况下,这是美国标准布局中的英语)。 但无论如何,我还是想指定它。

-rtc base=localtime

每台经典PC都提供一个实时时钟(RTC),因此系统可以跟踪时间。 我发现简单地设置虚拟RTC来匹配您的本地时间是最容易的。

-soundhw sb16,adlib,pcspk

如果您需要声音,尤其是游戏声音,我更喜欢使用SoundBlaster16声音硬件和AdLib音乐支持来定义QEMU。 SoundBlaster16和AdLib是DOS时代最常见的声音硬件。 某些较旧的程序可能使用PC扬声器发出声音。 QEMU也可以模仿这一点。
-device cirrus-vga 要使用图形,我喜欢模拟一个简单的VGA视频卡。 Cirrus VGA卡在当时是一种常见的图形卡,并且QEMU可以模拟它。

-display gtk

对于虚拟显示,我将QEMU设置为使用GTK工具箱,该工具箱将虚拟系统放置在其自己的窗口中,并提供了一个简单菜单来控制虚拟机。
-boot order= 您可以告诉QEMU从各种来源启动虚拟机。 要从软盘驱动器引导(在DOS计算机上通常为A :),请指定order = a 。 要从第一个硬盘驱动器(通常称为C :)引导,请使用order = c 。 或从CD-ROM驱动器(通常由DOS分配为D :)启动,请使用order = d 。 您可以结合使用字母来指定特定的引导首选项,例如order = dc以首先使用CD-ROM驱动器,然后使用硬盘驱动器(如果CD-ROM驱动器不包含可引导媒体)。

步骤3:启动并安装FreeDOS

现在,已将QEMU设置为运行虚拟系统,我们需要一个DOS版本才能在该虚拟计算机中安装和引导。 FreeDOS使这变得容易。 最新版本是2016年12月发布的FreeDOS 1.2。

FreeDOS网站下载FreeDOS 1.2发行版。 FreeDOS 1.2 CD-ROM“标准”安装程序( FD12CD.iso )非常适合QEMU,因此我建议使用该版本。

安装FreeDOS很简单。 首先,告诉QEMU使用CD-ROM映像并从中启动。 请记住, C:驱动器是第一个硬盘驱动器,因此CD-ROM将显示为D:驱动器。

 qemu-system-i386 -m 16 -k en-us -rtc base =localtime -soundhw sb16,adlib -device cirrus-vga -display gtk -hda dos.img -cdrom FD12CD.iso -boot order =d 

只需按照提示进行操作,即可在几分钟之内安装FreeDOS。

Starting FreeDOS installation
Select your keyboard layout
Selecting which packages to install
Rebooting after installation

完成后,通过关闭窗口退出QEMU。

步骤4:安装并运行DOS应用程序

一旦安装了FreeDOS,就可以在QEMU中运行不同的DOS应用程序。 您可以通过各种档案或其他网站在线找到旧的DOS程序。

QEMU提供了一种在Linux上访问本地文件的简便方法。 假设您要与QEMU共享dosfiles /文件夹。 只需使用-drive选项告诉QEMU将文件夹用作虚拟FAT驱动器。 QEMU将像访问硬盘一样访问此文件夹。

 -drive file =fat:rw:dosfiles / 

现在,使用常规选项以及额外的虚拟FAT驱动器启动QEMU:

 qemu-system-i386 -m 16 -k en-us -rtc base =localtime -soundhw sb16,adlib -device cirrus-vga -display gtk -hda dos.img -drive file =fat:rw:dosfiles / -boot order =c 

在FreeDOS中启动后,保存到D:驱动器的所有文件都将保存到Linux上的dosfiles /文件夹中。 这使得直接从Linux读取文件变得容易。 但是,请注意不要在启动QEMU之后从Linux更改dosfiles /文件夹。 启动QEMU时,QEMU会一次构建一个虚拟FAT表。 如果在启动QEMU之后在dosfiles /中添加或删除文件,则仿真器可能会感到困惑。

我像这样使用QEMU来运行我最喜欢的DOS程序,例如As-Easy-As电子表格程序。 这是1980年代和1990年代流行的电子表格应用程序,其功能与Microsoft Excel和LibreOffice Calc如今所完成的功能相同,或者更昂贵的Lotus 1-2-3电子表格在今天可以完成。 简易方式和Lotus 1-2-3都将数据另存为WKS文件,Microsoft Excel的较新版本无法读取,但是LibreOffice Calc可能仍支持(取决于兼容性)。

As-Easy-As spreadsheet program

简易电子表格程序

我还喜欢在QEMU下引导FreeDOS来玩一些我最喜欢的DOS游戏,例如原始的《毁灭战士》。 这些旧游戏仍然很有趣,并且在QEMU下都运行良好。

Doom

厄运

Heretic

异教徒

Jill of the Jungle

丛林的吉尔

Commander Keen

基恩指挥官

QEMU和FreeDOS使在Linux下轻松运行旧的DOS程序变得容易。 一旦将QEMU设置为虚拟机仿真器并安装了FreeDOS,就应该准备好从Linux运行您喜欢的经典DOS程序。

所有图片均由FreeDOS.org提供

翻译自: https://opensource.com/article/17/10/run-dos-applications-linux

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用方法,解压到本地目录,配置path,即可在dos下使用linux命令。 windows下能直接执行的linux命令,基本包括日常所有,如:[.exe grolbp.exe regtool.exe a2p.exe grolj4.exe rm.exe a2p5.10.0.exe grops.exe rmdir.exe addftinfo.exe grotty.exe rmt.exe addr2line.exe gzip.exe run.exe alternatives.exe head.exe runcon.exe ar.exe hostid.exe rxvt.exe arch.exe hostname.exe scp.exe as.exe hpftodit.exe sdiff.exe ascii.exe i686-pc-cygwin-gcc-3.4.4.exe sed.exe ash.exe i686-pc-cygwin-gcc-3.exe semstat.exe awk.exe i686-pc-cygwin-gcc.exe semtool.exe banner.exe id.exe seq.exe base64.exe indxbib.exe setfacl.exe basename.exe info.exe setmetamode.exe bash.exe infokey.exe sftp-server.exe bigram.exe install-info.exe sftp.exe bunzip2.exe install.exe sh.exe bzcat.exe ipcrm.exe sha1sum.exe bzip2.exe ipcs.exe sha224sum.exe bzip2recover.exe join.exe sha256sum.exe c++filt.exe kill.exe sha384sum.exe cat.exe ld.exe sha512sum.exe cc-3.exe less.exe shmtool.exe cc.exe lessecho.exe shred.exe chcon.exe lesskey.exe shuf.exe chgrp.exe link.exe size.exe chmod.exe lkbib.exe sleep.exe chown.exe ln.exe soelim.exe chroot.exe locate.exe sort.exe cksum.exe login.exe split.exe cmp.exe logname.exe ssh-add.exe code.exe lookbib.exe ssh-agent.exe comm.exe lpr.exe ssh-keygen.exe conv.exe ls.exe ssh-keyscan.exe cp.exe make.exe ssh-keysign.exe cpp-3.exe makeinfo.exe ssh.exe cpp.exe man.exe sshd.exe crypt.exe man2html.exe ssp.exe csplit.exe manpath.exe stat.exe cut.exe md5sum.exe strace.exe cygcheck.exe mkdir.exe strings.exe cygpath.exe mkfifo.exe strip.exe cygrunsrv.exe mkgroup.exe stty.exe cygserver.exe mknod.exe su.exe cygstart.exe mkpasswd.exe sum.exe d2u.exe mkshortcut.exe svn.exe date.exe mktemp.exe svnadmin.exe dd.exe mount.exe svndumpfilter.exe df.exe msgtool.exe svnlook.exe diff.exe mv.exe svnsync.exe diff3.exe nc.exe svnversion.exe dir.exe ngettext.exe sync.exe dircolors.exe nice.exe tac.exe dirname.exe nl.exe tail.exe dlltool.exe nm.exe tar.exe dllwrap.exe nohup.exe tbl.exe dos2unix.exe objcopy.exe tee.exe du.exe objdump.exe test.exe dump.exe od.exe texindex.exe dumper.exe oldfind.exe tfmtodit.exe echo.exe openssl.exe touch.exe editrights.exe passwd.exe tr.exe egrep.exe paste.exe troff.exe env.exe pathchk.exe true.exe envsubst.exe peflags.exe tsort.exe eqn.exe perl.exe tty.exe expand.exe perl5.10.0.exe u2d.exe expr.exe pfbtops.exe umount.exe factor.exe pgawk-3.1.6.exe uname.exe false.exe pgawk.exe unexpand.exe fgrep.exe pic.exe uniq.exe find.exe pinky.exe unix2dos.exe fmt.exe post-grohtml.exe unlink.exe fold.exe pr.exe unprotoize-3.exe frcode.exe pre-grohtml.exe unprotoize.exe gawk-3.1.6.exe printenv.exe users.exe gawk.exe printf.exe vdir.exe gcc-3.exe protoize-3.exe vim.exe gcc.exe protoize.exe wc.exe gcov-3.exe ps.exe which.exe gcov.exe ptx.exe who.exe getclip.exe putclip.exe whoami.exe getfacl.exe pwd.exe windmc.exe gettext.exe ranlib.exe windres.exe gkill.exe readelf.exe xargs.exe gprof.exe readlink.exe xmlwf.exe grep.exe readshortcut.exe xxd.exe grn.exe realpath.exe yes.exe grodvi.exe rebase.exe zdump.exe groff.exe refer.exe zic.exe

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值