标签 QEMU 下的文章

学习如何在 Ubuntu 中正确安装 Qemu,然后在虚拟机中配置 Linux 发行版。

如果你需要运行 Linux 虚拟机,Qemu 是目前最快的管理程序之一,甚至没有“之一”。

除了速度之外,你还可以获得出色的配置选项。即使你不是一个资深用户,它也给你足够的调整空间。

在本教程中,我将引导你完成:

  • 在 Ubuntu 上安装 Qemu 和 KVM
  • 在 Qemu 上安装另一个发行版
  • 在 Qemu 中启用共享文件夹、自动调整大小和复制粘贴(可选,但会使你的虚拟机体验更顺畅)。

那么让我们从安装开始吧。

在 Ubuntu 上安装 Qemu 和 KVM

✋ 在开始安装之前,让我们检查一下你的机器是否支持虚拟化。

要做到这一点,请使用以下命令:

LC_ALL=C lscpu | grep Virtualization

如果你有一个英特尔处理器,它应该带来以下输出:

检查该计算机是否支持基于硬件的虚拟化

如果你有一个 AMD 处理器,它应该得到以下输出:

Virtualization:                  AMD-V

另外,确保你的系统有多个处理器核心,这样你可以分配一些给你的虚拟机,并且仍然有足够的处理能力提供给宿主机。

如果你不确定,使用下面的命令,输出应该大于零

egrep -c '(vmx|svm)' /proc/cpuinfo

检查 Linux 中系统的核心总数和线程数

一旦你都准备好了,你就可以用以下命令在 Ubuntu 上安装 Qemu 和 KVM:

sudo apt install qemu qemu-kvm virt-manager bridge-utils

安装结束后,重新启动你的系统

将用户添加到适当的组中

为了使 Qemu 工作,你必须 将你的用户加入两个组libvirt-kvmlibvirt

要做到这一点,请逐一使用以下命令:

sudo useradd -g $USER libvirt
sudo useradd -g $USER libvirt-kvm

接下来,启用并启动 libvirt 服务:

sudo systemctl enable libvirtd.service && sudo systemctl start libvirtd.service

这就行了!Qemu 的安装已经完成。

用 Qemu 安装另一个 Linux 虚拟机

? 请下载你想在 Qemu 虚拟机中安装的 Linux 发行版的 ISO 文件。

首先,从系统菜单中打开 虚拟机管理器 Virtual Machine Manager

从系统菜单中启动 Qemu

接下来,点击 “ 文件 File ” 菜单,选择 “ 新建虚拟机 New Virtual Machine ” 选项:

在 Qemu 中创建新的虚拟机

从这里,选择第一个选项 “ 本地安装介质 Local install media ”,这将允许你从文件管理器中选择 ISO:

选择本地 ISO 文件以在 Qemu 中创建新的虚拟机

接下来,你将被要求添加 ISO 文件。在这里,点击 “ 浏览 Browse ” 按钮;它将打开一个新的提示窗口,在那里,点击 “ 浏览本地 Browse Local ”。

它将打开文件管理器,从那里选择 ISO 文件:

在 Qemu 中导入 ISO 文件

在大多数情况下,ISO 文件会被检测到,但如果你发现它没有自动检测到,请按照以下步骤操作:

  • 取消勾选 “ 自动从安装介质/源检测 Automatically detect from the installtion media / source ” 选项
  • 选择 “ 常见的 Linux Generic Linux ” 选项

解决 Qemu 中未检测到 ISO 的问题

接下来,你将被要求根据你的需要分配内存和存储。我建议桌面版至少要有 2 个核心、4GB 内存和 25GB 的存储空间:

在 Qemu 中为虚拟机分配内存、内核和存储空间

? 除了磁盘空间,CPU 和内存等系统资源只在 VM 中运行操作系统时使用。

最后,给你的虚拟机起一个合适的名字;完成后,点击 “ 完成 Finish ” 按钮:

在 Qemu 中命名你的虚拟机

它将加载 ISO,所以你可以从这里开始安装。

这就完成了。你可能会觉得这已经很不错了,但如果你启用共享文件夹、剪贴板共享等,你会更喜欢它。下面的几节将介绍如何做到这一点。

在 Qemu 中启用共享文件夹(可选)

在本节中,我将向你展示如何将宿主机的现有目录与虚拟机共享。

要做到这一点,你必须执行以下步骤:

  • 通过 Qemu 中的虚拟机设置添加一个共享文件系统
  • 在虚拟机中挂载文件系统

因此,首先从系统菜单中打开虚拟机管理器,选择虚拟机,并点击 “ 打开 Open ” 按钮来管理控制台:

打开 Qemu 中虚拟机的设置

现在,点击 “ 信息 Info ” 按钮,选择 “ 内存 Memory ” 并启用共享内存:

在 Qemu 中启用共享内存

接下来,点击 “ 添加硬件 Add Hardware ” 按钮,选择 “ 文件系统 Filesystem ” 选项。

在这里,你必须做以下工作:

  • 在 “ 源路径 Source Path ” 部分添加一个你想共享的目录的路径
  • 在 “ 目标路径 Target Path ” 部分添加该目录的名称

在 Qemu 中创建共享文件夹

完成后,点击 “ 完成 Finish ” 按钮,启动虚拟机。

在虚拟机中,打开终端,使用下面的语法来挂载共享目录:

sudo mount -t virtiofs sharename path/to/shared/directory

在我的例子中,它是 Downloads 目录,所以我将使用下面的方式:

sudo mount -t virtiofs Downloads /home/sagar/Downloads

在 Qemu 中挂载共享文件夹

这就行了。

但这是一个临时的解决方案。

要使它成为永久性的,你必须在虚拟机的 /etc/fstab 中创建一个条目。

要这样做,首先,用下面的方法打开 /etc/fstab 配置文件:

sudo nano /etc/fstab

按下Alt + /在 nano 文本编辑器中转到文件的末尾 ,并使用以下语法创建一个条目:

sharename path/to/shared/directory virtiofs defaults 0 0

这是我的配置,看起来像这样:

使 Qemu 中的共享文件夹永久化

一旦完成,保存更改并退出 nano 文本编辑器。

这里我展示了我是如何在主机上的 Downloads 目录下创建一个新文件,并且这些变化反映在我的虚拟机上:

在 Qemu 中使用共享文件夹

因此,现在你可以使用这个共享文件夹在主机和虚拟机之间传输文件,没有任何问题了!

在 Qemu 中启用共享剪贴板(可选)

要启用共享剪贴板,你所要做的就是在虚拟机中安装 spice-vdagent 工具。

因此,如果你的虚拟机是基于 Ubuntu/Debian 的,你可以使用以下方法:

sudo apt install spice-vdagent

对于基于 Arch 的发行版:

sudo pacman -S spice-vdagent

对于基于 Fedora 的发行版:

sudo yum install spice-vdagent

一旦你完成了安装,重启你的虚拟机,剪贴板应该可以如期工作了。

在 Qemu 中启用自动调整大小(可选)

自动调整大小的功能没什么,但当你调整虚拟机窗口的大小时,虚拟机的显示会立即适应大小的变化:

Qemu 中的自动调整大小

要启用 Qemu 中的自动调整大小功能,你必须遵循 2 个简单的步骤:

  • 点击 “ 视图 View ”(从顶部菜单栏)。
  • 选择 “ 缩放显示 Scale Display ” 并选择 “ 总是 Always ” 选项。

这就是我这边看到的情况了。

想要使用 Qemu 的即插即用版本?

在本教程中,我介绍了如何在 Qemu 中手动安装虚拟机,但如果我告诉你,你可以自动完成整个过程,如分配存储空间、内存等步骤呢?

是的,它提供了同样的效率,但当你想尽快创建一个新的虚拟机时,它就会派上用场!这个工具叫 Quickgui,我们有一个专门的安装教程:

用基于 Qemu 的 Quickgui 轻松地创建虚拟机

我希望你会发现这个指南对你有帮助。如果你有任何疑问,欢迎在评论中提问。

(题图:MJ/b3c4d5b2-e727-4b70-9bb8-e864941eef9a)


via: https://itsfoss.com/qemu-ubuntu/

作者:Sagar Sharma 选题:lkxed 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

量子计算在 6 分钟内解决了 3854 个变量的宝马优化问题

在汽车尤其是自动驾驶汽车上安放传感器涉及大量的变量,如底盘设计,有没有障碍物(不同位置提供了不同视野),风阻和重量平衡等等,这需要大量的试错,不同的车型还需要重新制定不同的方案。宝马汽车的问题涉及到了 3854 个变量和 500 个约束条件,经典计算机解决这个问题需要大量的时间。量子计算公司 QCI 使用的是其新量子硬件,在 6 分钟内解决了该问题,提供了一个由 15 个传感器构成的方案。

消息来源:Tom's Hardware
老王点评:居然可以解决某种具体问题了?那说明量子计算步入实用更进一步了。

亚马逊将关闭其网盘存储服务

亚马逊周五早上发送电子邮件通知用户,将于 2023 年 12 月 31 日关闭其已运营 11 年的网盘存储服务,以更充分地将精力集中在“亚马逊照片”上。亚马逊表示,用户帐户中的照片和视频已自动保存到亚马逊照片中。如果你依靠该服务进行文件存储,则需要在结束服务日期之前访问并下载文件。

消息来源:Geek Wire
老王点评:看来网盘服务盈利前景堪忧啊,有这个风向标,国内的网盘服务会如何呢?

QEMU 7.1 将带来龙芯架构支持

QEMU 7.1-rc0 已经发布,其稳定版本将在几周后发布。QEMU 7.1 将初始支持 64 位龙芯架构的 3A5000 系列 SoC。QEMU 7.1 也将支持更多的 RISC-V 特性,如 RISC-V 特权规格 1.12 版,改进的 PMU 实现,Zmmul 扩展等。对于 QEMU 迁移,它现在支持 Linux 上的零拷贝发送,以减少源主机上的 CPU 使用率。

消息来源:Phoronix
老王点评:龙芯不断地将各种驱动提交到上游,可见其发展速度在加快。

Quickgui 旨在成为 VirtualBox 的一个更简单的替代品,帮助你快速创建虚拟机。让我们来看看它。

目前,借助 VirtualBox、VMware 和其他一些程序,创建虚拟机相当容易。

你当然可以 在你的 Linux 系统中安装 VirtualBox 来创建虚拟机。但是,在这篇文章中,我把重点放在一个令人兴奋的工具上,即 Quickgui,它使用简单,运行速度快,能帮助你快速启动虚拟机。

Quickgui:Quickemu 的图形用户界面前端

Quickemu 是一个基于终端的工具,可以让你创建优化的桌面虚拟机并轻松地管理它们。该工具专注于消除配置虚拟机的所有细微差别。相反,它根据虚拟机的可用系统资源选择最佳配置以使其正常工作。

不仅限于配置,它还会下载操作系统的镜像(使用 quickget 包)。

因此,你所要做的就是像通常那样安装操作系统,然后开始工作。

Quickemu 以 QEMU 为核心,旨在用 Bash 和 QEMU 取代 VirtualBox。

QEMU 是一个开源的机器仿真器和虚拟化器。

Quickemu 是一个有趣的项目,由 Martin Wimpress(Ubuntu MATE 负责人)在一些贡献者的帮助下完成。

作为对这个工具的补充,Quickgui 是一个使用 Flutter 开发的前端,由另一组开发人员开发,以帮助在没有终端的情况下使用 Quickemu。

在此,我们重点介绍使用 Quickemu 创建和管理虚拟机的前端 Quickgui。

Quickgui 的特点

在 Zorin OS 16 上使用 Quickgui 运行虚拟机

如上所述,Quickgui 作为一个前端,其核心利用的是 Quickemu。因此,你可以期待其具有同样的功能。

你可以用它做的一些事情包括:

  • 搜索操作系统并下载它们以创建虚拟机。
  • 管理你现有的虚拟机。
  • 当你建立一个虚拟机时,创建默认配置。
  • 提供黑暗模式。
  • 开箱即用地创建 Windows 和 macOS 虚拟机。
  • 支持各种 Linux 发行版,包括 elementaryOS、ZorinOS、Ubuntu 等。
  • 支持 FreeBSD 和 OpenBSD。
  • 支持 EFI 和传统的 BIOS。
  • 不需要提升权限就能工作。
  • 默认情况下,宿主机/访客机共享剪贴板。
  • 可以选择镜像压缩方法。
  • 能够禁用输入。
  • 能够切换虚拟机中宿主机/访客机的可用 USB 设备。
  • 包括对 SPICE 连接 的支持。
  • 网络端口转发。
  • Samba 文件共享。
  • VirGL 加速。
  • 智能卡直通。

鉴于它是如此简单和容易使用,其功能集令人印象深刻。让我给你提供一些使用的技巧。

Quickgui 入门

用户界面非常简单,你可以选择 “ 管理现有机器 Manage existing machines ” 和 “ 创建新机器 Create new machines ”。

你需要点击“ 创建 Create ”来开始制作虚拟机。

Quickgui VM Creation

选择操作系统,你应该看到一个列表。如果你找不到目标操作系统,只需搜索一下,它应该会出现。

你会看到各种各样的操作系统。在接下来的选择中,选择所需的操作系统及其版本。然后,点击 “ 下载 Download ”。

它应该会下载恢复镜像或 ISO,这取决于你正在尝试的操作系统。下载将取决于你的互联网连接,但它工作得很完美。

如果你想自己下载 ISO,你将就得为它创建配置并进行设置。看看 Quickemu 的 GitHub 页面,了解一下它的说明。

你只需要在下载完成后点击 “ 去除 Dismiss ”。

在这篇文章中,我测试了启动一个 Linux 虚拟机(elementary OS 6)、一个 macOS 实例,以及一个 Windows 虚拟机。

我成功地以虚拟机方式运行了 Linux 和 macOS 。然而,我在快速建立一个 Windows 虚拟机时遇到了一些问题。我在 Quickemu 的 GitHub 页面上找不到任何相关信息,所以我没有费心去排除故障。

如果你需要使用 Windows 虚拟机,可以自己试试,并在他们的 Discord 服务器 中联系他们寻求帮助。

你不一定需要改变虚拟机的配置来使其工作。因此,它变成了一个节省时间的工具。

在 Linux 中安装 Quickgui

要使用 Quickgui,你需要先安装 Quickemu。

对于基于 Ubuntu 的发行版,你可以使用 PPA 来安装它:

sudo apt-add-repository ppa:flexiondotorg/quickemu
sudo apt update
sudo apt install quickemu

它应该安装了你需要的所有东西(连同 quickget 包),使其发挥作用。

完成后,你可以使用另一个 PPA 继续安装 Quickgui:

sudo add-apt-repository ppa:yannick-mauray/quickgui
sudo apt update
sudo apt install quickgui

如果你使用的是其他 Linux 发行版,你可以参考 Quickemu 的 GitHub 页面 和查看 Quickgui 的 GitHub 页面,以获得更多说明。

总结

Quickgui 使人们能够方便地利用 Quickemu 的能力,快速创建和管理多个虚拟机,而不需要进行任何配置。

更有好的是,你不需要提升权限就能让它工作。

因此,如果你正在寻找 VirtualBox 的替代品,这可能就是答案。或者,你也可以试试 GNOME Boxes 作为一个更简单的替代品。

你对 Quickgui 有什么看法?请在下面的评论中告诉我你的想法。


via: https://itsfoss.com/quickgui/

作者:Ankush Das 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

2021 年 06 月 24 日微软正式发布了 Windows 11 操作系统,这是微软时隔 6 年来的再次发布操作系统。根据其官方介绍,Windows 11 新增了许多特性,考虑到安装 Windows 11 到 PC 会耽误现在的正常工作(毕竟用 Windows 11 替换 PC 中的 Windows 10 后需要重新安装各种工程软件,这是件很耗时的事情),因此我想到用 QEMU 虚拟机来体验一下新发布的 Windows 11 尝尝鲜。

一、准备工作

我们需要准备 QEMU 环境、Windows 11 镜像文件、virtio-win 的镜像文件,这里罗列一下:

  • QEMU(本文是在 CentOS 环境下安装的 QEMU 工具)
  • Windows 11 镜像(下载地址:win11.iso),需要空间 4.5G
  • virtio-win 镜像(下载地址:virtio-win-0.1.190.iso),需要空间 479M

注意:下载完成后,为了简化,我这里将镜像都重新简化命名如下:

镜像文件简化命名
virtio-win-xxx.isovirtio-win.iso
xxx-windows11-xxx.isowindows11.iso

1、安装 qemu 命令

如果是 Ubuntu 系统,可以直接用sudo apt-get install qemu或者sudo apt-get install qemu-system-i386命令来安装 QEMU。

本文中是使用的 qemu-5.1.0(下载地址:qemu)来编译生成的 qemu-system-x86_64qemu-img 等命令。

操作步骤:

# 在根目录下解压 qemu-5.1.0.tar.xz
cp qemue-5.1.10.tar.xz /
cd /
tar xvf qemu-5.1.0.tar.xz

# 进入 qemu-5.1.0 源码目录
cd /qemu-5.1.0

# 编译
mkdir build
cd build
../configure
make

编译完之后,qemu-img 以及 qemu-system-x86_64 两个命令所在的位置分别是:

命令工具所在路径
qemu-img/qemu-5.1.0/build/qemu-img
qemu-system-x86_64/qemu-5.1.0/build/x86_64-softmmu/qemu-system-x86_64

2、制作 Windows 11 安装磁盘

我们重新创建一个目录,用来存放 windows11.isovirtio-win.iso 镜像文件以及马上就要生成的 windows11.qcow2 文件。

# 为了方便,依旧在根目录下操作(其实这是很不好的习惯)
cd /
mkdir win11
cd win11

# 将下载好的 windows 11 镜像以及 virtio-win 镜像拷贝进来
cp xxx/windows11.iso /win11/
cp xxx/virtio-win.iso /win11/

# 然后利用 qemu-img 命令制作系统安装磁盘,分配磁盘大小 120G 空间
/qemu-5.1.0/build/qemu-img create -f qcow2 ./windows11.qcow2 120G

此时,/win11/目录下应该是这样几个文件:

3、编写启动 Windows 11 脚本

为了方便后面启动 Windows 11 系统,将 qemu 启动命令写入一个脚本中。

编辑 start.sh 脚本:

vim /win11/start.sh

编写脚本命令内容:

/qemu-5.1.0/build/x86_64-softmmu/qemu-system-x86_64 \
  -enable-kvm \
  -smp 4 \
  -m 4G \
  -machine usb=on \
  -device usb-tablet \
  -display default \
  -vga virtio \
  -device e1000,netdev=net0 \
  -netdev user,id=net0,net=192.168.20.0/24,dhcpstart=192.168.20.20 \
  -drive file=/win11/windows11.qcow2,if=virtio \
  -drive file=/win11/virtio-win.iso,index=1,media=cdrom \
  -drive file=/win11/windows11.iso,index=2,media=cdrom \
  -spice port=8891,addr=172.17.81.26,disable-ticketing

脚本中的第 9 行与第 10 行指定了 Windows 11 中网卡驱动类型为 e1000,并指定其采用 dhcp 方式获取 IP 地址。第 14 行则指定了 spice 协议连接地址,其中172.17.81.26:8891是指的我的宿主机的 IP 地址和端口号(此处 IP 地址以及端口号需要根据个人的宿主机环境进行修改),待执行 start.sh 脚本后可以通过 spice 协议连接 Windows 11 系统界面。

赋予 start.sh 可执行权限:

chmod +x /win11/start.sh

4、安装 spice 客户端

推荐使用virt-vierer工具客户端,用来通过spice协议连接即将安装的windows11系统桌面。

下载地址:virt-viewer,推荐下载virt-vierer-x64-2.0.msi版本。

5、完成准备工作

至此,准备工作都完成了,此时/win11/目录下应该有 4 个文件,如下图所示。

二、安装 Windows 11 系统

1、启动 start.sh 脚本

执行 start.sh 脚本,然后用 spice 协议连接172.17.81.26:8891端口:

2、安装 Windows 11 系统

连接上远程界面后,首先看到的是经典的 Windows 界面:

然后进入语言、时区、键盘等选项,此处不用修改,一直选择默认的即可。

接着需要输入密钥,但我们并没有,此处选择“I don't have a product key”即可。

然后进入了磁盘选择页面,会发现没有磁盘可选,此时单击“Load driver”选项就进行扫描,然后就可以发现磁盘(此处便是 virtio-win.iso 在起作用了)。此处发现并没有 Windows 11 的选项,直接选择 “w10” 那一项即可(我猜测是因为 virtio-win.iso 还并未支持 Windows 11 选项,相信马上就会更新了)。

然后找到安装磁盘,并选择,然后下一步。

然后进入安装过程,稍作等待 3-5 分钟。

安装完成后,进入准备桌面过程,是不是很熟悉?

接着就到了“just a moment”界面了,马上就可以进入桌面了,是不是很激动了,哈哈哈哈。

进入了桌面,此处其实是个动态的过程,因为截屏所以看不出效果。这个 Windows 界面重新设计过 UI了,个人觉得更好看了。

3. 进入桌面前的准备

至此,Windows 11 安装即将完成,只差最后的初次设置步骤了。

首先是选择国家地区,此处也即默认即可,无需更改。

然后是检查更新,此处根据网速快慢,等待的时间不定,需要耐心等待。

Windows 11 这里非要让用户填写 “Microsoft 账户”,无法跳过,很是郁闷,只能填写账户,然后下一步了。没有账户的可能得先申请一个微软账户了(估计正式版本会增加跳过选项吧)。

然后设置开机登录密码。

最后,最后,最后,激动的时刻来了,进入桌面了。初次见面,什么感觉?

乍一看,怎么那么像 Mac 的风格和 UI 界面。

为了显示更舒适一点,推荐设置以下屏幕分辨率(根据个人电脑屏幕大小自行设定)。这里我选择的是1920*1080

三、体验 Windows 11 系统

根据微软官方的介绍,Windows 11 增加了很多新的功能。这里挑几个新功能体验一下。

1、新的 UI 外观以及菜单

确实,这个 UI 风格和 Windows 10 还是有较大区别的,和 Windows 7 相比,特别时尚了。我感觉这个 UI 风格是为了适配平板、Surface 等便携式设备而优化的。

2、“Snap Layout” 布局功能

这个功能说实用也实用,说没啥用我觉得也没啥多大用(可能是我还没体会到多任务同时处理的便捷性吧)。Windows 旧版本中也有桌面并排处理等功能,但和这个布局功能比,还是逊色了点。

在窗口的最大化按钮上,鼠标悬停,即可出现 “Snap Layout” 布局窗口,然后可以选择一种布局,将该任务放置到某个位置中。这样做的目的是为了方便多任务同时处理。

如下图所示,选择了四个桌面的布局,将两个任务放在了上面两个布局框中。

3、新的小工具窗口

这是由 Microsoft Edge 和 AI 提供的全新 Widgets功能,包含日历、天气、待办事项、照片等功能。

4、不同场景设置不同桌面

这个功能我觉得还蛮实用的,可以根据使用的场景不同,设置不同的桌面(甚至包含常用软件的设置)。比如设置“home”、 “game”、“work”三种不同的桌面环境,方便场景快速切换。

5、全新的应用商店

这个应该是比较重大的新功能了。微软官方介绍,Windows 11 正式版可以安装安卓 APP,极大地方便了用户的使用。

微软商店界面:

我们来安装个 tiktok 试试,看看效果如何。首先在商店中搜索“tiktok”。然后会发现,tiktok 有 PC 版、Moblie device 版本。

根据 tiktok 界面看,我觉得我这里安装的应该是 Mobile device 版本的 tiktok。这个界面是不是很类似手机和平板的 tiktok 界面风格呢?这应该是 Windows 11 的一个较为新颖的功能。

总结

本文简略的在 QEMU 的帮助体验了 Windows 11 操作系统。由于是在虚拟机中体验的,并不能真实的体验到 Windows 11 的触摸便捷性、游戏画面优化、声音优化、以及其他的一些新功能特性。期待在将来能在真实设备上体验 Windows 11 操作系统。

QEMU 和 FreeDOS 使得很容易在 Linux 中运行老的 DOS 程序

传统的 DOS 操作系统支持的许多非常优秀的应用程序: 文字处理,电子表格,游戏和其它的程序。但是一个应用程序太老了,并不意味着它没用了。

如今有很多理由去运行一个旧的 DOS 应用程序。或许是从一个遗留的业务应用程序中提取一个报告,或者是想玩一个经典的 DOS 游戏,或者只是因为你对“传统计算机”很好奇。你不需要去双引导你的系统去运行 DOS 程序。取而代之的是,你可以在 Linux 中在一个 PC 仿真程序和 FreeDOS 的帮助下去正确地运行它们。

FreeDOS 是一个完整的、免费的、DOS 兼容的操作系统,你可以用它来玩经典的游戏、运行旧式业务软件,或者开发嵌入式系统。任何工作在 MS-DOS 中的程序也可以运行在 FreeDOS 中。

在那些“过去的时光”里,你安装的 DOS 是作为一台计算机上的独占操作系统。 而现今,它可以很容易地安装到 Linux 上运行的一台虚拟机中。 QEMU 快速仿真程序 Quick EMUlator 的缩写) 是一个开源的虚拟机软件,它可以在 Linux 中以一个“ 访客 guest ”操作系统来运行 DOS。许多流行的 Linux 系统都默认包含了 QEMU 。

通过以下四步,很容易地在 Linux 下通过使用 QEMU 和 FreeDOS 去运行一个老的 DOS 程序。

第 1 步:设置一个虚拟磁盘

你需要一个地方来在 QEMU 中安装 FreeDOS,为此你需要一个虚拟的 C: 驱动器。在 DOS 中,字母A:B: 是分配给第一和第二个软盘驱动器的,而 C: 是第一个硬盘驱动器。其它介质,包括其它硬盘驱动器和 CD-ROM 驱动器,依次分配 D:E: 等等。

在 QEMU 中,虚拟磁盘是一个镜像文件。要初始化一个用做虚拟 C: 驱动器的文件,使用 qemu-img 命令。要创建一个大约 200 MB 的镜像文件,可以这样输入:

qemu-img create dos.img 200M

与现代计算机相比, 200MB 看起来非常小,但是早在 1990 年代, 200MB 是非常大的。它足够安装和运行 DOS。

第 2 步: QEMU 选项

与 PC 仿真系统 VMware 或 VirtualBox 不同,你需要通过 QEMU 命令去增加每个虚拟机的组件来 “构建” 你的虚拟系统 。虽然,这可能看起来很费力,但它实际并不困难。这些是我们在 QEMU 中用于去引导 FreeDOS 的参数:

qemu-system-i386QEMU 可以仿真几种不同的系统,但是要引导到 DOS,我们需要有一个 Intel 兼容的 CPU。 为此,使用 i386 命令启动 QEMU。
-m 16我喜欢定义一个使用 16MB 内存的虚拟机。它看起来很小,但是 DOS 工作不需要很多的内存。在 DOS 时代,计算机使用 16MB 或者 8MB 内存是非常普遍的。
-k en-us从技术上说,这个 -k 选项是不需要的,因为 QEMU 会设置虚拟键盘去匹配你的真实键盘(在我的例子中, 它是标准的 US 布局的英语键盘)。但是我还是喜欢去指定它。
-rtc base=localtime每个传统的 PC 设备有一个实时时钟 (RTC) 以便于系统可以保持跟踪时间。我发现它是设置虚拟 RTC 匹配你的本地时间的最简单的方法。
-soundhw sb16,adlib,pcspk如果你需要声音,尤其是为了玩游戏时,我更喜欢定义 QEMU 支持 SoundBlaster 16 声音硬件和 AdLib 音乐。SoundBlaster 16 和 AdLib 是在 DOS 时代非常常见的声音硬件。一些老的程序也许使用 PC 喇叭发声; QEMU 也可以仿真这个。
-device cirrus-vga要使用图像,我喜欢去仿真一个简单的 VGA 视频卡。Cirrus VGA 卡是那时比较常见的图形卡, QEMU 可以仿真它。
-display gtk对于虚拟显示,我设置 QEMU 去使用 GTK toolkit,它可以将虚拟系统放到它自己的窗口内,并且提供一个简单的菜单去控制虚拟机。
-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 做这个很容易。它的最新版本是 FreeDOS 1.2, 发行于 2016 年 12 月。

FreeDOS 网站上下载 FreeDOS 1.2 的发行版。 FreeDOS 1.2 CD-ROM “standard” 安装器 (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 。

 title=

 title=

 title=

 title=

在你安装完成之后,关闭窗口退出 QEMU。

第 4 步:安装并运行你的 DOS 应用程序

一旦安装完 FreeDOS,你可以在 QEMU 中运行各种 DOS 应用程序。你可以在线上通过各种档案文件或其它网站找到老的 DOS 程序。

QEMU 提供了一个在 Linux 上访问本地文件的简单方法。比如说,想去用 QEMU 共享 dosfiles/ 文件夹。 通过使用 -drive 选项,简单地告诉 QEMU 去使用这个文件夹作为虚拟的 FAT 驱动器。 QEMU 将像一个硬盘驱动器一样访问这个文件夹。

-drive file=fat:rw:dosfiles/

现在,你可以使用合适的选项去启动 QEMU,加上一个外部的虚拟 FAT 驱动器:

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 电子表格程序。这是一个在上世纪八九十年代非常流行的电子表格程序,它和现在的 Microsoft Excel 和 LibreOffice Calc 或和以前更昂贵的 Lotus 1-2-3 电子表格程序完成的工作是一样的。 As-Easy-As 和 Lotus 1-2-3 都保存数据为 WKS 文件,最新版本的 Microsoft Excel 不能读取它,但是,根据兼容性, LibreOffice Calc 可以支持它。

 title=

As-Easy-As 电子表格程序

我也喜欢在 QEMU中引导 FreeDOS 去玩一些收藏的 DOS 游戏,比如原版的 Doom。这些老的 DOS 游戏玩起来仍然非常有趣, 并且它们现在在 QEMU 上运行的非常好。

 title=

Doom

 title=

Heretic

 title=

Jill of the Jungle

 title=

Commander Keen

QEMU 和 FreeDOS 使得在 Linux 上运行老的 DOS 程序变得很容易。你一旦设置好了 QEMU 作为虚拟机仿真程序并安装了 FreeDOS,你将可以在 Linux 上运行你收藏的经典的 DOS 程序。

所有图片要致谢 FreeDOS.org


作者简介:

Jim Hall 是一位开源软件的开发者和支持者,可能最广为人知的是他是 FreeDOS 的创始人和项目协调者。 Jim 也非常活跃于开源软件适用性领域,作为 GNOME Outreachy 适用性测试的导师,同时也作为一名兼职教授,教授一些开源软件适用性的课程,从 2016 到 2017, Jim 在 GNOME 基金会的董事会担任董事,在工作中, Jim 是本地政府部门的 CIO。


via: https://opensource.com/article/17/10/run-dos-applications-linux

作者:Jim Hall 译者:qhwdw 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出