Linux中国
1.73K subscribers
777 photos
6.34K links
Linux 中国官方 Telegram 频道
Download Telegram
IBM 029 型打孔机

我知道这很学院派,可一行超过 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 型打孔机是什么情形了。我会尽可能在这里总结这段视频,但如果你不去亲自看…
7 个最佳 Linux 电子书阅读器

本文中我们涉及一些 Linux 最佳电子书阅读器。这些应用提供更佳的阅读体验甚至可以管理你的电子书。Media

via https://linux.cn/article-10383-1.html
7 &#20010;&#26368;&#20339; Linux &#30005;&#23376;&#20070;&#38405;&#35835;&#22120;

<strong>&#25688;&#35201;&#65306;</strong> &#26412;&#25991;&#20013;&#25105;&#20204;&#28041;&#21450;&#19968;&#20123; Linux &#26368;&#20339;&#30005;&#23376;&#20070;&#38405;&#35835;&#22120;&#12290;&#36825;&#20123;&#24212;&#29992;&#25552;&#20379;&#26356;&#20339;&#30340;&#38405;&#35835;&#20307;&#39564;&#29978;&#33267;&#21487;&#20197;&#31649;&#29702;&#20320;&#30340;&#30005;&#23376;&#20070;&#12290;<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/25/221743h534kuezeu46iq54.png">&#26368;&#20339; Linux &#30005;&#23376;&#20070;&#38405;&#35835;&#22120;</a>&#26368;&#36817;&#65292;&#38543;&#30528;&#20154;&#20204;&#21457;&#29616;&#22312;&#25163;&#25345;&#35774;&#22791;&#12289;Kindle &#25110;&#32773; PC &#19978;&#38405;&#35835;&#26356;&#21152;&#33298;&#36866;&#65292;&#23545;&#30005;&#23376;&#22270;&#20070;&#30340;&#38656;&#27714;&#26377;&#25152;&#22686;&#21152;&#12290;&#33267;&#20110; Linux &#29992;&#25143;&#65292;&#20063;&#26377;&#21508;&#31181;&#30005;&#23376;&#20070;&#24212;&#29992;&#28385;&#36275;&#20320;&#38405;&#35835;&#21644;&#25972;&#29702;&#30005;&#23376;&#20070;&#30340;&#38656;&#27714;&#12290;&#22312;&#26412;&#25991;&#20013;&#65292;&#25105;&#20204;&#36873;&#20986;&#20102;&#19971;&#20010;&#26368;&#20339; Linux &#30005;&#23376;&#20070;&#38405;&#35835;&#22120;&#12290;&#36825;&#20123;&#30005;&#23376;&#20070;&#38405;&#35835;&#22120;&#26368;&#36866;&#21512; pdf&#12289;epub &#21644;&#20854;&#20182;&#30005;&#23376;&#20070;&#26684;&#24335;&#12290;&#25105;&#25552;&#20379;&#30340;&#26159; Ubuntu &#23433;&#35013;&#35828;&#26126;&#65292;&#22240;&#20026;&#25105;&#29616;&#22312;&#20351;&#29992;&#23427;&#12290;&#22914;&#26524;&#20320;&#20351;&#29992;&#30340;&#26159;<a href="https://itsfoss.com/non-ubuntu-beginner-linux/">&#38750; Ubuntu &#21457;&#34892;&#29256;</a>&#65292;&#20320;&#33021;&#22312;&#20320;&#30340;&#21457;&#34892;&#29256;&#36719;&#20214;&#20179;&#24211;&#20013;&#25214;&#21040;&#22823;&#22810;&#25968;&#36825;&#20123;&#30005;&#23376;&#20070;&#24212;&#29992;&#12290;1. Calibre<a href="https://www.calibre-ebook.com">Calibre</a> &#26159; Linux &#26368;&#21463;&#27426;&#36814;&#30340;&#30005;&#23376;&#20070;&#24212;&#29992;&#12290;&#32769;&#23454;&#35828;&#65292;&#36825;&#19981;&#20165;&#20165;&#26159;&#19968;&#20010;&#31616;&#21333;&#30340;&#30005;&#23376;&#20070;&#38405;&#35835;&#22120;&#12290;&#23427;&#26159;&#19968;&#20010;&#23436;&#25972;&#30340;&#30005;&#23376;&#20070;&#35299;&#20915;&#26041;&#26696;&#12290;&#20320;&#29978;&#33267;&#33021;<a href="https://itsfoss.com/create-ebook-calibre-linux/">&#36890;&#36807; Calibre &#21019;&#24314;&#19987;&#19994;&#30340;&#30005;&#23376;&#20070;</a>&#12290;&#36890;&#36807;&#24378;&#22823;&#30340;&#30005;&#23376;&#20070;&#31649;&#29702;&#21644;&#26131;&#29992;&#30340;&#30028;&#38754;&#65292;&#23427;&#25552;&#20379;&#20102;&#21019;&#24314;&#21644;&#32534;&#36753;&#30005;&#23376;&#20070;&#30340;&#21151;&#33021;&#12290;Calibre &#25903;&#25345;&#22810;&#31181;&#26684;&#24335;&#21644;&#19982;&#20854;&#23427;&#30005;&#23376;&#20070;&#38405;&#35835;&#22120;&#21516;&#27493;&#12290;&#23427;&#20063;&#21487;&#20197;&#35753;&#20320;&#36731;&#26494;&#36716;&#25442;&#19968;&#31181;&#30005;&#23376;&#20070;&#26684;&#24335;&#21040;&#21478;&#19968;&#31181;&#12290;Calibre &#26368;&#22823;&#30340;&#32570;&#28857;&#26159;&#65292;&#36164;&#28304;&#28040;&#32791;&#22826;&#22810;&#65292;&#22240;&#27492;&#20316;&#20026;&#19968;&#20010;&#29420;&#31435;&#30340;&#30005;&#23376;&#38405;&#35835;&#22120;&#26469;&#35828;&#26159;&#19968;&#20010;&#33392;&#38590;&#30340;&#36873;&#25321;&#12290;<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/25/221744rnsapnq84pxkpqxa.jpg">Calibre</a>&#29305;&#24615;&#31649;&#29702;&#30005;&#23376;&#20070;&#65306;Calibre &#36890;&#36807;&#31649;&#29702;&#20803;&#25968;&#25454;&#26469;&#25490;&#24207;&#21644;&#20998;&#32452;&#30005;&#23376;&#20070;&#12290;&#20320;&#33021;&#20174;&#21508;&#3…
在 Linux 终端上玩俄罗斯方块

用每个人最喜欢的砖块配对游戏“俄罗斯方块”重新创造 20 世纪 80 年代的魔力。Media

via https://linux.cn/article-10384-1.html
&#22312; Linux &#32456;&#31471;&#19978;&#29609;&#20420;&#32599;&#26031;&#26041;&#22359;

&#29992;&#27599;&#20010;&#20154;&#26368;&#21916;&#27426;&#30340;&#30742;&#22359;&#37197;&#23545;&#28216;&#25103;“&#20420;&#32599;&#26031;&#26041;&#22359;”&#37325;&#26032;&#21019;&#36896; 20 &#19990;&#32426; 80 &#24180;&#20195;&#30340;&#39764;&#21147;&#12290;<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/25/234327icbhd4gzhq98lauc.png">Media</a>&#24863;&#35874;&#20320;&#26469;&#27983;&#35272;&#25105;&#20204;&#20170;&#22825;&#30340; Linux &#21629;&#20196;&#34892;&#29609;&#20855;&#26085;&#21382;&#12290;&#22914;&#26524;&#36825;&#26159;&#20320;&#31532;&#19968;&#27425;&#35775;&#38382;&#35813;&#31995;&#21015;&#65292;&#20320;&#21487;&#33021;&#20250;&#38382;&#33258;&#24049;&#65292;&#20160;&#20040;&#26159;&#21629;&#20196;&#34892;&#29609;&#20855;&#12290;&#21363;&#20351;&#25105;&#19981;&#22826;&#30830;&#23450;&#65292;&#20294;&#19968;&#33324;&#26469;&#35828;&#65292;&#23427;&#21487;&#33021;&#26159;&#19968;&#20010;&#28216;&#25103;&#25110;&#20219;&#20309;&#28040;&#36963;&#65292;&#21487;&#20197;&#24110;&#21161;&#20320;&#22312;&#32456;&#31471;&#33719;&#24471;&#20048;&#36259;&#12290;&#24456;&#21487;&#33021;&#20320;&#20204;&#20013;&#30340;&#19968;&#20123;&#20154;&#20043;&#21069;&#20250;&#30475;&#21040;&#36807;&#25105;&#20204;&#26085;&#21382;&#20013;&#30340;&#21508;&#31181;&#25512;&#33616;&#65292;&#20294;&#25105;&#20204;&#24076;&#26395;&#27599;&#20010;&#20154;&#33267;&#23569;&#36935;&#21040;&#19968;&#20214;&#26032;&#20107;&#29289;&#12290;&#25105;&#25215;&#35834;&#22312;&#25105;&#24320;&#22987;&#36825;&#20010;&#31995;&#21015;&#26102;&#65292;&#25105;&#20250;&#20171;&#32461;&#28216;&#25103;&#65292;&#20294;&#21040;&#30446;&#21069;&#20026;&#27490;&#65292;&#25105;&#24573;&#30053;&#20102;&#23427;&#65292;&#25152;&#20197;&#25105;&#20204;&#20170;&#22825;&#30340;&#36873;&#25321;&#23601;&#26159;&#28216;&#25103;&#65306;&#20420;&#32599;&#26031;&#26041;&#22359;&#12290;&#20420;&#32599;&#26031;&#26041;&#22359;&#21644;&#25105;&#24046;&#19981;&#22810;&#24180;&#32426;&#65292;&#37117;&#22312; 1984 &#24180;&#22799;&#22825;&#26469;&#21040;&#19990;&#30028;&#12290;&#19981;&#36807;&#65292;&#20420;&#32599;&#26031;&#26041;&#22359;&#19981;&#26159;&#26469;&#33258;&#21271;&#21345;&#32599;&#26469;&#32435;&#24030;&#30340;&#20892;&#26449;&#22320;&#21306;&#65292;&#32780;&#26159;&#26469;&#33258;&#24403;&#26102;&#33487;&#32852;&#30340;&#33707;&#26031;&#31185;&#12290;&#22312;&#39118;&#38753;&#19990;&#30028;&#20043;&#21518;&#65292;&#20420;&#32599;&#26031;&#26041;&#22359;&#34987;&#20811;&#38534;&#36807;&#24456;&#22810;&#27425;&#12290;&#25105;&#24576;&#30097;&#20320;&#21487;&#20197;&#25214;&#21040;&#20219;&#20309;&#20320;&#24819;&#25214;&#30340;&#20219;&#20309;&#35821;&#35328;&#12289;&#25805;&#20316;&#31995;&#32479;&#30340;&#20420;&#32599;&#26031;&#26041;&#22359;&#30340;&#20811;&#38534;&#12290;&#35828;&#30495;&#30340;&#65292;&#21435;&#30475;&#30475;&#21543;&#12290;&#20250;&#26377;&#19968;&#20123;&#26377;&#36259;&#30340;&#12290;&#25105;&#20170;&#22825;&#24102;&#26469;&#30340;&#21629;&#20196;&#34892;<a href="https://github.com/samtay/tetris">&#29256;&#26412;</a>&#26159;<a href="https://github.com/samtay/tetris">&#29992; Haskell &#32534;&#20889;</a>&#30340;&#65292;&#23427;&#26159;&#25105;&#35265;&#36807;&#30340;&#20570;&#24471;&#26356;&#22909;&#30340;&#29256;&#26412;&#20043;&#19968;&#65292;&#26377;&#23631;&#24149;&#39044;&#35272;&#12289;&#24471;&#20998;&#12289;&#24110;&#21161;&#12289;&#24178;&#20928;&#30340;&#22806;&#35266;&#12290;&#22914;&#26524;&#20320;&#24895;&#24847;&#20174;&#19981;&#21463;&#20449;&#20219;&#30340;&#26469;&#28304;&#36816;&#34892;&#24050;&#32534;&#35793;&#30340;&#20108;&#36827;&#21046;&#25991;&#20214;&#65288;&#25105;&#19981;&#25512;&#33616;&#23427;&#65289;&#65292;&#20320;&#21487;&#20197;&#30452;&#25509;&#33719;&#21462;&#23427;&#65292;&#20294;&#26377;&#20010;&#26356;&#23433;&#20840;&#30340;&#26041;&#27861;&#65292;&#20351;&#29992; <a href="https://github.com/dockerland/dex">dex</a>…
如何在 VirtualBox 上安装并使用 FreeDOS?

这份指南将带你如何一步一步在 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…
所有人的 DevOps

让一名非工程师来解释为什么你不必成为一位开发者或运维就能爱上 DevOps。Media

via https://linux.cn/article-10386-1.html
&#25152;&#26377;&#20154;&#30340; DevOps

&#35753;&#19968;&#21517;&#38750;&#24037;&#31243;&#24072;&#26469;&#35299;&#37322;&#20026;&#20160;&#20040;&#20320;&#19981;&#24517;&#25104;&#20026;&#19968;&#20301;&#24320;&#21457;&#32773;&#25110;&#36816;&#32500;&#23601;&#33021;&#29233;&#19978; DevOps&#12290;<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/26/194613xvd2wvcgu2pjj9g3.png">Media</a>&#25105;&#20174;&#26410;&#20570;&#36807;&#24320;&#21457;&#25110;&#36816;&#32500;&#30340;&#24037;&#20316; —— &#37027;&#24590;&#20040;&#25105;&#22312;&#20889;&#19968;&#31687;&#20851;&#20110; <a href="https://opensource.com/resources/devops">DevOps</a> &#30340;&#25991;&#31456;&#65311;&#25105;&#19968;&#30452;&#37117;&#23545;&#35745;&#31639;&#26426;&#21644;&#25216;&#26415;&#26377;&#20852;&#36259;&#12290;&#25105;&#36824;&#23545;&#31038;&#32676;&#12289;&#24515;&#29702;&#23398;&#20197;&#21450;&#24110;&#21161;&#20182;&#20154;&#20805;&#28385;&#28909;&#24773;&#12290;&#24403;&#25105;&#31532;&#19968;&#27425;&#21548;&#21040; DevOps &#26102;&#65292;&#36825;&#20010;&#27010;&#24565;&#28608;&#36215;&#20102;&#25105;&#30340;&#20852;&#36259;&#65292;&#22240;&#20026;&#23427;&#30475;&#36215;&#26469;&#34701;&#21512;&#20102;&#24456;&#22810;&#25105;&#24863;&#20852;&#36259;&#30340;&#19996;&#35199;&#65292;&#21363;&#20415;&#25105;&#26159;&#19981;&#20889;&#20195;&#30721;&#30340;&#12290;&#25105;&#30340;&#31532;&#19968;&#21488;&#30005;&#33041;&#26159; TRS-80&#65292;&#25105;&#21916;&#27426;&#22312;&#19978;&#38754;&#32534;&#20889; BASIC &#31243;&#24207;&#12290;&#25105;&#21482;&#19978;&#36807;&#20004;&#38376;&#25105;&#30340;&#39640;&#20013;&#24320;&#35774;&#30340;&#35745;&#31639;&#26426;&#32534;&#31243;&#35838;&#31243;&#12290;&#33509;&#24178;&#24180;&#21518;&#65292;&#25105;&#21019;&#21150;&#20102;&#19968;&#23478;&#35745;&#31639;&#26426;&#20844;&#21496;&#12290;&#25105;&#23450;&#21046;&#37038;&#20214;&#26631;&#31614;&#21644;&#20449;&#32440;&#65292;&#24182;&#24314;&#31435;&#20102;&#19968;&#20010;&#25968;&#25454;&#24211;&#26469;&#23384;&#20648;&#22320;&#22336;&#12290;&#38382;&#39064;&#26159;&#25105;&#24182;&#19981;&#33021;&#20174;&#20889;&#20195;&#30721;&#20013;&#33719;&#24471;&#20139;&#21463;&#12290;&#25105;&#24819;&#35201;&#25945;&#32946;&#21644;&#24110;&#21161;&#20154;&#20204;&#65292;&#25105;&#27809;&#27861;&#23558;&#20889;&#20195;&#30721;&#30475;&#20316;&#36825;&#26679;&#30340;&#19968;&#20010;&#26426;&#20250;&#12290;&#26159;&#30340;&#65292;&#25216;&#26415;&#21487;&#20197;&#24110;&#21161;&#20154;&#20204;&#24182;&#25913;&#21464;&#29983;&#27963;&#65292;&#20294;&#26159;&#20889;&#20195;&#30721;&#27809;&#26377;&#28857;&#29123;&#25105;&#30340;&#28909;&#24773;&#12290;&#25105;&#38656;&#35201;&#23545;&#25105;&#30340;&#24037;&#20316;&#24863;&#21040;&#20852;&#22859;&#24182;&#20570;&#25105;&#21916;&#27426;&#30340;&#20107;&#24773;&#12290;&#25105;&#21457;&#29616;&#25105;&#29233; DevOps&#12290;&#23545;&#25105;&#32780;&#35328;&#65292;DevOps &#25351;&#30340;&#26159;&#65306;&#25991;&#21270;&#65292;&#32780;&#19981;&#26159;&#20195;&#30721;&#36807;&#31243;&#65292;&#32780;&#19981;&#26159;&#32467;&#26524;&#24314;&#31435;&#19968;&#20010;&#25152;&#26377;&#20154;&#21487;&#20197;&#25345;&#32493;&#25552;&#21319;&#30340;&#29615;&#22659;&#27807;&#36890;&#19982;&#21512;&#20316;&#65292;&#32780;&#19981;&#26159;&#29420;&#31435;&#24037;&#20316;&#24402;&#26681;&#32467;&#24213;&#65292;DevOps &#26159;&#25351;&#25104;&#20026;&#31038;&#21306;&#24037;&#20316;&#30340;&#19968;&#37096;&#20998;&#65292;&#23454;&#29616;&#20849;&#21516;&#30340;&#30446;&#26631;&#12290;DevOps &#34701;&#21512;&#20102;&#24515;&#29702;&#23398;&#12289;&#31038;&#32676;&#12289;&#25216;&#26415;&#12290;DevOps &#19981;&#26159;&#19968;&#20010;&#32844;&#20301;&#21517;&#31216;&#65292;&#23427;&#26159;&#19968;&#31181;&#29983;&#27963;&#21644;&#24037;&#20316;&#30340;&#21746;&#23398;&#12290;&#25214;&#21040;&#25105;&#30340;&#31038;&#32676;&#24555;&#22235;&#24180;&#21069;&#65292;&#25105;&#22312;&#35199;&#38597;&#22270;&#21442;&#21152;&#20102;&#25105;&#30…
在 Linux 终端中观看火焰

何不在命令行中进行一次“烧烤”呢?Media

via https://linux.cn/article-10387-1.html
&#22312; Linux &#32456;&#31471;&#20013;&#35266;&#30475;&#28779;&#28976;

&#20309;&#19981;&#22312;&#21629;&#20196;&#34892;&#20013;&#36827;&#34892;&#19968;&#27425;“&#28903;&#28900;”&#21602;&#65311;<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/26/200328cl8ncxkp8w8xznn4.png">Media</a>&#36825;&#37324;&#26159;&#12298;24 &#22825;&#20102;&#35299; Linux &#21629;&#20196;&#34892;&#23567;&#29609;&#24847;&#12299;&#12290;&#22914;&#26524;&#20320;&#26410;&#26366;&#35835;&#36807;&#26412;&#31995;&#21015;&#30340;&#25991;&#31456;&#65292;&#21487;&#20197;&#22312;&#26412;&#25991;&#30340;&#32467;&#23614;&#37096;&#20998;&#33719;&#21462;&#19978;&#19968;&#31687;&#25991;&#31456;&#30340;&#38142;&#25509;&#65292;&#20197;&#20102;&#35299;&#26412;&#31995;&#21015;&#30340;&#22823;&#27010;&#20869;&#23481;&#12290;&#25105;&#20204;&#25152;&#20171;&#32461;&#30340;&#21629;&#20196;&#34892;&#23567;&#29609;&#24847;&#21487;&#20379;&#20320;&#28040;&#36963;&#26080;&#32842;&#26102;&#20809;&#12290;&#20320;&#25110;&#35768;&#30693;&#36947;&#23427;&#20204;&#20854;&#20013;&#30340;&#19968;&#20123;&#65292;&#20063;&#21487;&#33021;&#19981;&#26366;&#30693;&#26195;&#23427;&#20204;&#12290;&#26080;&#35770;&#22914;&#20309;&#65292;&#25105;&#20204;&#37117;&#24076;&#26395;&#20320;&#33021;&#24230;&#36807;&#19968;&#27573;&#24841;&#24555;&#30340;&#26102;&#20809;&#12290;&#22914;&#26524;&#20320;&#20303;&#22312;&#21271;&#21322;&#29699;&#30340;&#38750;&#28909;&#24102;&#22320;&#21306;&#65292;&#21487;&#33021;&#20908;&#23395;&#26469;&#20020;&#26102;&#20320;&#20250;&#34987;&#20923;&#24471;&#28385;&#33080;&#36890;&#32418;&#12290;&#20303;&#22312;&#36825;&#37324;&#30340;&#25105;&#65292;&#26368;&#21916;&#27426;&#30340;&#20107;&#24773;&#20415;&#26159;&#22312;&#28779;&#28809;&#26049;&#24812;&#24847;&#22320;&#36793;&#21917;&#33590;&#36793;&#35835;&#20070;&#12290;&#19981;&#24184;&#30340;&#26159;&#65292;&#25105;&#23478;&#21018;&#22909;&#32570;&#20010;&#25918;&#28779;&#28809;&#30340;&#22320;&#26041;&#12290;&#19981;&#36807;&#65292;&#22810;&#20111;&#20102;&#20170;&#22825;&#25105;&#35201;&#20171;&#32461;&#30340; aafire &#65292;&#25105;&#20173;&#28982;&#21487;&#20197;&#20551;&#35013;&#25105;&#22352;&#22312;&#28779;&#28809;&#26049;&#12290;&#22312;&#25105;&#25152;&#20351;&#29992;&#30340;&#31995;&#32479;&#37324;&#65292; aafire &#34987;&#25171;&#21253;&#36827;&#20102; aalib &#12290; aalib &#26159;&#19968;&#20010;&#21463;&#20154;&#21916;&#29233;&#30340;&#24211;&#65292;&#23427;&#21487;&#20197;&#24456;&#26041;&#20415;&#22320;&#23558;&#22270;&#20687;&#36716;&#25442;&#25104; ASCII &#22270;&#24182;&#36755;&#20986;&#21040;&#32456;&#31471;&#65288;&#25110;&#20854;&#23427;&#20219;&#20309;&#22320;&#26041;&#65289;&#12290; aalib &#23558;&#22810;&#31181;&#22810;&#26679;&#30340;&#22270;&#20687;&#24102;&#20837;&#20102; Linux &#32456;&#31471;&#12290;&#20320;&#21487;&#20197;&#30475;&#30475;&#26412;&#31995;&#21015;&#30340;&#20854;&#23427;&#25991;&#31456;&#65292;&#20102;&#35299;&#19968;&#19979;&#20854;&#23427;&#23567;&#31243;&#24207;&#65292;&#20197;&#20415;&#37197;&#21512;&#20351;&#29992;&#24182;&#20805;&#20998;&#21033;&#29992;&#23427;&#20204;&#12290;&#22312; Fedora &#20013;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807;&#20197;&#19979;&#21629;&#20196;&#26469;&#23433;&#35013; aalib &#65306;<pre class="prettyprint linenums">$ sudo dnf install aalib</pre>&#25509;&#30528;&#65292;&#35797;&#30528;&#36816;&#34892; aafire &#21629;&#20196;&#12290; aalib &#40664;&#35748;&#20250;&#20351;&#29992; GUI &#27169;&#24335;&#65292;&#25105;&#20204;&#35201;&#36827;&#34892;&#19968;&#20123;&#25805;&#20316;&#26469;&#35753;&#23427;&#22312;&#32456;&#31471;&#20013;&#36816;&#34892;&#65288;&#27605;&#31455;&#36825;&#19968;&#31995;&#21015;&#25991;&#31456;&#37117;&#35762;&#30340;&#26159;&#21629;&#20196;&#34892;&#65289;&#12290;&#21313;&#20998;&#24184;&#36816;&#30340;&#26159;&#65292;&#20165;&#38656;&#23433;&#35013; <a href="https://en.wikipedia.org/wiki/Curses_(programming_library)">curses</a> &#23601;&#33021;&#23454;&#29616;&#25105;&#20204;&#24819;&#3…
27 个全方位的开放式教育解决方案

阅读这些 2017 年 Opensource.com 发布的开放如何改进教育和学习的好文章。Media

via https://linux.cn/article-10388-1.html
27 &#20010;&#20840;&#26041;&#20301;&#30340;&#24320;&#25918;&#24335;&#25945;&#32946;&#35299;&#20915;&#26041;&#26696;

&#38405;&#35835;&#36825;&#20123; 2017 &#24180; Opensource.com &#21457;&#24067;&#30340;&#24320;&#25918;&#22914;&#20309;&#25913;&#36827;&#25945;&#32946;&#21644;&#23398;&#20064;&#30340;&#22909;&#25991;&#31456;&#12290;<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/26/211736vbywyn5lbbnnn4ll.png">27 open solutions to everything in education</a>&#24320;&#25918;&#24335;&#29702;&#24565; (&#20174;&#24320;&#28304;&#36719;&#20214;&#21040;&#24320;&#25918;&#30828;&#20214;&#65292;&#20877;&#21040;&#24320;&#25918;&#21407;&#21017;) &#27491;&#22312;&#25913;&#21464;&#25945;&#32946;&#30340;&#33539;&#24335;&#12290;&#22240;&#27492;&#65292;&#20026;&#20102;&#24198;&#31069;&#20170;&#24180;&#21457;&#29983;&#30340;&#19968;&#20999;&#65292;&#25105;&#25910;&#38598;&#20102; 2017 &#24180;&#65288;&#35793;&#27880;&#65306;&#26412;&#25991;&#21407;&#21457;&#24067;&#20110; 2018 &#24180;&#21021;&#65289;&#22312; Opensource.com &#19978;&#21457;&#34920;&#30340; 27 &#31687;&#20851;&#20110;&#36825;&#20010;&#20027;&#39064;&#30340;&#26368;&#22909;&#30340;&#25991;&#31456;&#12290;&#25105;&#25226;&#23427;&#20204;&#20998;&#25104;&#26126;&#30830;&#30340;&#20027;&#39064;&#65292;&#32780;&#19981;&#26159;&#25353;&#20154;&#27668;&#26469;&#20998;&#31867;&#12290;&#32780;&#19988;&#65292;&#22914;&#26524;&#36825; 27 &#20010;&#25925;&#20107;&#19981;&#33021;&#28385;&#36275;&#20320;&#23545;&#25945;&#32946;&#26041;&#38754;&#24320;&#28304;&#20449;&#24687;&#30340;&#32963;&#21475;&#65292;&#37027;&#23601;&#30475;&#30475;&#25105;&#20204;&#30340;&#21512;&#20316;&#25991;&#31456;&#21543; “<a href="https://opensource.com/article/17/12/best-opensourcecom-linux-and-raspberry-pi-education">&#25945;&#32946;&#22914;&#20309;&#20511;&#21161; Linux &#21644;&#26641;&#33683;&#27966;</a>”&#12290;&#24320;&#25918;&#23545;&#27599;&#20010;&#20154;&#37117;&#26377;&#22909;&#22788;<a href="https://opensource.com/article/17/7/book-review-open">&#20070;&#35780;&#65306;&#12298;OPEN&#12299;&#25506;&#35752;&#20102;&#24320;&#25918;&#24615;&#30340;&#24191;&#27867;&#25991;&#21270;&#21547;&#20041;</a>&#65306;Scott Nesbitt &#35780;&#20215; David Price &#30340;&#20070; &#12298;OPEN&#12299; &#65292;&#35813;&#20070;&#25506;&#35752;&#20102; “&#24320;&#25918;” &#19981;&#20165;&#20165;&#26159;&#25216;&#26415;&#36716;&#21464;&#30340;&#35266;&#28857;&#65292;&#32780;&#26159; “&#25105;&#20204;&#26410;&#26469;&#23558;&#22914;&#20309;&#24037;&#20316;&#12289;&#29983;&#27963;&#21644;&#23398;&#20064;”&#12290;<a href="https://opensource.com/article/17/8/jump-start-your-career">&#36890;&#36807;&#24320;&#28304;&#25216;&#33021;&#24555;&#36895;&#24320;&#22987;&#24744;&#30340;&#32844;&#19994;&#29983;&#28079;</a>: VM (Vicky) Brasseur &#25351;&#20986;&#20102;&#22914;&#20309;&#20511;&#21161;&#23398;&#20064;&#24320;&#28304;&#22312;&#24037;&#20316;&#32676;&#20307;&#20013;&#33073;&#39062;&#32780;&#20986;&#12290;&#36825;&#20010;&#24314;&#35758;&#19981;&#20165;&#20165;&#26159;&#38024;&#23545;&#31243;&#24207;&#21592;&#30340;&#65307;&#35774;&#35745;&#24072;&#12289;&#20316;&#23478;&#12289;&#33829;&#38144;&#20154;&#21592;&#21644;&#20854;&#20182;&#21019;&#24847;&#19987;&#19994;&#20154;&#22763;&#20063;&#23545;&#24320;&#28304;&#30340;&#25104;&#21151;&#33267;&#20851;&#37325;&#35201;&#12290;<a href="https://opensource.com/article/17/1/grad-school-open-source-academic-lab">&#30740;&#31350;&#29983;&#23398;&#20301;&#21487;&#20197;&#35753;&#20320;&#36339;&#27133;&#21040;&#24320;&#28304;&#32844;&#20301;</a>&#65306;&#24341;&#29992;&#30340;&#30740;&#31350;&#34920;&#26126;&#20250; Linux &#25216;&#33021;&#20250;&#24102;&#26469;&#26356;&#39640;&#30340;&#34218;&#27700;&#65292; Joshua Pearce &#35828;&#23545;&#24320;&#28304;&#30340;&#29087;&#32451;&#21644;&#30740;&#31350;&#29983;&#23398;&#20301;&#26159;&#26080;&#19982;&#20262;&#27604;&#30340;&#32844;&#19994;&#25216;&#33021;&#32452;&#21512;&#12290;<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
Caffeinated 6.828&#65306;&#23454;&#39564; 5&#65306;&#25991;&#20214;&#31995;&#32479;&#12289;Spawn &#21644; Shell

<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/27/125429u3xhxx1urgh9zkkl.jpg">Media</a>&#31616;&#20171;&#22312;&#26412;&#23454;&#39564;&#20013;&#65292;&#20320;&#23558;&#35201;&#21435;&#23454;&#29616; spawn&#65292;&#23427;&#26159;&#19968;&#20010;&#21152;&#36733;&#21644;&#36816;&#34892;&#30913;&#30424;&#19978;&#21487;&#36816;&#34892;&#25991;&#20214;&#30340;&#24211;&#35843;&#29992;&#12290;&#28982;&#21518;&#65292;&#20320;&#25509;&#30528;&#35201;&#21435;&#20805;&#23454;&#20320;&#30340;&#20869;&#26680;&#21644;&#24211;&#65292;&#20197;&#20351;&#25805;&#20316;&#31995;&#32479;&#33021;&#22815;&#22312;&#25511;&#21046;&#21488;&#19978;&#36816;&#34892;&#19968;&#20010; shell&#12290;&#32780;&#36825;&#20123;&#29305;&#24615;&#38656;&#35201;&#19968;&#20010;&#25991;&#20214;&#31995;&#32479;&#65292;&#26412;&#23454;&#39564;&#23558;&#24341;&#20837;&#19968;&#20010;&#21487;&#35835;/&#20889;&#30340;&#31616;&#21333;&#25991;&#20214;&#31995;&#32479;&#12290;&#39044;&#22791;&#30693;&#35782;&#20351;&#29992; Git &#21435;&#33719;&#21462;&#26368;&#26032;&#29256;&#30340;&#35838;&#31243;&#20179;&#24211;&#65292;&#28982;&#21518;&#21019;&#24314;&#19968;&#20010;&#21629;&#21517;&#20026; lab5 &#30340;&#26412;&#22320;&#20998;&#25903;&#65292;&#21435;&#36319;&#36394;&#36828;&#31243;&#30340; origin/lab5 &#20998;&#25903;&#65306;<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>&#22312;&#23454;&#39564;&#20013;&#36825;&#19968;&#37096;&#20998;&#30340;&#20027;&#35201;&#26032;&#32452;&#20214;&#26159;&#25991;&#20214;&#31995;&#32479;&#29615;&#22659;&#65292;&#23427;&#20301;&#20110;&#26032;&#30340; fs &#30446;&#24405;&#19979;&#12290;&#36890;&#36807;&#26816;&#26597;&#36825;&#20010;&#30446;&#24405;&#20013;&#30340;&#25152;&#26377;&#25991;&#20214;&#65292;&#25105;&#20204;&#26469;&#30475;&#19968;&#19979;&#26032;&#30340;&#25991;&#20214;&#37117;&#26377;&#20160;&#20040;&#12290;&#21478;&#22806;&#65292;&#22312; user &#21644; lib &#30446;&#24405;&#19979;&#36824;&#26377;&#19968;&#20123;&#25991;&#20214;&#31995;&#32479;&#30456;&#20851;&#30340;&#28304;&#25991;&#20214;&#12290;fs/fs.c &#32500;&#25252;&#25991;&#20214;&#31995;&#32479;&#22312;&#30913;&#30424;&#19978;&#32467;&#26500;&#30340;&#20195;&#30721;fs/bc.c &#26500;&#24314;&#22312;&#25105;&#20204;&#30340;&#29992;&#25143;&#32423;&#39029;&#25925;&#38556;&#22788;&#29702;&#21151;&#33021;&#20043;&#19978;&#30340;&#19968;&#20010;&#31616;&#21333;&#30340;&#22359;&#32531;&#23384;fs/ide.c &#26497;&#31616;&#30340;&#22522;&#20110; PIO&#65288;&#38750;&#20013;&#26029;&#39537;&#21160;&#30340;&#65289;IDE &#39537;&#21160;&#31243;&#24207;&#20195;&#30721;fs/serv.c &#20351;&#29992;&#25991;&#20214;&#31995;&#32479; IPC &#19982;&#23458;&#25143;&#31471;&#29615;&#22659;&#20132;&#20114;&#30340;&#25991;&#20214;&#31995;&#32479;&#26381;&#21153;&#22120;lib/fd.c &#23454;&#29616;&#19968;&#20010;&#24120;&#35265;&#30340;&#31867; UNIX &#30340;&#25991;&#20214;&#25551;&#36848;&#31526;&#25509;&#21475;&#30340;&#20195;&#30721;lib/file.c &#30913;&#30424;&#19978;&#25991;&#20214;&#31867;&#22411;&#30340;&#39537;&#21160;&#65292;&#23454;&#29616;&#20026;&#19968;&#20010;&#25991;&#20214;&#31995;&#32479; IPC &#23458;&#25143;&#31471;lib/console.c &#25511;&#21046;&#21488;&#36755;&#20837;/&#36755;&#20986;&#25991;&#20214;&#31867;&#22411;&#30340;&#39537;&#21160;lib/spawn.c spawn &#24211;&#35843;&#29992;&#30340;&#26694;&#26550;&#20195;&#30721;&#20320;&#24212;&#35813;&#20877;&#27425;&#21435;&#36816;&#34892; pingpong&#12289;primes &#21644; forktree&#65292;&#27979;&#35797;&#23454;&#39564; 4 &#23436;&#25104;&#21518;&#21512;&#24182;&#21040;&#26032;&#30340;&#23454;&#39564; 5 &#20013;&#30340;&#20195;&#30721;&#33021;&#21542;&#27491…
在你的终端里探索海洋的秘密

“亲爱的,当您的命令行变得更湿润的时候会更好。这多亏了 ASCII。”Media

via https://linux.cn/article-10390-1.html
&#22312;&#20320;&#30340;&#32456;&#31471;&#37324;&#25506;&#32034;&#28023;&#27915;&#30340;&#31192;&#23494;

“&#20146;&#29233;&#30340;&#65292;&#24403;&#24744;&#30340;&#21629;&#20196;&#34892;&#21464;&#24471;&#26356;&#28287;&#28070;&#30340;&#26102;&#20505;&#20250;&#26356;&#22909;&#12290;&#36825;&#22810;&#20111;&#20102; ASCII&#12290;”<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/27/192002aozxs5jrwnqwq2xj.png">Media</a>&#29616;&#22312;&#65292;&#25105;&#20204;&#21363;&#23558;&#25968;&#23436;&#38271;&#36798; 24 &#22825;&#30340; Linux &#21629;&#20196;&#34892;&#29609;&#20855;&#26085;&#21382;&#12290;&#31163;&#20170;&#22825;&#21482;&#21097;&#19968;&#21608;&#20102;&#65281;&#22914;&#26524;&#36825;&#26159;&#24744;&#31532;&#19968;&#27425;&#35775;&#38382;&#26412;&#31995;&#21015;&#25991;&#31456;&#65292;&#37027;&#20040;&#24744;&#21487;&#33021;&#20250;&#38382;&#33258;&#24049;&#20160;&#20040;&#26159;&#21629;&#20196;&#34892;&#29609;&#20855;&#12290;&#25105;&#20204;&#19968;&#36793;&#36208;&#65292;&#19968;&#36793;&#35828;&#65292;&#20294;&#19968;&#33324;&#26469;&#35828;&#65292;&#36825;&#21487;&#33021;&#26159;&#19968;&#20010;&#28216;&#25103;&#65292;&#25110;&#32773;&#21487;&#20197;&#24110;&#21161;&#20320;&#22312;&#32456;&#31471;&#29609;&#24471;&#24320;&#24515;&#30340;&#20219;&#20309;&#31616;&#21333;&#30340;&#23089;&#20048;&#27963;&#21160;&#12290;&#20320;&#20204;&#20854;&#20013;&#30340;&#19968;&#20123;&#20154;&#21487;&#33021;&#24050;&#32463;&#22312;&#20197;&#21069;&#30340;&#31995;&#21015;&#25991;&#31456;&#20013;&#30475;&#21040;&#20102;&#21508;&#31181;&#21508;&#26679;&#30340;&#21629;&#20196;&#34892;&#29609;&#20855;&#12290;&#20294;&#26159;&#65292;&#25105;&#20204;&#24076;&#26395;&#27599;&#20010;&#20154;&#37117;&#33021;&#22815;&#33719;&#24471;&#19968;&#20010;&#26032;&#29609;&#20855;&#12290;&#20170;&#22825;&#30340;&#29609;&#20855;&#26377;&#19968;&#28857;&#40060;&#30340;&#21619;&#36947;&#12290;&#20808;&#21644; asciiquarium &#25171;&#20010;&#25307;&#21628;&#65292;&#19968;&#20010;&#22312;&#20320;&#32456;&#31471;&#37324;&#28023;&#24213;&#20882;&#38505;&#30340;&#29609;&#20855;&#12290;&#25105;&#26159;&#22312;&#25105;&#30340; Fedora &#20179;&#24211;&#37324;&#21457;&#29616; asciiquarium &#30340;&#65292;&#22240;&#27492;&#23433;&#35013;&#23427;&#38750;&#24120;&#23481;&#26131;&#65306;<pre class="prettyprint linenums">$ sudo dnf install asciiquarium</pre>&#22914;&#26524;&#24744;&#27491;&#22312;&#36816;&#34892;&#19981;&#21516;&#30340;&#21457;&#34892;&#29256;&#65292;&#37027;&#20040;&#23427;&#20063;&#21487;&#33021;&#24050;&#32463;&#20026;&#24744;&#25171;&#21253;&#12290; &#21482;&#38656;&#22312;&#24744;&#30340;&#32456;&#31471;&#20013;&#36816;&#34892; asciiquarium &#21363;&#21487;&#24863;&#21463;&#21040;&#34532;&#34570;&#30340;&#24555;&#20048;&#12290; &#35813;&#39033;&#30446;&#20063;&#22312;&#32456;&#31471;&#20043;&#22806;&#36827;&#34892;&#20102;“&#32763;&#35793;”&#65292;&#25152;&#26377;&#27700;&#26063;&#20249;&#20276;&#30340;&#23631;&#20445;&#37117;&#26159;&#20026;&#20960;&#20010;&#38750; Linux &#25805;&#20316;&#31995;&#32479;&#21046;&#20316;&#30340;&#65292;&#29978;&#33267;&#36824;&#26377;&#19968;&#20010; Android &#21160;&#24577;&#22721;&#32440;&#29256;&#26412;&#12290;&#35775;&#38382; asciiquarium <a href="https://robobunny.com/projects/asciiquarium/html/">&#20027;&#39029;</a>&#20102;&#35299;&#26356;&#22810;&#20449;&#24687;&#25110;&#19979;&#36733; Perl &#28304;&#20195;&#30721;&#12290; &#35813;&#39033;&#30446;&#26159; GPL &#31532; 2 &#29256;&#35768;&#21487;&#35777;&#19979;&#30340;&#24320;&#28304;&#39033;&#30446;&#12290; &#22914;&#26524;&#20320;&#24819;&#26356;&#22810;&#22320;&#20102;&#35299;&#24320;&#28304;&#65292;&#24320;&#25918;&#25968;&#25454;&#21644;&#24320;&#25918;&#31185;&#23398;&#22914;&#20309;&#22312;&#23454;&#38469;&#30340;&#28023;&#27915;&#20013;&#21457;&#25381;&#20316;&#29992;&#65292;&#35831;&#33457;&#28857;&#26102;&#38388;&#21435;&#20102;&#35299;<a href="https://opensource.com/article/18/12/protecting-world-oceans">&#28023;&#27915;&#20581;&#24247;…
糖尿病患者们是怎样使用开源造出自己的医疗设备的

Red Hat 的 2018 女性开源社区奖获得者 Dana Lewis 的故事。Media

via https://linux.cn/article-10391-1.html
&#31958;&#23615;&#30149;&#24739;&#32773;&#20204;&#26159;&#24590;&#26679;&#20351;&#29992;&#24320;&#28304;&#36896;&#20986;&#33258;&#24049;&#30340;&#21307;&#30103;&#35774;&#22791;&#30340;

Red Hat &#30340; 2018 &#22899;&#24615;&#24320;&#28304;&#31038;&#21306;&#22870;&#33719;&#24471;&#32773; Dana Lewis &#30340;&#25925;&#20107;&#12290;<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/27/194646n3swww32uj3r5wnm.png">Media</a>Dana Lewis &#34987;&#35780;&#36873;&#20026;<a href="https://www.redhat.com/en/about/women-in-open-source">&#24320;&#28304;&#31038;&#21306; 2018 &#24180;&#24230;&#26368;&#20339;&#22899;&#24615;</a>&#65281;&#19979;&#38754;&#26159;&#24320;&#28304;&#24590;&#26679;&#25913;&#21892;&#20102;&#22905;&#30340;&#20581;&#24247;&#30340;&#25925;&#20107;&#12290;Dana &#24739;&#26377; I &#22411;&#31958;&#23615;&#30149;&#65292;&#20294;&#24403;&#26102;&#24066;&#38754;&#19978;&#27969;&#36890;&#30340;&#33647;&#21697;&#21644;&#21307;&#30103;&#35774;&#22791;&#37117;&#23545;&#22905;&#26080;&#25928;&#12290;&#22905;&#29992;&#26469;&#31649;&#29702;&#34880;&#31958;&#30340;&#21160;&#24577;&#34880;&#31958;&#30417;&#27979;&#65288;CGM&#65289;&#25253;&#35686;&#22120;&#30340;&#22768;&#38899;&#22826;&#23567;&#20102;&#65292;&#26681;&#26412;&#21483;&#19981;&#37266;&#29087;&#30561;&#30340;&#22905;&#65292;&#20135;&#21697;&#36825;&#26679;&#30340;&#35774;&#35745;&#26080;&#27861;&#20445;&#35777;&#22905;&#27599;&#22825;&#30561;&#30496;&#26102;&#38388;&#30340;&#29983;&#21629;&#23433;&#20840;&#12290;“&#25105;&#21644;&#29983;&#20135;&#21378;&#23478;&#35265;&#20102;&#19968;&#38754;&#21830;&#35758;&#25552;&#20986;&#24847;&#35265;&#65292;&#21378;&#23478;&#30340;&#22238;&#22797;&#26159;‘&#25105;&#20204;&#20135;&#21697;&#30340;&#38899;&#37327;&#24050;&#32463;&#36275;&#22815;&#22823;&#20102;&#65292;&#24456;&#23569;&#26377;&#20154;&#21483;&#19981;&#37266;’&#65292;&#25105;&#34987;&#21578;&#30693;‘&#36825;&#19981;&#26159;&#26222;&#36941;&#38382;&#39064;&#65292;&#25105;&#20204;&#27491;&#22312;&#25913;&#36827;&#65292;&#35831;&#26399;&#24453;&#25105;&#20204;&#30340;&#26032;&#20135;&#21697;&#12290;’&#21548;&#21040;&#36825;&#20123;&#26102;&#25105;&#30495;&#30340;&#24456;&#25387;&#36133;&#65292;&#20294;&#25105;&#20174;&#27809;&#24819;&#35937;&#36807;&#25105;&#33021;&#20570;&#20986;&#20160;&#20040;&#25913;&#21464;&#65292;&#27605;&#31455;&#37027;&#26159;&#36890;&#36807;&#20102; FDA &#26631;&#20934;&#30340;&#21307;&#30103;&#35774;&#22791;&#65292;&#19981;&#26159;&#25105;&#20204;&#33021;&#38543;&#24847;&#25913;&#21464;&#30340;&#12290;”&#38754;&#20020;&#30528;&#36825;&#20123;&#38459;&#30861;&#65292;Dana &#24819;&#30528;&#22914;&#26524;&#22905;&#33021;&#25226;&#33258;&#24049;&#30340;&#25968;&#25454;&#20174;&#35774;&#22791;&#37324;&#23548;&#20986;&#65292;&#23601;&#21487;&#20197;&#35774;&#32622;&#25163;&#26426;&#38393;&#38083;&#26469;&#21483;&#37266;&#33258;&#24049;&#12290;&#22312; 2013 &#24180;&#26411;&#65292;&#22905;&#30475;&#21040;&#30340;&#19968;&#26465;&#25512;&#29305;&#35299;&#20915;&#20102;&#22905;&#30340;&#30097;&#38382;&#12290;&#37027;&#26465;&#25512;&#29305;&#30340;&#20316;&#32773;&#26159;&#19968;&#20301;&#31958;&#23615;&#30149;&#24739;&#20799;&#30340;&#23478;&#38271;&#65292;&#20182;&#25226;&#21160;&#24577;&#34880;&#31958;&#30417;&#27979;&#20202;&#36827;&#34892;&#20102;&#36870;&#21521;&#24037;&#31243;&#65292;&#36825;&#26679;&#23601;&#21487;&#20197;&#23548;&#20986;&#23401;&#23376;&#30340;&#34880;&#31958;&#25968;&#25454;&#36827;&#34892;&#36828;&#31243;&#30417;&#25511;&#20102;&#12290;&#22905;&#24847;&#35782;&#21040;&#22914;&#26524;&#23545;&#26041;&#24895;&#24847;&#25226;&#36807;&#31243;&#20998;&#20139;&#32473;&#22905;&#65292;&#22905;&#20063;&#21487;&#20197;&#29992;&#37027;&#20123;&#20195;&#30721;&#20570;&#19968;&#20010;&#33258;&#24049;&#30340;&#21709;&#20142;&#30340;&#34880;&#31958;&#30417;&#27979;&#20202;&#20102;&#12290;“&#25105;&#24182;&#19981;&#30693;&#36947;&#21521;&#21035;&#20154;&#35201;&#28304;&#20195;&#30721;&#26159;&#20214;&#31232;&#26494;&#24179;&#241…
如何在 Linux 中安装 Rust 编程语言

Rust 通常被称为 rust-lang。Rust 是一个由 Mozilla Research 赞助的通用的、多范式、现代的、跨平台和开源系统编程语言。Media

via https://linux.cn/article-10392-1.html