以 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…
所有人的 DevOps
让一名非工程师来解释为什么你不必成为一位开发者或运维就能爱上 DevOps。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/26/194613xvd2wvcgu2pjj9g3.png">Media</a>我从未做过开发或运维的工作 —— 那怎么我在写一篇关于 <a href="https://opensource.com/resources/devops">DevOps</a> 的文章?我一直都对计算机和技术有兴趣。我还对社群、心理学以及帮助他人充满热情。当我第一次听到 DevOps 时,这个概念激起了我的兴趣,因为它看起来融合了很多我感兴趣的东西,即便我是不写代码的。我的第一台电脑是 TRS-80,我喜欢在上面编写 BASIC 程序。我只上过两门我的高中开设的计算机编程课程。若干年后,我创办了一家计算机公司。我定制邮件标签和信纸,并建立了一个数据库来存储地址。问题是我并不能从写代码中获得享受。我想要教育和帮助人们,我没法将写代码看作这样的一个机会。是的,技术可以帮助人们并改变生活,但是写代码没有点燃我的热情。我需要对我的工作感到兴奋并做我喜欢的事情。我发现我爱 DevOps。对我而言,DevOps 指的是:文化,而不是代码过程,而不是结果建立一个所有人可以持续提升的环境沟通与合作,而不是独立工作归根结底,DevOps 是指成为社区工作的一部分,实现共同的目标。DevOps 融合了心理学、社群、技术。DevOps 不是一个职位名称,它是一种生活和工作的哲学。找到我的社群快四年前,我在西雅图参加了我…
让一名非工程师来解释为什么你不必成为一位开发者或运维就能爱上 DevOps。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/26/194613xvd2wvcgu2pjj9g3.png">Media</a>我从未做过开发或运维的工作 —— 那怎么我在写一篇关于 <a href="https://opensource.com/resources/devops">DevOps</a> 的文章?我一直都对计算机和技术有兴趣。我还对社群、心理学以及帮助他人充满热情。当我第一次听到 DevOps 时,这个概念激起了我的兴趣,因为它看起来融合了很多我感兴趣的东西,即便我是不写代码的。我的第一台电脑是 TRS-80,我喜欢在上面编写 BASIC 程序。我只上过两门我的高中开设的计算机编程课程。若干年后,我创办了一家计算机公司。我定制邮件标签和信纸,并建立了一个数据库来存储地址。问题是我并不能从写代码中获得享受。我想要教育和帮助人们,我没法将写代码看作这样的一个机会。是的,技术可以帮助人们并改变生活,但是写代码没有点燃我的热情。我需要对我的工作感到兴奋并做我喜欢的事情。我发现我爱 DevOps。对我而言,DevOps 指的是:文化,而不是代码过程,而不是结果建立一个所有人可以持续提升的环境沟通与合作,而不是独立工作归根结底,DevOps 是指成为社区工作的一部分,实现共同的目标。DevOps 融合了心理学、社群、技术。DevOps 不是一个职位名称,它是一种生活和工作的哲学。找到我的社群快四年前,我在西雅图参加了我…
在 Linux 终端中观看火焰
何不在命令行中进行一次“烧烤”呢?<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/26/200328cl8ncxkp8w8xznn4.png">Media</a>这里是《24 天了解 Linux 命令行小玩意》。如果你未曾读过本系列的文章,可以在本文的结尾部分获取上一篇文章的链接,以了解本系列的大概内容。我们所介绍的命令行小玩意可供你消遣无聊时光。你或许知道它们其中的一些,也可能不曾知晓它们。无论如何,我们都希望你能度过一段愉快的时光。如果你住在北半球的非热带地区,可能冬季来临时你会被冻得满脸通红。住在这里的我,最喜欢的事情便是在火炉旁惬意地边喝茶边读书。不幸的是,我家刚好缺个放火炉的地方。不过,多亏了今天我要介绍的 aafire ,我仍然可以假装我坐在火炉旁。在我所使用的系统里, aafire 被打包进了 aalib 。 aalib 是一个受人喜爱的库,它可以很方便地将图像转换成 ASCII 图并输出到终端(或其它任何地方)。 aalib 将多种多样的图像带入了 Linux 终端。你可以看看本系列的其它文章,了解一下其它小程序,以便配合使用并充分利用它们。在 Fedora 中,你可以通过以下命令来安装 aalib :<pre class="prettyprint linenums">$ sudo dnf install aalib</pre>接着,试着运行 aafire 命令。 aalib 默认会使用 GUI 模式,我们要进行一些操作来让它在终端中运行(毕竟这一系列文章都讲的是命令行)。十分幸运的是,仅需安装 <a href="https://en.wikipedia.org/wiki/Curses_(programming_library)">curses</a> 就能实现我们想…
何不在命令行中进行一次“烧烤”呢?<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/26/200328cl8ncxkp8w8xznn4.png">Media</a>这里是《24 天了解 Linux 命令行小玩意》。如果你未曾读过本系列的文章,可以在本文的结尾部分获取上一篇文章的链接,以了解本系列的大概内容。我们所介绍的命令行小玩意可供你消遣无聊时光。你或许知道它们其中的一些,也可能不曾知晓它们。无论如何,我们都希望你能度过一段愉快的时光。如果你住在北半球的非热带地区,可能冬季来临时你会被冻得满脸通红。住在这里的我,最喜欢的事情便是在火炉旁惬意地边喝茶边读书。不幸的是,我家刚好缺个放火炉的地方。不过,多亏了今天我要介绍的 aafire ,我仍然可以假装我坐在火炉旁。在我所使用的系统里, aafire 被打包进了 aalib 。 aalib 是一个受人喜爱的库,它可以很方便地将图像转换成 ASCII 图并输出到终端(或其它任何地方)。 aalib 将多种多样的图像带入了 Linux 终端。你可以看看本系列的其它文章,了解一下其它小程序,以便配合使用并充分利用它们。在 Fedora 中,你可以通过以下命令来安装 aalib :<pre class="prettyprint linenums">$ sudo dnf install aalib</pre>接着,试着运行 aafire 命令。 aalib 默认会使用 GUI 模式,我们要进行一些操作来让它在终端中运行(毕竟这一系列文章都讲的是命令行)。十分幸运的是,仅需安装 <a href="https://en.wikipedia.org/wiki/Curses_(programming_library)">curses</a> 就能实现我们想…
27 个全方位的开放式教育解决方案
阅读这些 2017 年 Opensource.com 发布的开放如何改进教育和学习的好文章。Media
via https://linux.cn/article-10388-1.html
阅读这些 2017 年 Opensource.com 发布的开放如何改进教育和学习的好文章。Media
via https://linux.cn/article-10388-1.html
27 个全方位的开放式教育解决方案
阅读这些 2017 年 Opensource.com 发布的开放如何改进教育和学习的好文章。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/26/211736vbywyn5lbbnnn4ll.png">27 open solutions to everything in education</a>开放式理念 (从开源软件到开放硬件,再到开放原则) 正在改变教育的范式。因此,为了庆祝今年发生的一切,我收集了 2017 年(译注:本文原发布于 2018 年初)在 Opensource.com 上发表的 27 篇关于这个主题的最好的文章。我把它们分成明确的主题,而不是按人气来分类。而且,如果这 27 个故事不能满足你对教育方面开源信息的胃口,那就看看我们的合作文章吧 “<a href="https://opensource.com/article/17/12/best-opensourcecom-linux-and-raspberry-pi-education">教育如何借助 Linux 和树莓派</a>”。开放对每个人都有好处<a href="https://opensource.com/article/17/7/book-review-open">书评:《OPEN》探讨了开放性的广泛文化含义</a>:Scott Nesbitt 评价 David Price 的书 《OPEN》 ,该书探讨了 “开放” 不仅仅是技术转变的观点,而是 “我们未来将如何工作、生活和学习”。<a href="https://opensource.com/article/17/8/jump-start-your-career">通过开源技能快速开始您的职业生涯</a>: VM (Vicky) Brasseur 指出了如何借助学习开源在工作群体中脱颖而出。这个建议不仅仅是针对程序员的;设计师、作家、营销人员和其他创意专业人士也对开源的成功至关重要。<a href="https://opensource.com/article/17/1/grad-school-open-source-academic-lab">研究生学位可以让你跳槽到开源职位</a>:引用的研究表明会 Linux 技能会带来更高的薪水, Joshua Pearce 说对开源的熟练和研究生学位是无与伦比的职业技能组合。<a href="https://opensource.com/article/17/7/open…
阅读这些 2017 年 Opensource.com 发布的开放如何改进教育和学习的好文章。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/26/211736vbywyn5lbbnnn4ll.png">27 open solutions to everything in education</a>开放式理念 (从开源软件到开放硬件,再到开放原则) 正在改变教育的范式。因此,为了庆祝今年发生的一切,我收集了 2017 年(译注:本文原发布于 2018 年初)在 Opensource.com 上发表的 27 篇关于这个主题的最好的文章。我把它们分成明确的主题,而不是按人气来分类。而且,如果这 27 个故事不能满足你对教育方面开源信息的胃口,那就看看我们的合作文章吧 “<a href="https://opensource.com/article/17/12/best-opensourcecom-linux-and-raspberry-pi-education">教育如何借助 Linux 和树莓派</a>”。开放对每个人都有好处<a href="https://opensource.com/article/17/7/book-review-open">书评:《OPEN》探讨了开放性的广泛文化含义</a>:Scott Nesbitt 评价 David Price 的书 《OPEN》 ,该书探讨了 “开放” 不仅仅是技术转变的观点,而是 “我们未来将如何工作、生活和学习”。<a href="https://opensource.com/article/17/8/jump-start-your-career">通过开源技能快速开始您的职业生涯</a>: VM (Vicky) Brasseur 指出了如何借助学习开源在工作群体中脱颖而出。这个建议不仅仅是针对程序员的;设计师、作家、营销人员和其他创意专业人士也对开源的成功至关重要。<a href="https://opensource.com/article/17/1/grad-school-open-source-academic-lab">研究生学位可以让你跳槽到开源职位</a>:引用的研究表明会 Linux 技能会带来更高的薪水, Joshua Pearce 说对开源的熟练和研究生学位是无与伦比的职业技能组合。<a href="https://opensource.com/article/17/7/open…
Caffeinated 6.828:实验 5:文件系统、Spawn 和 Shell
在本实验中,你将要去实现 spawn,它是一个加载和运行磁盘上可运行文件的库调用。然后,你接着要去充实你的内核和库,以使操作系统能够在控制台上运行一个 shell。而这些特性需要一个文件系统,本实验将引入一个可读/写的简单文件系统。Media
via https://linux.cn/article-10389-1.html
在本实验中,你将要去实现 spawn,它是一个加载和运行磁盘上可运行文件的库调用。然后,你接着要去充实你的内核和库,以使操作系统能够在控制台上运行一个 shell。而这些特性需要一个文件系统,本实验将引入一个可读/写的简单文件系统。Media
via https://linux.cn/article-10389-1.html
Caffeinated 6.828:实验 5:文件系统、Spawn 和 Shell
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/27/125429u3xhxx1urgh9zkkl.jpg">Media</a>简介在本实验中,你将要去实现 spawn,它是一个加载和运行磁盘上可运行文件的库调用。然后,你接着要去充实你的内核和库,以使操作系统能够在控制台上运行一个 shell。而这些特性需要一个文件系统,本实验将引入一个可读/写的简单文件系统。预备知识使用 Git 去获取最新版的课程仓库,然后创建一个命名为 lab5 的本地分支,去跟踪远程的 origin/lab5 分支:<pre class="prettyprint linenums">athena% cd ~/6.828/labathena% add gitathena% git pullAlready up-to-date.athena% git checkout -b lab5 origin/lab5Branch lab5 set up to track remote branch refs/remotes/origin/lab5.Switched to a new branch "lab5"athena% git merge lab4Merge made by recursive......athena%</pre>在实验中这一部分的主要新组件是文件系统环境,它位于新的 fs 目录下。通过检查这个目录中的所有文件,我们来看一下新的文件都有什么。另外,在 user 和 lib 目录下还有一些文件系统相关的源文件。fs/fs.c 维护文件系统在磁盘上结构的代码fs/bc.c 构建在我们的用户级页故障处理功能之上的一个简单的块缓存fs/ide.c 极简的基于 PIO(非中断驱动的)IDE 驱动程序代码fs/serv.c 使用文件系统 IPC 与客户端环境交互的文件系统服务器lib/fd.c 实现一个常见的类 UNIX 的文件描述符接口的代码lib/file.c 磁盘上文件类型的驱动,实现为一个文件系统 IPC 客户端lib/console.c 控制台输入/输出文件类型的驱动lib/spawn.c spawn 库调用的框架代码你应该再次去运行 pingpong、primes 和 forktree,测试实验 4 完成后合并到新的实验 5 中的代码能否正…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/27/125429u3xhxx1urgh9zkkl.jpg">Media</a>简介在本实验中,你将要去实现 spawn,它是一个加载和运行磁盘上可运行文件的库调用。然后,你接着要去充实你的内核和库,以使操作系统能够在控制台上运行一个 shell。而这些特性需要一个文件系统,本实验将引入一个可读/写的简单文件系统。预备知识使用 Git 去获取最新版的课程仓库,然后创建一个命名为 lab5 的本地分支,去跟踪远程的 origin/lab5 分支:<pre class="prettyprint linenums">athena% cd ~/6.828/labathena% add gitathena% git pullAlready up-to-date.athena% git checkout -b lab5 origin/lab5Branch lab5 set up to track remote branch refs/remotes/origin/lab5.Switched to a new branch "lab5"athena% git merge lab4Merge made by recursive......athena%</pre>在实验中这一部分的主要新组件是文件系统环境,它位于新的 fs 目录下。通过检查这个目录中的所有文件,我们来看一下新的文件都有什么。另外,在 user 和 lib 目录下还有一些文件系统相关的源文件。fs/fs.c 维护文件系统在磁盘上结构的代码fs/bc.c 构建在我们的用户级页故障处理功能之上的一个简单的块缓存fs/ide.c 极简的基于 PIO(非中断驱动的)IDE 驱动程序代码fs/serv.c 使用文件系统 IPC 与客户端环境交互的文件系统服务器lib/fd.c 实现一个常见的类 UNIX 的文件描述符接口的代码lib/file.c 磁盘上文件类型的驱动,实现为一个文件系统 IPC 客户端lib/console.c 控制台输入/输出文件类型的驱动lib/spawn.c spawn 库调用的框架代码你应该再次去运行 pingpong、primes 和 forktree,测试实验 4 完成后合并到新的实验 5 中的代码能否正…
在你的终端里探索海洋的秘密
“亲爱的,当您的命令行变得更湿润的时候会更好。这多亏了 ASCII。”<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/27/192002aozxs5jrwnqwq2xj.png">Media</a>现在,我们即将数完长达 24 天的 Linux 命令行玩具日历。离今天只剩一周了!如果这是您第一次访问本系列文章,那么您可能会问自己什么是命令行玩具。我们一边走,一边说,但一般来说,这可能是一个游戏,或者可以帮助你在终端玩得开心的任何简单的娱乐活动。你们其中的一些人可能已经在以前的系列文章中看到了各种各样的命令行玩具。但是,我们希望每个人都能够获得一个新玩具。今天的玩具有一点鱼的味道。先和 asciiquarium 打个招呼,一个在你终端里海底冒险的玩具。我是在我的 Fedora 仓库里发现 asciiquarium 的,因此安装它非常容易:<pre class="prettyprint linenums">$ sudo dnf install asciiquarium</pre>如果您正在运行不同的发行版,那么它也可能已经为您打包。 只需在您的终端中运行 asciiquarium 即可感受到蛤蜊的快乐。 该项目也在终端之外进行了“翻译”,所有水族伙伴的屏保都是为几个非 Linux 操作系统制作的,甚至还有一个 Android 动态壁纸版本。访问 asciiquarium <a href="https://robobunny.com/projects/asciiquarium/html/">主页</a>了解更多信息或下载 Perl 源代码。 该项目是 GPL 第 2 版许可证下的开源项目。 如果你想更多地了解开源,开放数据和开放科学如何在实际的海洋中发挥作用,请花点时间去了解<a href="https://opensource.com/article/18/12/protecting-world-oceans">海洋健康…
“亲爱的,当您的命令行变得更湿润的时候会更好。这多亏了 ASCII。”<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/27/192002aozxs5jrwnqwq2xj.png">Media</a>现在,我们即将数完长达 24 天的 Linux 命令行玩具日历。离今天只剩一周了!如果这是您第一次访问本系列文章,那么您可能会问自己什么是命令行玩具。我们一边走,一边说,但一般来说,这可能是一个游戏,或者可以帮助你在终端玩得开心的任何简单的娱乐活动。你们其中的一些人可能已经在以前的系列文章中看到了各种各样的命令行玩具。但是,我们希望每个人都能够获得一个新玩具。今天的玩具有一点鱼的味道。先和 asciiquarium 打个招呼,一个在你终端里海底冒险的玩具。我是在我的 Fedora 仓库里发现 asciiquarium 的,因此安装它非常容易:<pre class="prettyprint linenums">$ sudo dnf install asciiquarium</pre>如果您正在运行不同的发行版,那么它也可能已经为您打包。 只需在您的终端中运行 asciiquarium 即可感受到蛤蜊的快乐。 该项目也在终端之外进行了“翻译”,所有水族伙伴的屏保都是为几个非 Linux 操作系统制作的,甚至还有一个 Android 动态壁纸版本。访问 asciiquarium <a href="https://robobunny.com/projects/asciiquarium/html/">主页</a>了解更多信息或下载 Perl 源代码。 该项目是 GPL 第 2 版许可证下的开源项目。 如果你想更多地了解开源,开放数据和开放科学如何在实际的海洋中发挥作用,请花点时间去了解<a href="https://opensource.com/article/18/12/protecting-world-oceans">海洋健康…
糖尿病患者们是怎样使用开源造出自己的医疗设备的
Red Hat 的 2018 女性开源社区奖获得者 Dana Lewis 的故事。Media
via https://linux.cn/article-10391-1.html
Red Hat 的 2018 女性开源社区奖获得者 Dana Lewis 的故事。Media
via https://linux.cn/article-10391-1.html