量子计算的开源框架 Cirq 介绍
本文通过使用 Cirq 的一个开源视角,尝试去了解我们已经在量子计算领域取得多大的成就,和该领域的发展方向,以加快科学和技术研究。Media
via https://linux.cn/article-10376-1.html
本文通过使用 Cirq 的一个开源视角,尝试去了解我们已经在量子计算领域取得多大的成就,和该领域的发展方向,以加快科学和技术研究。Media
via https://linux.cn/article-10376-1.html
量子计算的开源框架 Cirq 介绍
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/24/123112eddhzdhpuedhwvhz.jpg">Media</a>我们即将讨论的内容正如标题所示,本文通过使用 Cirq 的一个开源视角,尝试去了解我们已经在量子计算领域取得多大的成就,和该领域的发展方向,以加快科学和技术研究。首先,我们将引领你进入量子计算的世界。在我们深入了解 Cirq 在未来的量子计算中扮演什么样的重要角色之前,我们将尽量向你解释其背后的基本概念。你最近可能听说过,在这个领域中有件重大新闻,就是 Cirq。在这篇开放科学栏目的文章中,我们将去尝试找出答案。在我们开始了解量子计算之前,必须先去了解“量子”这个术语,量子是已知的 <a href="https://en.wikipedia.org/wiki/Subatomic_particle">亚原子粒子</a> 中最小的物质。<a href="https://en.wikipedia.org/wiki/Quantum">量子</a>Quantum 这个词来自拉丁语 Quantus,意思是 “有多小”,在下面的短视频链接中有描述:为了易于我们理解量子计算,我们将量子计算Quantum Computing与经典计算Classical Computing(LCTT 译注:也有译做“传统计算”)进行比较。经典计算是指今天的传统计算机如何设计工作的,正如你现在用于阅读本文的设备,就是我们所谓的经典计算设备。经典计算经典计算只是描述计算机如何工作的另一种方式。它们通过一个二进制系统工作,即信息使用 1 或 0 来存储。经典计算机不会理解除 1 或 0 之外的任何其它东西。直白来说,在计算机内部一个晶体管只能是开(1)或关(0)。我们输入的任何信息都被转换为无数个 1 和 0,以便计算机能理解和存储。所有的东西都只能用无数个 1 和 0 的组合来表示。量子计算然而,量子计算不再像经典计算那样遵循 “开或关” 的模式。而是,借助量子的名为 <a href="https://www.clerro.com/guide/491/quantum-superposition-and-entanglement-explained">叠加和纠缠</a> 的两个现象,能同时处理信息的多个状态,因此能以更快的速率加速计算,并且在信息存储方面效率更高。请注意,叠加和纠缠 <a href="https://physics.stackexchange.com/questions/148131/can-quantum-entanglement-and-quantum-superposition-be-considered-the-same-phenom">不是同一个现象</a>。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/24/123435papw6vpw06fv76e8.jpg">Media</a>就像在经典计算中,我们有比特bit,在量子计算中,我们相应也有量子比特qubit(即 Quantum bit)。想了解它们二者之间的巨大差异之处,请查看这个 <a href="http://www.rfwireless-world.com/Terminology/Difference-between-Bit-and-Qubit.html">页面</a>,从那里的图片中可以得到答案。量子计算机并不是来替代我们的经典计算机的。但是,有一些非常巨大的任务用我们的经典计算机是无法完成的,而那些正是量子计算机大显身手的好机会。下面链接的视频详细描述了上述情况,同时也描述了量子计算机的原理。下面的视频全面描述了量子计算领域到目前为止的最新进展:嘈杂中型量子根据最新更新的(2018 年 7 月 31 日)研究论文,术语 “嘈杂Noisy” 是指由于对量子比特未能完全控制所产生的不准确性。正是这种不准确性在短期内严重制约了量子设备实现其目标。“中型” 指的是在接下来的几年中,量子计算机将要实现的量子规模大小,届时,量子比特的数目将可能从 50 到几百个不等。50 个量子比特是一个重大的量程碑,因为它将超越现有的最强大的 <a href="https://www.explainthatstuff.com/how-supercomputers-work.html">超级计算机</a> 的 <a href="https://en.wikipedia.org/wiki/Proof_by_exhaustion">暴力破解</a> 所能比拟的计算能力。更多信息请阅读 <a href="https://arxiv.org/abs/1801.00862">这里的</a> 论文。随着 Cirq 出现,许多事情将会发生变化。Cirq 是什么?Cirq 是一个 Python 框架,它用于创建、编辑和调用我们前面讨论的嘈杂中型量子(NISQ)。换句话说,Cirq 能够解决挑战,去改善精确度和降低量子计算中的噪声。Cirq 并不需要必须有一台真实的量子计算机。Cirq 能够使用一个类似模拟器的界面去执行量子电路模拟。Cirq 的前进步伐越来越快了,<a href="https://www.xconomy.com/san-francisco/2018/07/19/google-partners-with-zapata-on-open-source-quantum-computing-effort/">Zapata</a> 是使用它的首批用户之一,Zapata 是由来自哈佛大学的专注于量子计算的<a href="https://www.zapatacomputing.com/about/">一群科学家</a>在去年成立的。Linux 上使用 Cirq 入门开源的 <a href="https://github.com/quantumlib/Cirq">Cirq 库</a> 开发者建议将它安装在像 <a href="https://virtualenv.pypa.io">virtualenv</a> 这样的一个 <a href="https://itsfoss.com/python-setup-linux/">虚拟 Python 环境</a> 中。在 Linux 上的开发者安装指南可以在 <a href="https://cirq.readthedocs.io/en/latest/install.html#installing-on-linux">这里</a> 找到。但我们在 Ubuntu 16.04 的系统上成功地安装和测试了 Python3 的 Cirq 库,安装步骤如下:在 Ubuntu 上安装 Cirq<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/24/123436fmlz0w5l595m9mw9.jpg">Cirq Framework for Quantum Computing in Linux</a>首先,我们需要 pip 或 pip3 去安装 Cirq。<a href="https://pypi.org/project/pip/">Pip</a> 是推荐用于安装和管理 Python 包的工具。对于 Python 3.x 版本,Pip 能够用如下的命令来安装:<pre class="prettyprint linenums">sudo apt-get install python3-pip</pre>Python3 包能够通过如下的命令来安装:<pre class="prettyprint linenums">pip3 install <package-name></pre>我们继续去使用 Pip3 为 Python3 安装 Cirq 库:<pre class="prettyprint linenums">pip3 install cirq</pre>启用 Plot 和 PDF 生成(可选)可选系统的依赖没有被 Pip 安装的,可以使用如下命令去安装它:<pre class="prettyprint linenums">sudo apt-get install python3-tk texlive-latex-base latexmk</pre>python3-tk 是 Python 自有的启用了绘图功能的图形库texlive-latex-base 和 latexmk 启动了 PDF 输出功能。最后,我们使用如下的命令和代码成功测试了 Cirq:<pre class="prettyprint linenums">python3 -c 'import cirq; print(cirq.google.Foxtail)'</pre>我们得到的输出如下图:<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/24/123437odjd7ddwwqdzi2zw.jpg">Media</a>为 Cirq 配置 Pycharm IDE我们也配置了一个 Python IDE <a href="https://itsfoss.com/install-pycharm-ubuntu/">PyCharm</a> 去测试同样的结果:因为在我们的 Linux 系统上为…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/24/123112eddhzdhpuedhwvhz.jpg">Media</a>我们即将讨论的内容正如标题所示,本文通过使用 Cirq 的一个开源视角,尝试去了解我们已经在量子计算领域取得多大的成就,和该领域的发展方向,以加快科学和技术研究。首先,我们将引领你进入量子计算的世界。在我们深入了解 Cirq 在未来的量子计算中扮演什么样的重要角色之前,我们将尽量向你解释其背后的基本概念。你最近可能听说过,在这个领域中有件重大新闻,就是 Cirq。在这篇开放科学栏目的文章中,我们将去尝试找出答案。在我们开始了解量子计算之前,必须先去了解“量子”这个术语,量子是已知的 <a href="https://en.wikipedia.org/wiki/Subatomic_particle">亚原子粒子</a> 中最小的物质。<a href="https://en.wikipedia.org/wiki/Quantum">量子</a>Quantum 这个词来自拉丁语 Quantus,意思是 “有多小”,在下面的短视频链接中有描述:为了易于我们理解量子计算,我们将量子计算Quantum Computing与经典计算Classical Computing(LCTT 译注:也有译做“传统计算”)进行比较。经典计算是指今天的传统计算机如何设计工作的,正如你现在用于阅读本文的设备,就是我们所谓的经典计算设备。经典计算经典计算只是描述计算机如何工作的另一种方式。它们通过一个二进制系统工作,即信息使用 1 或 0 来存储。经典计算机不会理解除 1 或 0 之外的任何其它东西。直白来说,在计算机内部一个晶体管只能是开(1)或关(0)。我们输入的任何信息都被转换为无数个 1 和 0,以便计算机能理解和存储。所有的东西都只能用无数个 1 和 0 的组合来表示。量子计算然而,量子计算不再像经典计算那样遵循 “开或关” 的模式。而是,借助量子的名为 <a href="https://www.clerro.com/guide/491/quantum-superposition-and-entanglement-explained">叠加和纠缠</a> 的两个现象,能同时处理信息的多个状态,因此能以更快的速率加速计算,并且在信息存储方面效率更高。请注意,叠加和纠缠 <a href="https://physics.stackexchange.com/questions/148131/can-quantum-entanglement-and-quantum-superposition-be-considered-the-same-phenom">不是同一个现象</a>。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/24/123435papw6vpw06fv76e8.jpg">Media</a>就像在经典计算中,我们有比特bit,在量子计算中,我们相应也有量子比特qubit(即 Quantum bit)。想了解它们二者之间的巨大差异之处,请查看这个 <a href="http://www.rfwireless-world.com/Terminology/Difference-between-Bit-and-Qubit.html">页面</a>,从那里的图片中可以得到答案。量子计算机并不是来替代我们的经典计算机的。但是,有一些非常巨大的任务用我们的经典计算机是无法完成的,而那些正是量子计算机大显身手的好机会。下面链接的视频详细描述了上述情况,同时也描述了量子计算机的原理。下面的视频全面描述了量子计算领域到目前为止的最新进展:嘈杂中型量子根据最新更新的(2018 年 7 月 31 日)研究论文,术语 “嘈杂Noisy” 是指由于对量子比特未能完全控制所产生的不准确性。正是这种不准确性在短期内严重制约了量子设备实现其目标。“中型” 指的是在接下来的几年中,量子计算机将要实现的量子规模大小,届时,量子比特的数目将可能从 50 到几百个不等。50 个量子比特是一个重大的量程碑,因为它将超越现有的最强大的 <a href="https://www.explainthatstuff.com/how-supercomputers-work.html">超级计算机</a> 的 <a href="https://en.wikipedia.org/wiki/Proof_by_exhaustion">暴力破解</a> 所能比拟的计算能力。更多信息请阅读 <a href="https://arxiv.org/abs/1801.00862">这里的</a> 论文。随着 Cirq 出现,许多事情将会发生变化。Cirq 是什么?Cirq 是一个 Python 框架,它用于创建、编辑和调用我们前面讨论的嘈杂中型量子(NISQ)。换句话说,Cirq 能够解决挑战,去改善精确度和降低量子计算中的噪声。Cirq 并不需要必须有一台真实的量子计算机。Cirq 能够使用一个类似模拟器的界面去执行量子电路模拟。Cirq 的前进步伐越来越快了,<a href="https://www.xconomy.com/san-francisco/2018/07/19/google-partners-with-zapata-on-open-source-quantum-computing-effort/">Zapata</a> 是使用它的首批用户之一,Zapata 是由来自哈佛大学的专注于量子计算的<a href="https://www.zapatacomputing.com/about/">一群科学家</a>在去年成立的。Linux 上使用 Cirq 入门开源的 <a href="https://github.com/quantumlib/Cirq">Cirq 库</a> 开发者建议将它安装在像 <a href="https://virtualenv.pypa.io">virtualenv</a> 这样的一个 <a href="https://itsfoss.com/python-setup-linux/">虚拟 Python 环境</a> 中。在 Linux 上的开发者安装指南可以在 <a href="https://cirq.readthedocs.io/en/latest/install.html#installing-on-linux">这里</a> 找到。但我们在 Ubuntu 16.04 的系统上成功地安装和测试了 Python3 的 Cirq 库,安装步骤如下:在 Ubuntu 上安装 Cirq<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/24/123436fmlz0w5l595m9mw9.jpg">Cirq Framework for Quantum Computing in Linux</a>首先,我们需要 pip 或 pip3 去安装 Cirq。<a href="https://pypi.org/project/pip/">Pip</a> 是推荐用于安装和管理 Python 包的工具。对于 Python 3.x 版本,Pip 能够用如下的命令来安装:<pre class="prettyprint linenums">sudo apt-get install python3-pip</pre>Python3 包能够通过如下的命令来安装:<pre class="prettyprint linenums">pip3 install <package-name></pre>我们继续去使用 Pip3 为 Python3 安装 Cirq 库:<pre class="prettyprint linenums">pip3 install cirq</pre>启用 Plot 和 PDF 生成(可选)可选系统的依赖没有被 Pip 安装的,可以使用如下命令去安装它:<pre class="prettyprint linenums">sudo apt-get install python3-tk texlive-latex-base latexmk</pre>python3-tk 是 Python 自有的启用了绘图功能的图形库texlive-latex-base 和 latexmk 启动了 PDF 输出功能。最后,我们使用如下的命令和代码成功测试了 Cirq:<pre class="prettyprint linenums">python3 -c 'import cirq; print(cirq.google.Foxtail)'</pre>我们得到的输出如下图:<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/24/123437odjd7ddwwqdzi2zw.jpg">Media</a>为 Cirq 配置 Pycharm IDE我们也配置了一个 Python IDE <a href="https://itsfoss.com/install-pycharm-ubuntu/">PyCharm</a> 去测试同样的结果:因为在我们的 Linux 系统上为…
命令别名:定义自己的命令
学习如何创建别名:你可以将太长或难以记忆的命令打包成你自己构建的命令。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/24/125355ud71kkwkk54w4oe5.jpg">Media</a>命令别名Alias在 Linux shell 中指的是将一些太长或者太难记的多个命令组合起来,成为一个由用户自己构建的命令。可以通过 alias 命令来创建命令别名。在 alias 后面跟上想要创建的别名名称、一个等号(=),以及希望使用这个别名来执行的命令,这样一个命令别名就创建好了。举个例子,ls 命令在默认情况下是不会对输出的内容进行着色的,这样就不能让用户一眼分辨出目录、文件和连接了。对此,可以创建这样一个命令别名,在输出目录内容的时候为输出内容着色:<pre class="prettyprint linenums">alias lc='ls --color=auto'</pre>其中 lc 是自定义的命令别名,代表 “list with color” 的意思。在创建命令别名的时候,需要先确认使用的别名是不是已经有对应的命令了,如果有的话,原本的命令就会被覆盖掉了。注意,定义命令别名的时候,= 两端是没有空格的。当运行 lc 的时候,就相当于执行了 ls --color 命令。此后,执行 lc 列出目录内容的时候,就会输出带有着色的内容了。你可能会发现你在执行 ls 的时候,本来就是输出带有着色的内容。那是因为大部分 Linux 发行版都已经将 ls 设定为带有着色的命令别名了。可以直接使用的命令别名实际上,执行不带任何内容的 alias 命令就可…
学习如何创建别名:你可以将太长或难以记忆的命令打包成你自己构建的命令。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/24/125355ud71kkwkk54w4oe5.jpg">Media</a>命令别名Alias在 Linux shell 中指的是将一些太长或者太难记的多个命令组合起来,成为一个由用户自己构建的命令。可以通过 alias 命令来创建命令别名。在 alias 后面跟上想要创建的别名名称、一个等号(=),以及希望使用这个别名来执行的命令,这样一个命令别名就创建好了。举个例子,ls 命令在默认情况下是不会对输出的内容进行着色的,这样就不能让用户一眼分辨出目录、文件和连接了。对此,可以创建这样一个命令别名,在输出目录内容的时候为输出内容着色:<pre class="prettyprint linenums">alias lc='ls --color=auto'</pre>其中 lc 是自定义的命令别名,代表 “list with color” 的意思。在创建命令别名的时候,需要先确认使用的别名是不是已经有对应的命令了,如果有的话,原本的命令就会被覆盖掉了。注意,定义命令别名的时候,= 两端是没有空格的。当运行 lc 的时候,就相当于执行了 ls --color 命令。此后,执行 lc 列出目录内容的时候,就会输出带有着色的内容了。你可能会发现你在执行 ls 的时候,本来就是输出带有着色的内容。那是因为大部分 Linux 发行版都已经将 ls 设定为带有着色的命令别名了。可以直接使用的命令别名实际上,执行不带任何内容的 alias 命令就可…
通过询问-响应身份认证提高桌面登录安全
有时候,生产环境会采用通过 Yubikey 使用一次性密码(OTP)的设置,然而,在家庭或个人的系统上,你可能更喜欢询问-响应设置。一切都是本地的,这种方法不需要通过远程网络调用。Media
via https://linux.cn/article-10378-1.html
有时候,生产环境会采用通过 Yubikey 使用一次性密码(OTP)的设置,然而,在家庭或个人的系统上,你可能更喜欢询问-响应设置。一切都是本地的,这种方法不需要通过远程网络调用。Media
via https://linux.cn/article-10378-1.html
通过询问-响应身份认证提高桌面登录安全
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/24/134303a0p8zidc8lar81pn.png">Media</a>介绍今天,Fedora 提供了多种方式来提高我们账户的身份认证的安全性。当然,它有我们熟悉的用户名密码登录方式,它也同样提供了其他的身份认证选项,比如生物识别、指纹、智能卡、一次性密码,甚至是询问-响应challenge-response身份认证。每种认证方式都有明确的优缺点。这点本身就可以成为一篇相当冗长的文章的主题。Fedora 杂志之前就已经介绍过了这其中的一些选项:<a href="https://fedoramagazine.org/using-the-yubikey4-with-fedora/">在 Fedora 中使用 YubiKey4</a><a href="https://fedoramagazine.org/fedora-28-better-smart-card-support-openssh/">Fedora 28:在 OpenSSH 中更好的支持智能卡</a>在现在的 Fedora 版本中,最安全的方法之一就是离线硬件询问-响应。它也同样是最容易部署的方法之一。下面是具体方法。询问-响应认证从技术上来讲,当你输入密码的时候,你就正在响应用户名询问。离线的询问、响应包含了这些部分:首先是需要你的用户名,接下来,Fedora 会要你提供一个加密的物理硬件的令牌。令牌会把另一个其存储的加密密钥通过可插入式身份认证Pluggable Authentication Module模块(PAM)框架来响应询问。最后,Fedora 才会提示你输入密码。这可以防止其他人仅仅使用了找到的硬件令牌,或是只使用了账户名密码而没有正确的加密密钥。这意味着除了你的账户名密码之外,你必须事先在你的操作系统中注册了一个或…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/24/134303a0p8zidc8lar81pn.png">Media</a>介绍今天,Fedora 提供了多种方式来提高我们账户的身份认证的安全性。当然,它有我们熟悉的用户名密码登录方式,它也同样提供了其他的身份认证选项,比如生物识别、指纹、智能卡、一次性密码,甚至是询问-响应challenge-response身份认证。每种认证方式都有明确的优缺点。这点本身就可以成为一篇相当冗长的文章的主题。Fedora 杂志之前就已经介绍过了这其中的一些选项:<a href="https://fedoramagazine.org/using-the-yubikey4-with-fedora/">在 Fedora 中使用 YubiKey4</a><a href="https://fedoramagazine.org/fedora-28-better-smart-card-support-openssh/">Fedora 28:在 OpenSSH 中更好的支持智能卡</a>在现在的 Fedora 版本中,最安全的方法之一就是离线硬件询问-响应。它也同样是最容易部署的方法之一。下面是具体方法。询问-响应认证从技术上来讲,当你输入密码的时候,你就正在响应用户名询问。离线的询问、响应包含了这些部分:首先是需要你的用户名,接下来,Fedora 会要你提供一个加密的物理硬件的令牌。令牌会把另一个其存储的加密密钥通过可插入式身份认证Pluggable Authentication Module模块(PAM)框架来响应询问。最后,Fedora 才会提示你输入密码。这可以防止其他人仅仅使用了找到的硬件令牌,或是只使用了账户名密码而没有正确的加密密钥。这意味着除了你的账户名密码之外,你必须事先在你的操作系统中注册了一个或…
如何构建一台网络引导服务器(一)
网络引导 服务器能够被配置为基于网络去提供一个完整的操作系统,以便于客户端计算机从一个中央位置获取配置。Media
via https://linux.cn/article-10379-1.html
网络引导 服务器能够被配置为基于网络去提供一个完整的操作系统,以便于客户端计算机从一个中央位置获取配置。Media
via https://linux.cn/article-10379-1.html
如何构建一台网络引导服务器(一)
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/24/234952f3k3rr8zpw6873p3.jpg">Media</a>有些计算机网络需要在各个物理机器上维护相同的软件和配置。学校的计算机实验室就是这样的一个环境。 <a href="https://en.wikipedia.org/wiki/Network_booting">网络引导</a> 服务器能够被配置为基于网络去提供一个完整的操作系统,以便于客户端计算机从一个中央位置获取配置。本教程将向你展示构建一台网络引导服务器的一种方法。本教程的第一部分将包括创建一台网络引导服务器和镜像。第二部分将展示如何去添加 Kerberos 验证的家目录到网络引导配置中。初始化配置首先去下载 Fedora 服务器的 <a href="https://dl.fedoraproject.org/pub/fedora/linux/releases/28/Server/x86_64/iso/">netinst</a> 镜像,将它刻录到一张光盘上,然后用它引导服务器来重新格式化。我们只需要一个典型的 Fedora Server 的“最小化安装”来作为我们的开端,安装完成后,我们可以使用命令行去添加我们需要的任何额外的包。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/24/234954ec6socvjz8l6js6g.png">Media</a>注意:本教程中我们将使用 Fedora 28。其它版本在“最小化安装”中包含的包可能略有不同。如果你使用的是不同的 Fedora 版本,如果一个预期的文件或命令不可用,你可能需要做一些调试。最小化安装的 Fedora Server 运行起来之后,以 root 用户登入:<pre class="prettyprint linenums">$ sudo -i</pre>并设置主机名字:<pre class="prettyprint linenums">$ MY_HOSTNAME=server-01.example.edu$ hostnamectl set-hostname $MY_HOSTNAME</pre>注意:Red Hat 建议静态和临时名字应都要与这个机器在 DNS 中的完全合格域ࡧ…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/24/234952f3k3rr8zpw6873p3.jpg">Media</a>有些计算机网络需要在各个物理机器上维护相同的软件和配置。学校的计算机实验室就是这样的一个环境。 <a href="https://en.wikipedia.org/wiki/Network_booting">网络引导</a> 服务器能够被配置为基于网络去提供一个完整的操作系统,以便于客户端计算机从一个中央位置获取配置。本教程将向你展示构建一台网络引导服务器的一种方法。本教程的第一部分将包括创建一台网络引导服务器和镜像。第二部分将展示如何去添加 Kerberos 验证的家目录到网络引导配置中。初始化配置首先去下载 Fedora 服务器的 <a href="https://dl.fedoraproject.org/pub/fedora/linux/releases/28/Server/x86_64/iso/">netinst</a> 镜像,将它刻录到一张光盘上,然后用它引导服务器来重新格式化。我们只需要一个典型的 Fedora Server 的“最小化安装”来作为我们的开端,安装完成后,我们可以使用命令行去添加我们需要的任何额外的包。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/24/234954ec6socvjz8l6js6g.png">Media</a>注意:本教程中我们将使用 Fedora 28。其它版本在“最小化安装”中包含的包可能略有不同。如果你使用的是不同的 Fedora 版本,如果一个预期的文件或命令不可用,你可能需要做一些调试。最小化安装的 Fedora Server 运行起来之后,以 root 用户登入:<pre class="prettyprint linenums">$ sudo -i</pre>并设置主机名字:<pre class="prettyprint linenums">$ MY_HOSTNAME=server-01.example.edu$ hostnamectl set-hostname $MY_HOSTNAME</pre>注意:Red Hat 建议静态和临时名字应都要与这个机器在 DNS 中的完全合格域ࡧ…
如何使用 Fedora IoT 点亮 LED 灯
如果你喜欢 Fedora、容器,而且有一块树莓派,那么这三者结合操控 LED 会怎么样?本文介绍的是 Fedora IoT,将展示如何在树莓派上安装预览镜像。还将学习如何与 GPIO 交互以点亮 LED。Media
via https://linux.cn/article-10380-1.html
如果你喜欢 Fedora、容器,而且有一块树莓派,那么这三者结合操控 LED 会怎么样?本文介绍的是 Fedora IoT,将展示如何在树莓派上安装预览镜像。还将学习如何与 GPIO 交互以点亮 LED。Media
via https://linux.cn/article-10380-1.html
如何使用 Fedora IoT 点亮 LED 灯
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/25/002456eqq5cypt46lqayhs.jpg">Media</a>如果你喜欢 Fedora、容器,而且有一块树莓派,那么这三者结合操控 LED 会怎么样?本文介绍的是 Fedora IoT,将展示如何在树莓派上安装预览镜像。还将学习如何与 GPIO 交互以点亮 LED。什么是 Fedora IoT?Fedora IoT 是当前 Fedora 项目的目标之一,计划成为一个完整的 Fedora 版本。Fedora IoT 将是一个在 ARM(目前仅限 aarch64)设备上(例如树莓派),以及 x86_64 架构上运行的系统。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/25/002429tsmzqg7ssf1qqsgj.jpg">Media</a>Fedora IoT 基于 OSTree 开发,就像 <a href="https://teamsilverblue.org/">Fedora Silverblue</a> 和以往的 <a href="https://www.projectatomic.io/">Atomic Host</a>。下载和安装 Fedora IoT官方 Fedora IoT 镜像将和 Fedora 29 一起发布。但是在此期间你可以下载 <a href="https://kojipkgs.fedoraproject.org/compose/iot/latest-Fedora-IoT-28/compose/IoT/">基于 Fedora 28 的镜像</a> 来进行这个实验。(LCTT 译注:截止至本译文发布,<a href="https://fedoramagazine.org/announcing-fedora-29/">Fedora 29 已经发布了</a>,但是 IoT 版本并未随同发布,或许会在 Fedora 30 一同发布?)你有两种方法来安装这个系统:要么使用 dd 命令烧录 SD 卡,或者使用 fedora-arm-installer 工具。Fedora 的 Wiki 里面提供了为 IoT <a href="https://fedoraproject.org/wiki/InternetOfThings/GettingStarted#Setting_up_a_Physical_Device">设置物理设备</a> 的更多信息。另外,你可能需要调整第三个分区的大小。把 SD 卡插入到设备后,你需要创建一个用户来完成安装。这个步骤需要串行连接或一个 HDMI 显示器和键盘来与设备进行交互。当系统安装完成后,下一步就是要设置网络连接。使用你刚才创建的用户登录系统,可以使用下列…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/25/002456eqq5cypt46lqayhs.jpg">Media</a>如果你喜欢 Fedora、容器,而且有一块树莓派,那么这三者结合操控 LED 会怎么样?本文介绍的是 Fedora IoT,将展示如何在树莓派上安装预览镜像。还将学习如何与 GPIO 交互以点亮 LED。什么是 Fedora IoT?Fedora IoT 是当前 Fedora 项目的目标之一,计划成为一个完整的 Fedora 版本。Fedora IoT 将是一个在 ARM(目前仅限 aarch64)设备上(例如树莓派),以及 x86_64 架构上运行的系统。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/25/002429tsmzqg7ssf1qqsgj.jpg">Media</a>Fedora IoT 基于 OSTree 开发,就像 <a href="https://teamsilverblue.org/">Fedora Silverblue</a> 和以往的 <a href="https://www.projectatomic.io/">Atomic Host</a>。下载和安装 Fedora IoT官方 Fedora IoT 镜像将和 Fedora 29 一起发布。但是在此期间你可以下载 <a href="https://kojipkgs.fedoraproject.org/compose/iot/latest-Fedora-IoT-28/compose/IoT/">基于 Fedora 28 的镜像</a> 来进行这个实验。(LCTT 译注:截止至本译文发布,<a href="https://fedoramagazine.org/announcing-fedora-29/">Fedora 29 已经发布了</a>,但是 IoT 版本并未随同发布,或许会在 Fedora 30 一同发布?)你有两种方法来安装这个系统:要么使用 dd 命令烧录 SD 卡,或者使用 fedora-arm-installer 工具。Fedora 的 Wiki 里面提供了为 IoT <a href="https://fedoraproject.org/wiki/InternetOfThings/GettingStarted#Setting_up_a_Physical_Device">设置物理设备</a> 的更多信息。另外,你可能需要调整第三个分区的大小。把 SD 卡插入到设备后,你需要创建一个用户来完成安装。这个步骤需要串行连接或一个 HDMI 显示器和键盘来与设备进行交互。当系统安装完成后,下一步就是要设置网络连接。使用你刚才创建的用户登录系统,可以使用下列…
以 Linux 的方式庆祝圣诞节
为了延续节日氛围,我将向你展示一些非常棒的圣诞主题的 Linux 壁纸。在呈现这些壁纸之前,先来看一棵 Linux 终端下的圣诞树。Media
via https://linux.cn/article-10381-1.html
为了延续节日氛围,我将向你展示一些非常棒的圣诞主题的 Linux 壁纸。在呈现这些壁纸之前,先来看一棵 Linux 终端下的圣诞树。Media
via https://linux.cn/article-10381-1.html
以 Linux 的方式庆祝圣诞节
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/25/011422uz6z1iy36wy6nmcn.jpg">Media当前正是假日季,很多人可能已经在庆祝圣诞节了。祝你圣诞快乐,新年快乐。为了延续节日氛围,我将向你展示一些非常棒的圣诞主题的 <a href="https://itsfoss.com/beautiful-linux-wallpapers/">Linux 壁纸。在呈现这些壁纸之前,先来看一棵 Linux 终端下的圣诞树。让你的桌面飘雪(针对 GNOME 用户)如果您在 Ubuntu 18.04 或任何其他 Linux 发行版中使用 GNOME 桌面,您可以使用一个小的 <a href="https://itsfoss.com/gnome-shell-extensions/">GNOME 扩展并在桌面上飘雪。您可以从软件中心或 GNOME 扩展网站获取此 gsnow 扩展。我建议您阅读一些关于<a href="https://itsfoss.com/gnome-shell-extensions/">使用 GNOME 扩展的内容。安装此扩展程序后,您会在顶部面板上看到一个小雪花图标。 如果您单击一次,您会看到桌面屏幕上的小絮状物掉落。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/25/012642ddkh5ze13e1sweez.gif">Media你可以再次点击该图标来禁止雪花落下。在 Linux 终端下显示圣诞树<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/25/083753hb45bqq55kqb4b4b.gif">Media如果你想要在终端里显示一个动画的圣诞树,你可以使用如下命令:<pre class="prettyprint linenums">curl https://raw.githubusercontent.com/sergiolepore/ChristBASHTree/master/tree-EN.sh | bash</pre>要是不想一直从互联网上获取这棵圣诞树,也可以从它的 <a href="https://github.com/sergiolepore/ChristBASHTree">GitHub 仓库 中获取对应的 shell 脚本,更改权限之后按照运行普通 shell 脚本的方式运行它。使用 Perl 在 Linux 终端下显示圣诞树<a href="https://itsfoss.com/christmas-linux-wallpaper/perl-tree/">Christmas Tree in Linux terminal by NixCraft这个技巧最初由 <a href="https://www.cyberciti.biz/open-source/command-line-hacks/linux-unix-desktop-fun-christmas-tree-for-your-terminal/">NixCraft 分享,你需要为此安装 Perl 模块。说实话,我不喜欢使用 Perl 模块,因为卸载它们真的很痛苦。所以使用这个 Perl 模块时需谨记,你必须手动移除它。<pre class="prettyprint linenums">perl -MCPAN -e 'install Acme:MediaOE::Tree'</pre>你可以阅读 <a href="https://www.cyberciti.biz/open-source/command-line-hacks/linux-unix-desktop-fun-christmas-tree-for-your-terminal/">原文 来了解更多信息。下载 Linux 圣诞主题壁纸所有这些 Linux 圣诞主题壁纸都是由 Mark Riedesel 制作的,你可以在 <a href="http://www.klowner.com/">他的网站 上找到很多其他艺术品。自 2002 年以来,他几乎每年都在制作这样的壁纸。可以理解的是,最早的一些壁纸不具有现代的宽高比。我把它们按时间倒序排列。注意一个小地方,这里显示的图片都是高度压缩的,因此你要通过图片下方提供的链接进行下载。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/25/012645u9pqo24vq49pzg7z.jpg">Christmas Linux Wallpaper<em>下载此壁纸</em><a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/25/011455hp3tz2ydj3hjwtat.jpg">Christmas Linux Wallpaper<em>下载此壁纸</em><a href="https://itsfoss.com/christmas-linux-wallpaper/christmastux2016_3840x2160_result/">Christmas Linux Wallpapers<em>下载此壁纸</em><a href="https://itsfoss.com/christmas-linux-wallpaper/christmastux2015_2560x1920_result/">Christmas Linux Wallpapers<em>下载此壁纸</em><a href="https://itsfoss.com/christmas-linux-wallpaper/christmastux2014_2560x1440_result/">Christmas Linux Wallpapers<em>下载此壁纸</em><a href="https://itsfoss.com/christmas-linux-wallpaper/christmastux2013_result/">Christmas Linux Wallpapers<em>下载此壁纸</em><a href="https://itsfoss.com/christmas-linux-wallpaper/christmastux2012_2560x1440_result/">Christmas Linux Wallpapers<em>下载此壁纸</em><a href="https://itsfoss.com/christmas-linux-wallpaper/christmastux2011_2560x1440_result/">Christmas Linux Wallpapers<em>下载此壁纸</em><a href="https://itsfoss.com/christmas-linux-wallpaper/christmastux2010_5120x2880_result/">Christmas Linux Wallpapers<em>下载此壁纸</em><a href="https://itsfoss.com/christmas-linux-wallpaper/christmastux2009_1600x1200_result/">Christmas Linux Wallpapers<em>下载此壁纸</em><a href="https://itsfoss.com/christmas-linux-wallpaper/christmastux2008_2560x1600_result/">Christmas Linux Wallpapers<em>下载此壁纸</em><a href="https://itsfoss.com/christmas-linux-wallpaper/christmastux2007_2560x1600_result/">Christmas Linux Wallpapers<em>下载此壁纸</em><a href="https://itsfoss.com/christmas-linux-wallpaper/christmastux2006_1024x768_result/">Christmas Linux Wallpapers<em>下载此壁纸</em><a href="https://itsfoss.com/christmas-linux-wallpaper/christmastux2005_1600x1200_result/">Christmas Linux Wallpapers<em>下载此壁纸</em><a href="https://itsfoss.com/christmas-linux-wallpaper/christmastux2004_1600x1200_result/">Christmas Linux Wallpapers<em>下载此壁纸</em><a href="https://itsfoss.com/christmas-linux-wallpaper/christmastux2002_1600x1200_result/">Christmas Linux Wallpapers<em>下载…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/25/011422uz6z1iy36wy6nmcn.jpg">Media当前正是假日季,很多人可能已经在庆祝圣诞节了。祝你圣诞快乐,新年快乐。为了延续节日氛围,我将向你展示一些非常棒的圣诞主题的 <a href="https://itsfoss.com/beautiful-linux-wallpapers/">Linux 壁纸。在呈现这些壁纸之前,先来看一棵 Linux 终端下的圣诞树。让你的桌面飘雪(针对 GNOME 用户)如果您在 Ubuntu 18.04 或任何其他 Linux 发行版中使用 GNOME 桌面,您可以使用一个小的 <a href="https://itsfoss.com/gnome-shell-extensions/">GNOME 扩展并在桌面上飘雪。您可以从软件中心或 GNOME 扩展网站获取此 gsnow 扩展。我建议您阅读一些关于<a href="https://itsfoss.com/gnome-shell-extensions/">使用 GNOME 扩展的内容。安装此扩展程序后,您会在顶部面板上看到一个小雪花图标。 如果您单击一次,您会看到桌面屏幕上的小絮状物掉落。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/25/012642ddkh5ze13e1sweez.gif">Media你可以再次点击该图标来禁止雪花落下。在 Linux 终端下显示圣诞树<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/25/083753hb45bqq55kqb4b4b.gif">Media如果你想要在终端里显示一个动画的圣诞树,你可以使用如下命令:<pre class="prettyprint linenums">curl https://raw.githubusercontent.com/sergiolepore/ChristBASHTree/master/tree-EN.sh | bash</pre>要是不想一直从互联网上获取这棵圣诞树,也可以从它的 <a href="https://github.com/sergiolepore/ChristBASHTree">GitHub 仓库 中获取对应的 shell 脚本,更改权限之后按照运行普通 shell 脚本的方式运行它。使用 Perl 在 Linux 终端下显示圣诞树<a href="https://itsfoss.com/christmas-linux-wallpaper/perl-tree/">Christmas Tree in Linux terminal by NixCraft这个技巧最初由 <a href="https://www.cyberciti.biz/open-source/command-line-hacks/linux-unix-desktop-fun-christmas-tree-for-your-terminal/">NixCraft 分享,你需要为此安装 Perl 模块。说实话,我不喜欢使用 Perl 模块,因为卸载它们真的很痛苦。所以使用这个 Perl 模块时需谨记,你必须手动移除它。<pre class="prettyprint linenums">perl -MCPAN -e 'install Acme:MediaOE::Tree'</pre>你可以阅读 <a href="https://www.cyberciti.biz/open-source/command-line-hacks/linux-unix-desktop-fun-christmas-tree-for-your-terminal/">原文 来了解更多信息。下载 Linux 圣诞主题壁纸所有这些 Linux 圣诞主题壁纸都是由 Mark Riedesel 制作的,你可以在 <a href="http://www.klowner.com/">他的网站 上找到很多其他艺术品。自 2002 年以来,他几乎每年都在制作这样的壁纸。可以理解的是,最早的一些壁纸不具有现代的宽高比。我把它们按时间倒序排列。注意一个小地方,这里显示的图片都是高度压缩的,因此你要通过图片下方提供的链接进行下载。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/25/012645u9pqo24vq49pzg7z.jpg">Christmas Linux Wallpaper<em>下载此壁纸</em><a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/25/011455hp3tz2ydj3hjwtat.jpg">Christmas Linux Wallpaper<em>下载此壁纸</em><a href="https://itsfoss.com/christmas-linux-wallpaper/christmastux2016_3840x2160_result/">Christmas Linux Wallpapers<em>下载此壁纸</em><a href="https://itsfoss.com/christmas-linux-wallpaper/christmastux2015_2560x1920_result/">Christmas Linux Wallpapers<em>下载此壁纸</em><a href="https://itsfoss.com/christmas-linux-wallpaper/christmastux2014_2560x1440_result/">Christmas Linux Wallpapers<em>下载此壁纸</em><a href="https://itsfoss.com/christmas-linux-wallpaper/christmastux2013_result/">Christmas Linux Wallpapers<em>下载此壁纸</em><a href="https://itsfoss.com/christmas-linux-wallpaper/christmastux2012_2560x1440_result/">Christmas Linux Wallpapers<em>下载此壁纸</em><a href="https://itsfoss.com/christmas-linux-wallpaper/christmastux2011_2560x1440_result/">Christmas Linux Wallpapers<em>下载此壁纸</em><a href="https://itsfoss.com/christmas-linux-wallpaper/christmastux2010_5120x2880_result/">Christmas Linux Wallpapers<em>下载此壁纸</em><a href="https://itsfoss.com/christmas-linux-wallpaper/christmastux2009_1600x1200_result/">Christmas Linux Wallpapers<em>下载此壁纸</em><a href="https://itsfoss.com/christmas-linux-wallpaper/christmastux2008_2560x1600_result/">Christmas Linux Wallpapers<em>下载此壁纸</em><a href="https://itsfoss.com/christmas-linux-wallpaper/christmastux2007_2560x1600_result/">Christmas Linux Wallpapers<em>下载此壁纸</em><a href="https://itsfoss.com/christmas-linux-wallpaper/christmastux2006_1024x768_result/">Christmas Linux Wallpapers<em>下载此壁纸</em><a href="https://itsfoss.com/christmas-linux-wallpaper/christmastux2005_1600x1200_result/">Christmas Linux Wallpapers<em>下载此壁纸</em><a href="https://itsfoss.com/christmas-linux-wallpaper/christmastux2004_1600x1200_result/">Christmas Linux Wallpapers<em>下载此壁纸</em><a href="https://itsfoss.com/christmas-linux-wallpaper/christmastux2002_1600x1200_result/">Christmas Linux Wallpapers<em>下载…
IBM 029 型打孔机
我知道这很学院派,可一行超过 80 个字符的代码还是让我抓狂。我也在网上见过不少人认为即使在现代的视网膜屏幕下也应当采用行长度为 80 个字符的标准,可他们都不理解我对破坏这一标准的怒火,就算多 1 个字符也不行。Media
via https://linux.cn/article-10382-1.html
我知道这很学院派,可一行超过 80 个字符的代码还是让我抓狂。我也在网上见过不少人认为即使在现代的视网膜屏幕下也应当采用行长度为 80 个字符的标准,可他们都不理解我对破坏这一标准的怒火,就算多 1 个字符也不行。Media
via https://linux.cn/article-10382-1.html
IBM 029 型打孔机
我知道这很学院派,可一行超过 80 个字符的代码还是让我抓狂。我也在网上见过不少人认为即使在现代的视网膜屏幕下也应当采用行长度为 80 个字符的标准,可他们都不理解我对破坏这一标准的怒火,就算多 1 个字符也不行。在这一标准的黄金时期,一行代码的长度几乎不会超过 80 个字符的限制。在那时,这一限制是物理的,没有第 81 列用于存放第 81 个字符。每一个试图把函数名起的又长又臭的程序员都会在短暂的愉悦后迎来更多的麻烦,而这仅仅是因为没有足够的空间放下整个函数的声明。这一黄金时期也是打孔卡punch card编程时期。在 20 世纪 60 年代,IBM 打孔卡设立了标准,这个标准就是打孔卡的宽度为 80 列。这个 80 列标准在后来的电传打字机和哑终端时期得以延续,并逐渐成为操作系统中隐藏的细节。时至今日,即使我们用上了更大、更好的屏幕,偏向于使用更长的标识符而不是类似 <code>iswcntrl()</code> 这样令人难以猜测的函数名,可当你打开新的终端模拟器窗口时,默认的宽度依然是 80 个字符。从 Quora 上的很多问题中可以发现,很多人并不能想象如何使用打孔卡给计算机编程。我承认,在很长的一段时间里我也不能理解打孔卡编程是如何工作的,因为这让我想到就像劳工一样不停的给这些打孔卡打孔。当然,这是一个误解,程序员不需要亲自给打孔卡打孔,就像是火车调度员不用亲自扳道岔。程序员们有打孔机card punch machines(也被称为键控打孔机key punches),这让他们可以使用打字机式的键盘给打孔卡打孔。这样的设备在 19 世纪 90 年代时就已经不是什么新技术了。那时,最为广泛使用的打孔机之一便是 IBM 029 型打孔机。就算在今天,它也许是最棒的打孔机。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/25/144551dtit8dpgprga5p3n.jpg">Media</a>IBM 029 型打孔机在 1964 年作为 IBM 的 System/360 大型电脑的配件发售的。System/360 是计算系统与外设所组成的一个系列,在 20 世纪 60 年代晚期,它几乎垄断了整个大型计算机市场。就像其它 System/360 外设一样,029 型打孔机也是个大块头。那时,计算机和家具的界限还很模糊,但 029 型打孔机可不是那种会占领你的整张桌子的机器。它改进自 026 型打孔机,增加了新的字符支持,如括号,总体上也更加安静。与前辈 026 型所展出 20 世纪 40 年代的圆形按钮与工业化的样貌相比,029 型的按键方正扁平、功能按键还有酷炫的蓝色高亮提示。它的另一个重要买点是它能够在数字区numeric field左侧自动的填充 0 ,这证明了 JavaScript 程序员不是第一批懒得自己做左填充left-padding的程序员。(LCTT 译注:这项功能需要额外的 4 张 <a href="https://en.wikipedia.org/wiki/IBM_Standard_Modular_System">标准模块系统卡</a>SMS card才能使用。例如设置数字区域长度为 6 列时,操作员只需要输入 73 ,打孔机会自动填充起始位置上的 4 个 0 ,故最终输出 000073。<a href="https://en.wikipedia.org/wiki/Keypunch#IBM_029_Card_Punch">更多信息</a>)等等!你说的是 IBM 在 1964 年发布了全新的打孔机?你知道那张在贝尔实验室拍摄的 Unix 之父正在使用电传打字机的照片吗?那是哪一年的来着?1970?打孔机不是应该在 20 世纪 60 年代中期到晚期时就过时了吗?是的,你也许会奇怪,为什么直到 1984 年,IBM 的产品目录中还会出现 029 型打孔机的身影 <a href="#fn1">1</a>。事实上,直到 20 世纪 70 年代,大多数程序员仍然在使用打孔卡编程。其实二战期间就已经有人在用电传打字机了,可那时并没能普及。客观的讲,电传打字机几乎和打孔卡一样古老。也许和你想象的恰恰相反,并不是电传打字机本身限制了它的普及,而是计算时间。人们拒绝使用电传打字机的原因是,它是可交互的,它和计算机使用“在线”的传输方式online mode of communication。在以 Unix 为代表的分时操作系统被发明前,你和电脑的交互会被任何人的使用而打断,而这一点延迟通常意味着几千美元的损失。所以程序员们普遍选择离线地使用打孔机编程,再将打孔卡放入大型计算机中,作为批任务batch job执行。在那时,还没有即廉价又可靠的存储设备,可打孔卡的廉价优势已经足够让它成为那时最流行的数据存储方式了。那时的程序是书架上一摞打孔卡而不是硬盘里的一堆文件。那么实际使用 IBM 029 型打孔机是个什么样子呢?这很难向没有实际看过打孔卡的人解释。一张打孔卡通常有 12 行 80 列。打孔卡下面是从 1 到 9 的数字行digit rows,打孔卡上的每一列都有这些行所对应的数字。最上面的三行是空间行zone rows,通常由两行空白行和一行 0 行组成。第 12 行是打孔卡最顶部的行,接下来是 11 行,随后是从数字 0 到 9 所在的行。这个有点让人感到困惑的顺序的原因是打孔卡的上边缘被称为12 边12 edge、下边缘被称为 9 边9 edge。那时,为了让打孔卡便于整理,常常会剪去打孔卡的一个角。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/25/144552j4ce2ze22qc8cdc5.png">Media</a>(LCTT 译注:可参考<a href="https://zh.wikipedia.org/wiki/EBCDIC">EBCDIC 编码</a>)在打孔卡发明之初,孔洞的形状是圆形的,但是 IBM 最终意识到如果使用窄长方形作为孔洞,一张卡就可以放下更多的列了。每一列中孔洞的不同组合就可以表达不同的字符。像 029 型这样的拥有人性化设计的打孔机除了完成本质的打孔任务外,还会在打孔卡最上方打印出每一列所对应的字符。输入是数字就在对应的数字行上打孔。输入的是字母或符号就用一个在空间列的孔和一或俩个在数字列的孔的组合表示,例如字母 A 就用一个在第 12 空间行的空和一个数字 1 所在行的孔表示。这是一种顺序编码,在第一台打孔机被发明后,也叫 Hollerith 编码。这种编码只能表示相对较小的一套字符集,小写字母就没有包含在这套字符集中。如今一些聪明的工程师可能想知道为什么打卡不干脆使用二进制编码 —— 毕竟,有 12 行,你可以编码超过 4000 个字符。 使用 Hollerith 编码是因为它确保在单个列中出现不超过三个孔。这保留了卡的结构强度。二进制编码会带来太多的孔,会因为孔洞过于密集而断裂。打孔卡也有不同。在 20 世纪 60 年代,80 列虽然是标准,但表达的方式不一定相同。基础打孔卡是无标注的,但用于 COBOL 编程的打孔卡会把最后的 8 列保留,供标识数保存使用。这一标识数可以在打孔卡被打乱 (例如一叠打孔卡掉在地上了) 后用于自动排序。此外,第 7 列被用于表示本张打孔卡上的是否与上一张打孔卡一起构成一条语句。也就是说当你真的对 80 字符的限制感到绝望的时候,还可以用两张卡甚至更多的卡拼接成一条长语句。用于 FORTRAN 编程的打孔卡和 COBOL 打孔卡类似,但是定义的列不同。大学里使用的打孔卡通常会由其计算机中心加上水印,其它的设计则会在如 <a href="http://www.jkmscott.net/data/Punched%20card%20013.jpg">1976 年美国独立 200 周年</a> 的特殊场合才会加入。最终,这些打孔卡都要被计算机读取和计算。IBM 出售的 System/360 大型计算机的外设 IBM 2540 可以以每分钟 1000 张打孔卡的速度读取这些卡片<a href="#fn2">2</a> 。IBM 2540 使用电刷扫过每张打孔卡,电刷通过孔洞就可以接触到卡片后面的金属板完成一次读取。一旦读取完毕,System/360 大型计算机就会把每张打孔卡上的数据使用一种定长的 8 位编码保存,这种编码是扩增二进式十进交换码Extended Binary Coded Decimal Interchange Code,简写为 EBCDIC 编码。它是一种二进制编码,可以追溯自早期打孔卡所使用的 BCDIDC 编码 —— 其 6 位编码使用低 4 位表示数字行,高 2 位表示空间行。程序员们在打孔卡上编写完程序后,会把卡片们交给计算机操作员,操作员们会把这些卡片放入 IBM 2540 ,再把打印结果交给程序员。那时的程序员大多都没有见过计算机长什么样。程序员们真正能见到的是很多打孔机。029 型打孔机虽然不是计算机,但这并不意味着它不是一台复杂的机器。看看这个由密歇根大学University of Michigan计算机中心在 1967 年制作的<a href="https://www.youtube.com/watch?v=kaQmAybWn-w">教学视频</a>,你就能更好的理解使用一台 029 型打孔机是什么情形了。我会尽可能在这里总结这段视频,但如果你不去亲自看…
我知道这很学院派,可一行超过 80 个字符的代码还是让我抓狂。我也在网上见过不少人认为即使在现代的视网膜屏幕下也应当采用行长度为 80 个字符的标准,可他们都不理解我对破坏这一标准的怒火,就算多 1 个字符也不行。在这一标准的黄金时期,一行代码的长度几乎不会超过 80 个字符的限制。在那时,这一限制是物理的,没有第 81 列用于存放第 81 个字符。每一个试图把函数名起的又长又臭的程序员都会在短暂的愉悦后迎来更多的麻烦,而这仅仅是因为没有足够的空间放下整个函数的声明。这一黄金时期也是打孔卡punch card编程时期。在 20 世纪 60 年代,IBM 打孔卡设立了标准,这个标准就是打孔卡的宽度为 80 列。这个 80 列标准在后来的电传打字机和哑终端时期得以延续,并逐渐成为操作系统中隐藏的细节。时至今日,即使我们用上了更大、更好的屏幕,偏向于使用更长的标识符而不是类似 <code>iswcntrl()</code> 这样令人难以猜测的函数名,可当你打开新的终端模拟器窗口时,默认的宽度依然是 80 个字符。从 Quora 上的很多问题中可以发现,很多人并不能想象如何使用打孔卡给计算机编程。我承认,在很长的一段时间里我也不能理解打孔卡编程是如何工作的,因为这让我想到就像劳工一样不停的给这些打孔卡打孔。当然,这是一个误解,程序员不需要亲自给打孔卡打孔,就像是火车调度员不用亲自扳道岔。程序员们有打孔机card punch machines(也被称为键控打孔机key punches),这让他们可以使用打字机式的键盘给打孔卡打孔。这样的设备在 19 世纪 90 年代时就已经不是什么新技术了。那时,最为广泛使用的打孔机之一便是 IBM 029 型打孔机。就算在今天,它也许是最棒的打孔机。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/25/144551dtit8dpgprga5p3n.jpg">Media</a>IBM 029 型打孔机在 1964 年作为 IBM 的 System/360 大型电脑的配件发售的。System/360 是计算系统与外设所组成的一个系列,在 20 世纪 60 年代晚期,它几乎垄断了整个大型计算机市场。就像其它 System/360 外设一样,029 型打孔机也是个大块头。那时,计算机和家具的界限还很模糊,但 029 型打孔机可不是那种会占领你的整张桌子的机器。它改进自 026 型打孔机,增加了新的字符支持,如括号,总体上也更加安静。与前辈 026 型所展出 20 世纪 40 年代的圆形按钮与工业化的样貌相比,029 型的按键方正扁平、功能按键还有酷炫的蓝色高亮提示。它的另一个重要买点是它能够在数字区numeric field左侧自动的填充 0 ,这证明了 JavaScript 程序员不是第一批懒得自己做左填充left-padding的程序员。(LCTT 译注:这项功能需要额外的 4 张 <a href="https://en.wikipedia.org/wiki/IBM_Standard_Modular_System">标准模块系统卡</a>SMS card才能使用。例如设置数字区域长度为 6 列时,操作员只需要输入 73 ,打孔机会自动填充起始位置上的 4 个 0 ,故最终输出 000073。<a href="https://en.wikipedia.org/wiki/Keypunch#IBM_029_Card_Punch">更多信息</a>)等等!你说的是 IBM 在 1964 年发布了全新的打孔机?你知道那张在贝尔实验室拍摄的 Unix 之父正在使用电传打字机的照片吗?那是哪一年的来着?1970?打孔机不是应该在 20 世纪 60 年代中期到晚期时就过时了吗?是的,你也许会奇怪,为什么直到 1984 年,IBM 的产品目录中还会出现 029 型打孔机的身影 <a href="#fn1">1</a>。事实上,直到 20 世纪 70 年代,大多数程序员仍然在使用打孔卡编程。其实二战期间就已经有人在用电传打字机了,可那时并没能普及。客观的讲,电传打字机几乎和打孔卡一样古老。也许和你想象的恰恰相反,并不是电传打字机本身限制了它的普及,而是计算时间。人们拒绝使用电传打字机的原因是,它是可交互的,它和计算机使用“在线”的传输方式online mode of communication。在以 Unix 为代表的分时操作系统被发明前,你和电脑的交互会被任何人的使用而打断,而这一点延迟通常意味着几千美元的损失。所以程序员们普遍选择离线地使用打孔机编程,再将打孔卡放入大型计算机中,作为批任务batch job执行。在那时,还没有即廉价又可靠的存储设备,可打孔卡的廉价优势已经足够让它成为那时最流行的数据存储方式了。那时的程序是书架上一摞打孔卡而不是硬盘里的一堆文件。那么实际使用 IBM 029 型打孔机是个什么样子呢?这很难向没有实际看过打孔卡的人解释。一张打孔卡通常有 12 行 80 列。打孔卡下面是从 1 到 9 的数字行digit rows,打孔卡上的每一列都有这些行所对应的数字。最上面的三行是空间行zone rows,通常由两行空白行和一行 0 行组成。第 12 行是打孔卡最顶部的行,接下来是 11 行,随后是从数字 0 到 9 所在的行。这个有点让人感到困惑的顺序的原因是打孔卡的上边缘被称为12 边12 edge、下边缘被称为 9 边9 edge。那时,为了让打孔卡便于整理,常常会剪去打孔卡的一个角。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/25/144552j4ce2ze22qc8cdc5.png">Media</a>(LCTT 译注:可参考<a href="https://zh.wikipedia.org/wiki/EBCDIC">EBCDIC 编码</a>)在打孔卡发明之初,孔洞的形状是圆形的,但是 IBM 最终意识到如果使用窄长方形作为孔洞,一张卡就可以放下更多的列了。每一列中孔洞的不同组合就可以表达不同的字符。像 029 型这样的拥有人性化设计的打孔机除了完成本质的打孔任务外,还会在打孔卡最上方打印出每一列所对应的字符。输入是数字就在对应的数字行上打孔。输入的是字母或符号就用一个在空间列的孔和一或俩个在数字列的孔的组合表示,例如字母 A 就用一个在第 12 空间行的空和一个数字 1 所在行的孔表示。这是一种顺序编码,在第一台打孔机被发明后,也叫 Hollerith 编码。这种编码只能表示相对较小的一套字符集,小写字母就没有包含在这套字符集中。如今一些聪明的工程师可能想知道为什么打卡不干脆使用二进制编码 —— 毕竟,有 12 行,你可以编码超过 4000 个字符。 使用 Hollerith 编码是因为它确保在单个列中出现不超过三个孔。这保留了卡的结构强度。二进制编码会带来太多的孔,会因为孔洞过于密集而断裂。打孔卡也有不同。在 20 世纪 60 年代,80 列虽然是标准,但表达的方式不一定相同。基础打孔卡是无标注的,但用于 COBOL 编程的打孔卡会把最后的 8 列保留,供标识数保存使用。这一标识数可以在打孔卡被打乱 (例如一叠打孔卡掉在地上了) 后用于自动排序。此外,第 7 列被用于表示本张打孔卡上的是否与上一张打孔卡一起构成一条语句。也就是说当你真的对 80 字符的限制感到绝望的时候,还可以用两张卡甚至更多的卡拼接成一条长语句。用于 FORTRAN 编程的打孔卡和 COBOL 打孔卡类似,但是定义的列不同。大学里使用的打孔卡通常会由其计算机中心加上水印,其它的设计则会在如 <a href="http://www.jkmscott.net/data/Punched%20card%20013.jpg">1976 年美国独立 200 周年</a> 的特殊场合才会加入。最终,这些打孔卡都要被计算机读取和计算。IBM 出售的 System/360 大型计算机的外设 IBM 2540 可以以每分钟 1000 张打孔卡的速度读取这些卡片<a href="#fn2">2</a> 。IBM 2540 使用电刷扫过每张打孔卡,电刷通过孔洞就可以接触到卡片后面的金属板完成一次读取。一旦读取完毕,System/360 大型计算机就会把每张打孔卡上的数据使用一种定长的 8 位编码保存,这种编码是扩增二进式十进交换码Extended Binary Coded Decimal Interchange Code,简写为 EBCDIC 编码。它是一种二进制编码,可以追溯自早期打孔卡所使用的 BCDIDC 编码 —— 其 6 位编码使用低 4 位表示数字行,高 2 位表示空间行。程序员们在打孔卡上编写完程序后,会把卡片们交给计算机操作员,操作员们会把这些卡片放入 IBM 2540 ,再把打印结果交给程序员。那时的程序员大多都没有见过计算机长什么样。程序员们真正能见到的是很多打孔机。029 型打孔机虽然不是计算机,但这并不意味着它不是一台复杂的机器。看看这个由密歇根大学University of Michigan计算机中心在 1967 年制作的<a href="https://www.youtube.com/watch?v=kaQmAybWn-w">教学视频</a>,你就能更好的理解使用一台 029 型打孔机是什么情形了。我会尽可能在这里总结这段视频,但如果你不去亲自看…
7 个最佳 Linux 电子书阅读器
本文中我们涉及一些 Linux 最佳电子书阅读器。这些应用提供更佳的阅读体验甚至可以管理你的电子书。Media
via https://linux.cn/article-10383-1.html
本文中我们涉及一些 Linux 最佳电子书阅读器。这些应用提供更佳的阅读体验甚至可以管理你的电子书。Media
via https://linux.cn/article-10383-1.html
7 个最佳 Linux 电子书阅读器
<strong>摘要:</strong> 本文中我们涉及一些 Linux 最佳电子书阅读器。这些应用提供更佳的阅读体验甚至可以管理你的电子书。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/25/221743h534kuezeu46iq54.png">最佳 Linux 电子书阅读器</a>最近,随着人们发现在手持设备、Kindle 或者 PC 上阅读更加舒适,对电子图书的需求有所增加。至于 Linux 用户,也有各种电子书应用满足你阅读和整理电子书的需求。在本文中,我们选出了七个最佳 Linux 电子书阅读器。这些电子书阅读器最适合 pdf、epub 和其他电子书格式。我提供的是 Ubuntu 安装说明,因为我现在使用它。如果你使用的是<a href="https://itsfoss.com/non-ubuntu-beginner-linux/">非 Ubuntu 发行版</a>,你能在你的发行版软件仓库中找到大多数这些电子书应用。1. Calibre<a href="https://www.calibre-ebook.com">Calibre</a> 是 Linux 最受欢迎的电子书应用。老实说,这不仅仅是一个简单的电子书阅读器。它是一个完整的电子书解决方案。你甚至能<a href="https://itsfoss.com/create-ebook-calibre-linux/">通过 Calibre 创建专业的电子书</a>。通过强大的电子书管理和易用的界面,它提供了创建和编辑电子书的功能。Calibre 支持多种格式和与其它电子书阅读器同步。它也可以让你轻松转换一种电子书格式到另一种。Calibre 最大的缺点是,资源消耗太多,因此作为一个独立的电子阅读器来说是一个艰难的选择。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/25/221744rnsapnq84pxkpqxa.jpg">Calibre</a>特性管理电子书:Calibre 通过管理元数据来排序和分组电子书。你能从各…
<strong>摘要:</strong> 本文中我们涉及一些 Linux 最佳电子书阅读器。这些应用提供更佳的阅读体验甚至可以管理你的电子书。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/25/221743h534kuezeu46iq54.png">最佳 Linux 电子书阅读器</a>最近,随着人们发现在手持设备、Kindle 或者 PC 上阅读更加舒适,对电子图书的需求有所增加。至于 Linux 用户,也有各种电子书应用满足你阅读和整理电子书的需求。在本文中,我们选出了七个最佳 Linux 电子书阅读器。这些电子书阅读器最适合 pdf、epub 和其他电子书格式。我提供的是 Ubuntu 安装说明,因为我现在使用它。如果你使用的是<a href="https://itsfoss.com/non-ubuntu-beginner-linux/">非 Ubuntu 发行版</a>,你能在你的发行版软件仓库中找到大多数这些电子书应用。1. Calibre<a href="https://www.calibre-ebook.com">Calibre</a> 是 Linux 最受欢迎的电子书应用。老实说,这不仅仅是一个简单的电子书阅读器。它是一个完整的电子书解决方案。你甚至能<a href="https://itsfoss.com/create-ebook-calibre-linux/">通过 Calibre 创建专业的电子书</a>。通过强大的电子书管理和易用的界面,它提供了创建和编辑电子书的功能。Calibre 支持多种格式和与其它电子书阅读器同步。它也可以让你轻松转换一种电子书格式到另一种。Calibre 最大的缺点是,资源消耗太多,因此作为一个独立的电子阅读器来说是一个艰难的选择。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/25/221744rnsapnq84pxkpqxa.jpg">Calibre</a>特性管理电子书:Calibre 通过管理元数据来排序和分组电子书。你能从各…
在 Linux 终端上玩俄罗斯方块
用每个人最喜欢的砖块配对游戏“俄罗斯方块”重新创造 20 世纪 80 年代的魔力。Media
via https://linux.cn/article-10384-1.html
用每个人最喜欢的砖块配对游戏“俄罗斯方块”重新创造 20 世纪 80 年代的魔力。Media
via https://linux.cn/article-10384-1.html
在 Linux 终端上玩俄罗斯方块
用每个人最喜欢的砖块配对游戏“俄罗斯方块”重新创造 20 世纪 80 年代的魔力。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/25/234327icbhd4gzhq98lauc.png">Media</a>感谢你来浏览我们今天的 Linux 命令行玩具日历。如果这是你第一次访问该系列,你可能会问自己,什么是命令行玩具。即使我不太确定,但一般来说,它可能是一个游戏或任何消遣,可以帮助你在终端获得乐趣。很可能你们中的一些人之前会看到过我们日历中的各种推荐,但我们希望每个人至少遇到一件新事物。我承诺在我开始这个系列时,我会介绍游戏,但到目前为止,我忽略了它,所以我们今天的选择就是游戏:俄罗斯方块。俄罗斯方块和我差不多年纪,都在 1984 年夏天来到世界。不过,俄罗斯方块不是来自北卡罗来纳州的农村地区,而是来自当时苏联的莫斯科。在风靡世界之后,俄罗斯方块被克隆过很多次。我怀疑你可以找到任何你想找的任何语言、操作系统的俄罗斯方块的克隆。说真的,去看看吧。会有一些有趣的。我今天带来的命令行<a href="https://github.com/samtay/tetris">版本</a>是<a href="https://github.com/samtay/tetris">用 Haskell 编写</a>的,它是我见过的做得更好的版本之一,有屏幕预览、得分、帮助、干净的外观。如果你愿意从不受信任的来源运行已编译的二进制文件(我不推荐它),你可以直接获取它,但有个更安全的方法,使用 <a href="https://github.com/dockerland/dex">dex</a>…
用每个人最喜欢的砖块配对游戏“俄罗斯方块”重新创造 20 世纪 80 年代的魔力。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/25/234327icbhd4gzhq98lauc.png">Media</a>感谢你来浏览我们今天的 Linux 命令行玩具日历。如果这是你第一次访问该系列,你可能会问自己,什么是命令行玩具。即使我不太确定,但一般来说,它可能是一个游戏或任何消遣,可以帮助你在终端获得乐趣。很可能你们中的一些人之前会看到过我们日历中的各种推荐,但我们希望每个人至少遇到一件新事物。我承诺在我开始这个系列时,我会介绍游戏,但到目前为止,我忽略了它,所以我们今天的选择就是游戏:俄罗斯方块。俄罗斯方块和我差不多年纪,都在 1984 年夏天来到世界。不过,俄罗斯方块不是来自北卡罗来纳州的农村地区,而是来自当时苏联的莫斯科。在风靡世界之后,俄罗斯方块被克隆过很多次。我怀疑你可以找到任何你想找的任何语言、操作系统的俄罗斯方块的克隆。说真的,去看看吧。会有一些有趣的。我今天带来的命令行<a href="https://github.com/samtay/tetris">版本</a>是<a href="https://github.com/samtay/tetris">用 Haskell 编写</a>的,它是我见过的做得更好的版本之一,有屏幕预览、得分、帮助、干净的外观。如果你愿意从不受信任的来源运行已编译的二进制文件(我不推荐它),你可以直接获取它,但有个更安全的方法,使用 <a href="https://github.com/dockerland/dex">dex</a>…
如何在 VirtualBox 上安装并使用 FreeDOS?
这份指南将带你如何一步一步在 Linux 平台下利用 VirtualBox 安装 FreeDOS。Media
via https://linux.cn/article-10385-1.html
这份指南将带你如何一步一步在 Linux 平台下利用 VirtualBox 安装 FreeDOS。Media
via https://linux.cn/article-10385-1.html
如何在 VirtualBox 上安装并使用 FreeDOS?
这份指南将带你如何一步一步在 Linux 平台下利用 VirtualBox 安装 FreeDOS。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/26/004042kw6a924ty66thtgb.jpg">Media</a>Linux 下借助 VirtualBox 安装 FreeDOS2017 年的 11 月份,我<a href="https://itsfoss.com/interview-freedos-jim-hall/">采访了 Jim Hall</a> 关于 <a href="http://www.freedos.org/">FreeDOS 项目</a> 背后的历史故事。今天,我将告诉你如何安装并使用 FreeDOS。需要注意到是:我将在 <a href="https://solus-project.com/home/">Solus</a>(一种针对家庭用户的 Linux 桌面发行版)下使用 5.2.14 版本的 <a href="https://www.virtualbox.org/">VirtualBox</a> 来完成这些操作。注意:在本教程我将使用 Solus 作为主机系统因为它很容易设置。另一个你需要注意的事情是 Solus 的软件中心有两个版本的 VirtualBox:<code>virtualbox</code> 和 <code>virtualbox-current</code>。Solus 会让你选择是使用 linux-lts 内核还是 linux-current 内核。最终区别就是,<code>virtualbox</code> 适用于 linux-lts 而 <code>virtualbx-current</code> 适用于 linux-current。第一步 – 创建新的虚拟机<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/26/004103yhfj111dwdx1oqq0.jpg">Media</a>当你打开 VirtualBox,点击 “New” 按钮来新建一个虚拟机。你可以自定义这台虚拟机的名字,我将它命名为 “FreeDOS”。你也可以在标注栏内指明你正在安装的 FreeDOS 的版本。你还需要选择你将要安装的操作系统的类型和版本。选择 “Other” 下的 “DOS”。第二步 – 设置内存大小<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/26/004105x87zl9i808lc8ili.jpg">Media</a>下一个对话框会问你要给 FreeDOS 主机分配多少可用的内存空间。默认分配 32 MB。不必更改它。在 DOS 系统盛行的年代,32 MB 大小的内存对于一台搭载 FreeDOS 的机器已经很足够了。如果你有需要,你可以通过对你针对 FreeDOS 新建的虚拟机右键并选择 “Setting -> Symtem” 来增加内存。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/26/004108beb2hkd2hbvhvad2.jpg">Media</a>第三步 – 创建虚拟硬盘<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/26/004110ks2swdydwse2jq2p.jpg">Media</a>下一步,你会被要求创建一个虚拟硬盘用来存储 FreeDOS 和它的文件。如果你还没有创建,只需要点击 “Create”。下一个对话框会问你想用什么磁盘文件类型。默认的类型 (VirtualBox Disk Image) 效果就挺好。点击 “Next”。下一个你遇到的问题是你想虚拟硬盘以何种方式创建。你是否希望虚拟硬盘占据的空间刚开始很小然后会随着你创建文件和安装软件逐渐增加直至达到你设置的上限?那么选择动态分配。如果你更喜欢虚拟硬盘 (VHD) 按照既定大小直接创建,选择固定大小即可。如果你不打算使用整个 VHD 或者你的硬盘空余空间不是太足够,那么动态分配是个很不错的分配方式。(需要注意的是,动态分配的虚拟硬盘占据的空间会随着你增加文件而增加,但不会因为你删除文件而变小) 我个人更喜欢动态分配,但你可以根据实际需要来选择最合适你的分配类型然后点击 “Next”。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/26/004111cik3tkdmtkjmm3z9.jpg">Media</a>现在,你可以选择虚拟磁盘的大小和位置。500 MB 已经很足够了。需要注意的是很多你之后用到的程序都是基于文本的,这意味着它们占据的空间非常小。在你做好这些调整后,点击 “Create”。第四步 – 关联 .iso 文件在我们继续之前,你需要<a href="http://www.freedos.org/download/">下载</a> FreeDOS 的 .iso 文件。你需要选择 CDROM 格式的 “standard” 安装程序。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/26/004113xp6c66s12s6l17w6.jpg">Media</a>当文件下载完毕后,返回到 VirtualBox。选中你的虚拟机并打开设置。你可以通过对虚拟机右键并选中 “Setting” 或者选中虚拟机并点击 “Setting” 按钮。接下来,点击 “Storage” 选项卡。在 “Storage Devices” 下面,选中 CD 图标。(它应该会在图标旁边显示 “Empty”。) 在右边的 “Attribute” 面板,点中 CD 图标然后在对应路径选中你刚下载的 .iso 文件。提示:通常,在你通过 VirtualBox 安装完一个操作系统后你就可以删除对应的 .iso 文件了。但这并不适合 FreeDOS 。如果你想通过 FreeDOS 的包管理器来安装应用程序,你需要这个 .iso 文件。我通常会让这个 .iso 文件连接到虚拟机以便我安装一些程序。如果你也这么做了,你必须要确认下你让 FreeDOS 虚拟机每次启动的时候是从硬盘启动因为虚拟机的默认设置是从已关联的 .iso 文件启动。如果你忘了关联 .iso 文件,也不用担心。你可以通过选择 FreeDOS 虚拟机窗口上方的 “Devices” 来关联。然后就会发现 .iso 文件列在 “Optical Drives”。第五步 – 安装 FreeDOS<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/26/004114wltyrd17tlbfy6jd.png">Media</a>既然我们已经完成了所有的准备工作,让我们来开始安装 FreeDOS 吧。首先,你需要知道关于最新版本的 VirtualBox 的一个 bug。当我们创建好虚拟硬盘然后选中 “Install to harddisk” 后,如果你开启虚拟机你会发现在 FreeDOS 的欢迎界面出现过后就是不断滚动无群无尽的机器代码。我最近就遇到过这个问题而且不管是 Linux 还是 Windows 平台的 VirtualBox 都会碰到这个问题。(我知道解决办法。)为了避开这个问题,你需要做一个简单的修改。当你看到 FreeDOS 的欢迎界面的时候,按下 Tab 键。(确认 “Install to harddrive” 已经选中。)在 “fdboot.img” 之后输入 <code>raw</code> 然后按下回车键。接下来就会启动 FreeDOS 的安装程序。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/26/004116nn32oggui62h14u3.png">Media</a>安装程序会首先处理你的虚拟磁盘的格式化。当格式化完成后,安装程序会重启。当 FreeDOS 的欢迎界面再次出现的时候,你必须重新输入 <code>raw</code> 就像你之前输入的内容那样。要确保在安装过程中你遇到的所有问题你选的都是 “Yes”。但也要注意有一个很重要的问题:“What FreeDOS packages do you want to install?” 的答案并不是 “Yes” 或者 “No”。答案有两个选择分别是 “Base packages” 和 “Full installation”。“Base packages” 针对的是想体验类似原始的 MS-DOS 环境的人群。“Full installation” 则包括了一系列工具和实用的程序来提升 DOS。在整个安装过程的最后,你可以选择重启或者继续停留在 DOS。选择“reboot”。第六步 – 设置网络不同于原始的 DOS,FreeDOS 可以访问互联网。你可以安装新的软件包或者更新你已经安装的软件包。要想使用网络,你还需要在 FreeDOS 安装些应用程序。<a…
这份指南将带你如何一步一步在 Linux 平台下利用 VirtualBox 安装 FreeDOS。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/26/004042kw6a924ty66thtgb.jpg">Media</a>Linux 下借助 VirtualBox 安装 FreeDOS2017 年的 11 月份,我<a href="https://itsfoss.com/interview-freedos-jim-hall/">采访了 Jim Hall</a> 关于 <a href="http://www.freedos.org/">FreeDOS 项目</a> 背后的历史故事。今天,我将告诉你如何安装并使用 FreeDOS。需要注意到是:我将在 <a href="https://solus-project.com/home/">Solus</a>(一种针对家庭用户的 Linux 桌面发行版)下使用 5.2.14 版本的 <a href="https://www.virtualbox.org/">VirtualBox</a> 来完成这些操作。注意:在本教程我将使用 Solus 作为主机系统因为它很容易设置。另一个你需要注意的事情是 Solus 的软件中心有两个版本的 VirtualBox:<code>virtualbox</code> 和 <code>virtualbox-current</code>。Solus 会让你选择是使用 linux-lts 内核还是 linux-current 内核。最终区别就是,<code>virtualbox</code> 适用于 linux-lts 而 <code>virtualbx-current</code> 适用于 linux-current。第一步 – 创建新的虚拟机<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/26/004103yhfj111dwdx1oqq0.jpg">Media</a>当你打开 VirtualBox,点击 “New” 按钮来新建一个虚拟机。你可以自定义这台虚拟机的名字,我将它命名为 “FreeDOS”。你也可以在标注栏内指明你正在安装的 FreeDOS 的版本。你还需要选择你将要安装的操作系统的类型和版本。选择 “Other” 下的 “DOS”。第二步 – 设置内存大小<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/26/004105x87zl9i808lc8ili.jpg">Media</a>下一个对话框会问你要给 FreeDOS 主机分配多少可用的内存空间。默认分配 32 MB。不必更改它。在 DOS 系统盛行的年代,32 MB 大小的内存对于一台搭载 FreeDOS 的机器已经很足够了。如果你有需要,你可以通过对你针对 FreeDOS 新建的虚拟机右键并选择 “Setting -> Symtem” 来增加内存。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/26/004108beb2hkd2hbvhvad2.jpg">Media</a>第三步 – 创建虚拟硬盘<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/26/004110ks2swdydwse2jq2p.jpg">Media</a>下一步,你会被要求创建一个虚拟硬盘用来存储 FreeDOS 和它的文件。如果你还没有创建,只需要点击 “Create”。下一个对话框会问你想用什么磁盘文件类型。默认的类型 (VirtualBox Disk Image) 效果就挺好。点击 “Next”。下一个你遇到的问题是你想虚拟硬盘以何种方式创建。你是否希望虚拟硬盘占据的空间刚开始很小然后会随着你创建文件和安装软件逐渐增加直至达到你设置的上限?那么选择动态分配。如果你更喜欢虚拟硬盘 (VHD) 按照既定大小直接创建,选择固定大小即可。如果你不打算使用整个 VHD 或者你的硬盘空余空间不是太足够,那么动态分配是个很不错的分配方式。(需要注意的是,动态分配的虚拟硬盘占据的空间会随着你增加文件而增加,但不会因为你删除文件而变小) 我个人更喜欢动态分配,但你可以根据实际需要来选择最合适你的分配类型然后点击 “Next”。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/26/004111cik3tkdmtkjmm3z9.jpg">Media</a>现在,你可以选择虚拟磁盘的大小和位置。500 MB 已经很足够了。需要注意的是很多你之后用到的程序都是基于文本的,这意味着它们占据的空间非常小。在你做好这些调整后,点击 “Create”。第四步 – 关联 .iso 文件在我们继续之前,你需要<a href="http://www.freedos.org/download/">下载</a> FreeDOS 的 .iso 文件。你需要选择 CDROM 格式的 “standard” 安装程序。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/26/004113xp6c66s12s6l17w6.jpg">Media</a>当文件下载完毕后,返回到 VirtualBox。选中你的虚拟机并打开设置。你可以通过对虚拟机右键并选中 “Setting” 或者选中虚拟机并点击 “Setting” 按钮。接下来,点击 “Storage” 选项卡。在 “Storage Devices” 下面,选中 CD 图标。(它应该会在图标旁边显示 “Empty”。) 在右边的 “Attribute” 面板,点中 CD 图标然后在对应路径选中你刚下载的 .iso 文件。提示:通常,在你通过 VirtualBox 安装完一个操作系统后你就可以删除对应的 .iso 文件了。但这并不适合 FreeDOS 。如果你想通过 FreeDOS 的包管理器来安装应用程序,你需要这个 .iso 文件。我通常会让这个 .iso 文件连接到虚拟机以便我安装一些程序。如果你也这么做了,你必须要确认下你让 FreeDOS 虚拟机每次启动的时候是从硬盘启动因为虚拟机的默认设置是从已关联的 .iso 文件启动。如果你忘了关联 .iso 文件,也不用担心。你可以通过选择 FreeDOS 虚拟机窗口上方的 “Devices” 来关联。然后就会发现 .iso 文件列在 “Optical Drives”。第五步 – 安装 FreeDOS<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/26/004114wltyrd17tlbfy6jd.png">Media</a>既然我们已经完成了所有的准备工作,让我们来开始安装 FreeDOS 吧。首先,你需要知道关于最新版本的 VirtualBox 的一个 bug。当我们创建好虚拟硬盘然后选中 “Install to harddisk” 后,如果你开启虚拟机你会发现在 FreeDOS 的欢迎界面出现过后就是不断滚动无群无尽的机器代码。我最近就遇到过这个问题而且不管是 Linux 还是 Windows 平台的 VirtualBox 都会碰到这个问题。(我知道解决办法。)为了避开这个问题,你需要做一个简单的修改。当你看到 FreeDOS 的欢迎界面的时候,按下 Tab 键。(确认 “Install to harddrive” 已经选中。)在 “fdboot.img” 之后输入 <code>raw</code> 然后按下回车键。接下来就会启动 FreeDOS 的安装程序。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/26/004116nn32oggui62h14u3.png">Media</a>安装程序会首先处理你的虚拟磁盘的格式化。当格式化完成后,安装程序会重启。当 FreeDOS 的欢迎界面再次出现的时候,你必须重新输入 <code>raw</code> 就像你之前输入的内容那样。要确保在安装过程中你遇到的所有问题你选的都是 “Yes”。但也要注意有一个很重要的问题:“What FreeDOS packages do you want to install?” 的答案并不是 “Yes” 或者 “No”。答案有两个选择分别是 “Base packages” 和 “Full installation”。“Base packages” 针对的是想体验类似原始的 MS-DOS 环境的人群。“Full installation” 则包括了一系列工具和实用的程序来提升 DOS。在整个安装过程的最后,你可以选择重启或者继续停留在 DOS。选择“reboot”。第六步 – 设置网络不同于原始的 DOS,FreeDOS 可以访问互联网。你可以安装新的软件包或者更新你已经安装的软件包。要想使用网络,你还需要在 FreeDOS 安装些应用程序。<a…