Caffeinated 6.828:实验 4:抢占式多任务处理
在本实验中,你将在多个同时活动的用户模式环境之间实现抢占式多任务处理。Media
via https://linux.cn/article-10351-1.html
在本实验中,你将在多个同时活动的用户模式环境之间实现抢占式多任务处理。Media
via https://linux.cn/article-10351-1.html
Caffeinated 6.828:实验 4:抢占式多任务处理
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/16/125727xit7uuvtt0r7j715.jpg">Media简介在本实验中,你将在多个同时活动的用户模式环境之间实现抢占式多任务处理。在 Part A 中,你将在 JOS 中添加对多处理器的支持,以实现循环调度。并且添加基本的环境管理方面的系统调用(创建和销毁环境的系统调用、以及分配/映射内存)。在 Part B 中,你将要实现一个类 Unix 的 fork(),它将允许一个用户模式中的环境去创建一个它自已的副本。最后,在 Part C 中,你将在 JOS 中添加对进程间通讯(IPC)的支持,以允许不同用户模式环境之间进行显式通讯和同步。你也将要去添加对硬件时钟中断和优先权的支持。预备知识使用 git 去提交你的实验 3 的源代码,并获取课程仓库的最新版本,然后创建一个名为 lab4 的本地分支,它跟踪我们的名为 origin/lab4 的远程 lab4 分支:<pre class="prettyprint linenums"> athena% cd ~/6.828/lab athena% add git athena% git pull Already up-to-date. athena% git checkout -b lab4 origin/lab4 Branch lab4 set up to track remote branch refs/remotes/origin/lab4. Switched to a new branch "lab4" athena% git merge lab3 Merge made by recursive. ... athena%</pre>实验 4 包含了一些新的源文件,在开始之前你应该去浏览一遍:<pre class="prettyprint linenums">kern/cpu.h Kernel-private definitions for multiprocessor supportkern/mpconfig.c Code to read the multiprocessor configuration kern/lapic.c Kernel code driving the local APIC unit in each processorkern/mpentry.S Assembly-language entry code for non-boot CPUskern/spinlock.h Kernel-private definitions for spin locks, including the big kernel lock kern/spinlock.c Kernel code implementing spin lockskern/sched.c Code skeleton of the scheduler that you are about to implement</pre>实验要求本实验分为三部分:Part A、Part B 和 Part C。我们计划为每个部分分配一周的时间。和以前一样,你需要完成实验中出现的、所有常规练ߖ…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/16/125727xit7uuvtt0r7j715.jpg">Media简介在本实验中,你将在多个同时活动的用户模式环境之间实现抢占式多任务处理。在 Part A 中,你将在 JOS 中添加对多处理器的支持,以实现循环调度。并且添加基本的环境管理方面的系统调用(创建和销毁环境的系统调用、以及分配/映射内存)。在 Part B 中,你将要实现一个类 Unix 的 fork(),它将允许一个用户模式中的环境去创建一个它自已的副本。最后,在 Part C 中,你将在 JOS 中添加对进程间通讯(IPC)的支持,以允许不同用户模式环境之间进行显式通讯和同步。你也将要去添加对硬件时钟中断和优先权的支持。预备知识使用 git 去提交你的实验 3 的源代码,并获取课程仓库的最新版本,然后创建一个名为 lab4 的本地分支,它跟踪我们的名为 origin/lab4 的远程 lab4 分支:<pre class="prettyprint linenums"> athena% cd ~/6.828/lab athena% add git athena% git pull Already up-to-date. athena% git checkout -b lab4 origin/lab4 Branch lab4 set up to track remote branch refs/remotes/origin/lab4. Switched to a new branch "lab4" athena% git merge lab3 Merge made by recursive. ... athena%</pre>实验 4 包含了一些新的源文件,在开始之前你应该去浏览一遍:<pre class="prettyprint linenums">kern/cpu.h Kernel-private definitions for multiprocessor supportkern/mpconfig.c Code to read the multiprocessor configuration kern/lapic.c Kernel code driving the local APIC unit in each processorkern/mpentry.S Assembly-language entry code for non-boot CPUskern/spinlock.h Kernel-private definitions for spin locks, including the big kernel lock kern/spinlock.c Kernel code implementing spin lockskern/sched.c Code skeleton of the scheduler that you are about to implement</pre>实验要求本实验分为三部分:Part A、Part B 和 Part C。我们计划为每个部分分配一周的时间。和以前一样,你需要完成实验中出现的、所有常规练ߖ…
神奇的 Linux 命令行字符形状工具 boxes
本文将教你如何在 Linux 命令行终端中使用 boxes 工具绘制字符形状图形来包装你的文字让其更突出。Media
via https://linux.cn/article-10352-1.html
本文将教你如何在 Linux 命令行终端中使用 boxes 工具绘制字符形状图形来包装你的文字让其更突出。Media
via https://linux.cn/article-10352-1.html
神奇的 Linux 命令行字符形状工具 boxes
本文将教你如何在 Linux 命令行终端中使用 boxes 工具绘制字符形状图形来包装你的文字让其更突出。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/16/193631nj5mt5htxujjcjeh.png">Media</a>现在正值假期,每个 Linux 终端用户都该得到一点礼物。无论你是庆祝圣诞节还是庆祝其他节日,或者什么节日也没有,都没有关系。我将在接下来的几周内介绍 24 个 Linux 命令行小玩具,供你把玩或者与朋友分享。让我们享受乐趣,让这个月过得快乐一点,因为对于北半球来说,这个月有点冷并且沉闷。对于我要讲述的内容,可能你之前就有些了解。但是,我还是希望我们都有机会学到一些新的东西(我做了一点研究,确保可以分享 24 个小玩具)。24 个 Linux 终端小玩具中的第一个是叫做 boxes 的小程序。为何从 boxes 说起呢?因为在没有它的情况下很难将所有其他命令礼物包装起来!在我的 Fedora 机器上,默认没有安装 boxes 程序,但它在我的普通仓库中可以获取到,所以用如下命令就可安装:<pre class="prettyprint linenums">$ sudo dnf install boxes -y</pre>如果你在使用其他 Linux 发行版,一般也都可以在默认仓库中找到 boxes。boxes 是我真正希望在高中和大学计算机课程中就使用的实用程序,因为善意的老师要求我在每个源文件、函数、代码块等开头添加一些特定外观的备注信息。<pre class="prettyprint linenums">/***************//* Hello World *//***************/</pre>事实证明,一旦你需要在框内添加几行文字,…
本文将教你如何在 Linux 命令行终端中使用 boxes 工具绘制字符形状图形来包装你的文字让其更突出。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/16/193631nj5mt5htxujjcjeh.png">Media</a>现在正值假期,每个 Linux 终端用户都该得到一点礼物。无论你是庆祝圣诞节还是庆祝其他节日,或者什么节日也没有,都没有关系。我将在接下来的几周内介绍 24 个 Linux 命令行小玩具,供你把玩或者与朋友分享。让我们享受乐趣,让这个月过得快乐一点,因为对于北半球来说,这个月有点冷并且沉闷。对于我要讲述的内容,可能你之前就有些了解。但是,我还是希望我们都有机会学到一些新的东西(我做了一点研究,确保可以分享 24 个小玩具)。24 个 Linux 终端小玩具中的第一个是叫做 boxes 的小程序。为何从 boxes 说起呢?因为在没有它的情况下很难将所有其他命令礼物包装起来!在我的 Fedora 机器上,默认没有安装 boxes 程序,但它在我的普通仓库中可以获取到,所以用如下命令就可安装:<pre class="prettyprint linenums">$ sudo dnf install boxes -y</pre>如果你在使用其他 Linux 发行版,一般也都可以在默认仓库中找到 boxes。boxes 是我真正希望在高中和大学计算机课程中就使用的实用程序,因为善意的老师要求我在每个源文件、函数、代码块等开头添加一些特定外观的备注信息。<pre class="prettyprint linenums">/***************//* Hello World *//***************/</pre>事实证明,一旦你需要在框内添加几行文字,…
从 Linux 终端查看笔记本电池状态和等级的 5 个方法
在 Linux 上有很多这样的实用工具,而且可以在命令行使用。Media
via https://linux.cn/article-10353-1.html
在 Linux 上有很多这样的实用工具,而且可以在命令行使用。Media
via https://linux.cn/article-10353-1.html
从 Linux 终端查看笔记本电池状态和等级的 5 个方法
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/16/201147imjo55telvtievof.jpg">Media</a>我们可以轻松地通过图形化界面查看当前电量百分比、是否在充电以及当前电量还可以使用多长时间等电池状态,但是却无法查看电池健康度等相关信息。在这篇文章就是为了解决这些问题。在 Linux 上有很多这样的实用工具,而且可以在命令行使用。这篇文章今天就要探讨这个主题,我会尽我所能的覆盖尽可能多的信息。每月检查一次你的电池健康度是一个很好的想法。它可以帮你检查你当前遇到的问题是否与电池或者充电相关。同时,我们也可以查看电池模组名称、电源、厂商以及电池规格等。电源管理是在不使用时关闭电源或者切换系统的组件到低耗模式的一种功能。几种在 Linux 下检查电池状态的实用工具upower:是一个命令行工具,其提供了罗列系统中电源的接口。acpi:显示来自 /proc 或者 /sys 文件系统中的一些信息,例如电池状态或者热量信息。batstat:是一个为 Linux 打印电池状态的命令行工具。tlp:可以为你带来更高级的电源管理,而无需修改任何配置。class file:这个 sysfs 文件系统是一个提供了内核数据结构接口的伪文件系统。如何使用 upower 命令检查笔记本电池状态<a href="https://upower.freedesktop.org/">upower</a> 是一个命令行工具,其提供了罗列系统中电源的接口。它在你的电脑上可以控制不同操作…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/16/201147imjo55telvtievof.jpg">Media</a>我们可以轻松地通过图形化界面查看当前电量百分比、是否在充电以及当前电量还可以使用多长时间等电池状态,但是却无法查看电池健康度等相关信息。在这篇文章就是为了解决这些问题。在 Linux 上有很多这样的实用工具,而且可以在命令行使用。这篇文章今天就要探讨这个主题,我会尽我所能的覆盖尽可能多的信息。每月检查一次你的电池健康度是一个很好的想法。它可以帮你检查你当前遇到的问题是否与电池或者充电相关。同时,我们也可以查看电池模组名称、电源、厂商以及电池规格等。电源管理是在不使用时关闭电源或者切换系统的组件到低耗模式的一种功能。几种在 Linux 下检查电池状态的实用工具upower:是一个命令行工具,其提供了罗列系统中电源的接口。acpi:显示来自 /proc 或者 /sys 文件系统中的一些信息,例如电池状态或者热量信息。batstat:是一个为 Linux 打印电池状态的命令行工具。tlp:可以为你带来更高级的电源管理,而无需修改任何配置。class file:这个 sysfs 文件系统是一个提供了内核数据结构接口的伪文件系统。如何使用 upower 命令检查笔记本电池状态<a href="https://upower.freedesktop.org/">upower</a> 是一个命令行工具,其提供了罗列系统中电源的接口。它在你的电脑上可以控制不同操作…
制定开源战略的免费指南
了解如何使用 TODO Group 的成熟实践,使您的组织的开源软件目标与您的业务目标保持一致。Media
via https://linux.cn/article-10354-1.html
了解如何使用 TODO Group 的成熟实践,使您的组织的开源软件目标与您的业务目标保持一致。Media
via https://linux.cn/article-10354-1.html
制定开源战略的免费指南
了解如何使用 TODO Group 的成熟实践,使您的组织的开源软件目标与您的业务目标保持一致。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/16/203806ezd0j0tcatkjukkt.jpg">Media</a>大多数使用开源的公司都了解其商业价值,但他们可能缺乏战略性地实施开源计划和获得全部回报的工具。根据 <a href="https://thenewstack.io/open-source-culture-starts-with-programs-and-policies/">The New Stack</a> 最近的一项调查,“开源计划的三大好处是 1)提高了对开源的认识,2)提高了开发周期的速度和灵活性,以及 3)更好的许可证合规性。”运作一个开源计划办公室涉及到创建策略来帮助你定义和实施你的方法,并衡量你的进度。由 Linux 基金会与 TODO Group 合作开发的<a href="https://www.linuxfoundation.org/resources/open-source-guides/">企业开源指南</a>基于多年的经验和实践提供了专业开源知识。最新的指南中,<a href="https://www.linuxfoundation.org/resources/open-source-guides/setting-an-open-source-strategy/">设置开源战略</a>详细介绍了制定战略和确保成功之路的基本步骤。根据该指南,“你的开源战略将管理、参与和创建开源软件的计划与计划所服务的业务目标联系起来。这可以开辟许多机会并促进创新。”该指南涵盖以下主题:为什么制定战略?你的战略文件战略方法关键考虑因素其他组成确定投资回报率投资目标这里关键的第一步是创建和将你的开源策略形成文字,该策略将“帮助你最大限度地提高组织从开源中获得的利益。”同时,你详细的策略可以帮助你避免因错误而导致…
了解如何使用 TODO Group 的成熟实践,使您的组织的开源软件目标与您的业务目标保持一致。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/16/203806ezd0j0tcatkjukkt.jpg">Media</a>大多数使用开源的公司都了解其商业价值,但他们可能缺乏战略性地实施开源计划和获得全部回报的工具。根据 <a href="https://thenewstack.io/open-source-culture-starts-with-programs-and-policies/">The New Stack</a> 最近的一项调查,“开源计划的三大好处是 1)提高了对开源的认识,2)提高了开发周期的速度和灵活性,以及 3)更好的许可证合规性。”运作一个开源计划办公室涉及到创建策略来帮助你定义和实施你的方法,并衡量你的进度。由 Linux 基金会与 TODO Group 合作开发的<a href="https://www.linuxfoundation.org/resources/open-source-guides/">企业开源指南</a>基于多年的经验和实践提供了专业开源知识。最新的指南中,<a href="https://www.linuxfoundation.org/resources/open-source-guides/setting-an-open-source-strategy/">设置开源战略</a>详细介绍了制定战略和确保成功之路的基本步骤。根据该指南,“你的开源战略将管理、参与和创建开源软件的计划与计划所服务的业务目标联系起来。这可以开辟许多机会并促进创新。”该指南涵盖以下主题:为什么制定战略?你的战略文件战略方法关键考虑因素其他组成确定投资回报率投资目标这里关键的第一步是创建和将你的开源策略形成文字,该策略将“帮助你最大限度地提高组织从开源中获得的利益。”同时,你详细的策略可以帮助你避免因错误而导致…
TLDR 页:Linux 手册页的简化替代品
有时候,当你在寻找命令的基本信息时,man 就会显得有点庞杂。为了解决这个问题,人们创建了TLDR 页。Media
via https://linux.cn/article-10355-1.html
有时候,当你在寻找命令的基本信息时,man 就会显得有点庞杂。为了解决这个问题,人们创建了TLDR 页。Media
via https://linux.cn/article-10355-1.html
TLDR 页:Linux 手册页的简化替代品
<a href="https://fossbytes.com/wp-content/uploads/2017/11/tldr-page-ubuntu.jpg">tldr page ubuntu</a>在终端上使用各种命令执行重要任务是 Linux 桌面体验中不可或缺的一部分。Linux 这个开源操作系统拥有<a href="https://fossbytes.com/a-z-list-linux-command-line-reference/">丰富的命令</a>,任何用户都无法全部记住所有这些命令。而使事情变得更复杂的是,每个命令都有自己的一组带来丰富的功能的选项。为了解决这个问题,人们创建了<a href="https://fossbytes.com/linux-lexicon-man-pages-navigation/">手册页</a>man page,(手册 —— man 是 manual 的缩写)。首先,它是用英文写成的,包含了大量关于不同命令的深入信息。有时候,当你在寻找命令的基本信息时,它就会显得有点庞杂。为了解决这个问题,人们创建了<a href="https://github.com/tldr-pages/tldr">TLDR 页</a>。什么是 TLDR 页?TLDR 页的 GitHub 仓库将其描述为简化的、社区驱动的手册页集合。在实际示例的帮助下,努力让使用手册页的体验变得更简单。如果还不知道,TLDR 取自互联网的常见俚语:太长没读Too Long Didn’t Read。如果你想比较一下,让我们以 tar 命令为例。 通常,手册页的篇幅会超过 1000 行。tar 是一个归档实用程序,经常与 bzip 或 gzip 等压缩方法结合使用。看一下它的手册页:<a href="https://fossbytes.com/wp-content/uploads/2017/11/tar-man-page.jpg">tar man page</a>而另一方面,TLDR 页面让你只是浏览一下命令,看看它是如何工作的。 tar 的 TLDR 页面看起来像这样,并带有一些方便的例子 —— 你可以使用此实用程序完成的最常见任务:<a href="https://fossbytes.com/wp-content/uploads/2017/11/tar-tldr-page.jpg">tar tldr pag…
<a href="https://fossbytes.com/wp-content/uploads/2017/11/tldr-page-ubuntu.jpg">tldr page ubuntu</a>在终端上使用各种命令执行重要任务是 Linux 桌面体验中不可或缺的一部分。Linux 这个开源操作系统拥有<a href="https://fossbytes.com/a-z-list-linux-command-line-reference/">丰富的命令</a>,任何用户都无法全部记住所有这些命令。而使事情变得更复杂的是,每个命令都有自己的一组带来丰富的功能的选项。为了解决这个问题,人们创建了<a href="https://fossbytes.com/linux-lexicon-man-pages-navigation/">手册页</a>man page,(手册 —— man 是 manual 的缩写)。首先,它是用英文写成的,包含了大量关于不同命令的深入信息。有时候,当你在寻找命令的基本信息时,它就会显得有点庞杂。为了解决这个问题,人们创建了<a href="https://github.com/tldr-pages/tldr">TLDR 页</a>。什么是 TLDR 页?TLDR 页的 GitHub 仓库将其描述为简化的、社区驱动的手册页集合。在实际示例的帮助下,努力让使用手册页的体验变得更简单。如果还不知道,TLDR 取自互联网的常见俚语:太长没读Too Long Didn’t Read。如果你想比较一下,让我们以 tar 命令为例。 通常,手册页的篇幅会超过 1000 行。tar 是一个归档实用程序,经常与 bzip 或 gzip 等压缩方法结合使用。看一下它的手册页:<a href="https://fossbytes.com/wp-content/uploads/2017/11/tar-man-page.jpg">tar man page</a>而另一方面,TLDR 页面让你只是浏览一下命令,看看它是如何工作的。 tar 的 TLDR 页面看起来像这样,并带有一些方便的例子 —— 你可以使用此实用程序完成的最常见任务:<a href="https://fossbytes.com/wp-content/uploads/2017/11/tar-tldr-page.jpg">tar tldr pag…
学习人工智能如何入门
在你开始从事人工智能之前,你需要先了解人类的智能。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/17/193114l9yn4j90jj09c0ff.jpg">Media</a>我曾经问过别人、也被别人问过关于学习人工智能(AI)最好的方式是什么?我应该去阅读什么书?我应该去看什么视频?后面我将讲到这些,但是,考虑到人工智能涉及很多领域,我把这个问题分开来讲可能更好理解。学习人工智能很重要的一点是区别开研究方面和应用方面。Google 的 Cassie Kozyrkov 在近日于伦敦举行的 O'Reilly 人工智能会议的一个演讲中 <a href="https://www.youtube.com/watch?v=RLtI7r3QUyY">描述了这个区别</a>,并且这是一个很好的演讲。人工智能研究在本质上是学术性的,在你能够获得人工智能的某些细节之前,需要大量的跨各类学科的数学知识。这部分的人工智能关注于算法和驱动人工智能发展的工具。比如,什么样的神经网络结构能够改善视觉识别的结果?我们如何使无监督学习成为更有用的方法?我们能否找到一个更好的方法,去理解深度学习流水线是如何得出答案的?另一方面,人工智能应用更多是关于使用现有工具去获取有用的结果。开源在这里发挥了一个重要的作用,那就是免费提供了易于使用的、各种语言的软件。公有云提供商也致力于提供大量的机器学习、模型、以及数据集,这使得人工智能的入门比其它的要简单的多。在这个问ག…
在你开始从事人工智能之前,你需要先了解人类的智能。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/17/193114l9yn4j90jj09c0ff.jpg">Media</a>我曾经问过别人、也被别人问过关于学习人工智能(AI)最好的方式是什么?我应该去阅读什么书?我应该去看什么视频?后面我将讲到这些,但是,考虑到人工智能涉及很多领域,我把这个问题分开来讲可能更好理解。学习人工智能很重要的一点是区别开研究方面和应用方面。Google 的 Cassie Kozyrkov 在近日于伦敦举行的 O'Reilly 人工智能会议的一个演讲中 <a href="https://www.youtube.com/watch?v=RLtI7r3QUyY">描述了这个区别</a>,并且这是一个很好的演讲。人工智能研究在本质上是学术性的,在你能够获得人工智能的某些细节之前,需要大量的跨各类学科的数学知识。这部分的人工智能关注于算法和驱动人工智能发展的工具。比如,什么样的神经网络结构能够改善视觉识别的结果?我们如何使无监督学习成为更有用的方法?我们能否找到一个更好的方法,去理解深度学习流水线是如何得出答案的?另一方面,人工智能应用更多是关于使用现有工具去获取有用的结果。开源在这里发挥了一个重要的作用,那就是免费提供了易于使用的、各种语言的软件。公有云提供商也致力于提供大量的机器学习、模型、以及数据集,这使得人工智能的入门比其它的要简单的多。在这个问ག…
在 Linux 终端中开火车
使用 sl 命令,你可以让自己驾驶火车,带来一个有趣的命令行体验。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/17/214157u334qqdckk3yxkaq.png">Media</a>现在是 12 月,每个 Linux 终端用户都值得这一年的奖励。因此,我们将为你带来一个 Linux 命令行玩具的日历。什么是命令行玩具?它可能是一个游戏、一个小的无意义的打发时间的东西,或者为你在终端带来快乐的东西。今天的 Linux 命令行玩具来自 Opensource.com 社区版主 <a href="https://opensource.com/users/bcotton">Ben Cotton</a> 的建议。Ben 建议 sl,它是蒸汽机车steam locomotive的简称。而对于 Linux ls 命令来说,sl 也是一个常见的拼写错误,这并不是巧合(LCTT 译注:意即 sl 是专门用来设计提醒 ls 打错的)。想要不再打错吗?尝试安装 sl。它可能已经在默认仓库中打包。对我而言,在 Fedora 中,这意味着安装起来很简单:<pre class="prettyprint linenums">$ sudo dnf install sl -y</pre>现在,只需键入 sl 即可测试。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/17/214231ztqw6nzrf85p8pqw.gif">Media</a>你可能会像我一样注意到,Ctrl+C 不会让你的火车脱轨,所以你必须等待整列火车通过。这会让你知道打错了 ls!想查看 sl 源码?它已经在<a href="https://github.com/mtoyoda/sl">在 GitHub 上</a>。sl 也是分享我个人关于开源许可证的见解的绝佳机会。虽然它的<a href="https://github.com/mtoyoda/sl/blob/master/LICENSE">许可证</a>“足够开源”能够打包到我的发行版,但技术上而言,它并不是 <a href="https://opensource.org/licenses">OSI 批准</a>的许可证。在其版权行之后,许可证的内容很简单:每个人都可以在这个程序上做任何事情…
使用 sl 命令,你可以让自己驾驶火车,带来一个有趣的命令行体验。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/17/214157u334qqdckk3yxkaq.png">Media</a>现在是 12 月,每个 Linux 终端用户都值得这一年的奖励。因此,我们将为你带来一个 Linux 命令行玩具的日历。什么是命令行玩具?它可能是一个游戏、一个小的无意义的打发时间的东西,或者为你在终端带来快乐的东西。今天的 Linux 命令行玩具来自 Opensource.com 社区版主 <a href="https://opensource.com/users/bcotton">Ben Cotton</a> 的建议。Ben 建议 sl,它是蒸汽机车steam locomotive的简称。而对于 Linux ls 命令来说,sl 也是一个常见的拼写错误,这并不是巧合(LCTT 译注:意即 sl 是专门用来设计提醒 ls 打错的)。想要不再打错吗?尝试安装 sl。它可能已经在默认仓库中打包。对我而言,在 Fedora 中,这意味着安装起来很简单:<pre class="prettyprint linenums">$ sudo dnf install sl -y</pre>现在,只需键入 sl 即可测试。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/17/214231ztqw6nzrf85p8pqw.gif">Media</a>你可能会像我一样注意到,Ctrl+C 不会让你的火车脱轨,所以你必须等待整列火车通过。这会让你知道打错了 ls!想查看 sl 源码?它已经在<a href="https://github.com/mtoyoda/sl">在 GitHub 上</a>。sl 也是分享我个人关于开源许可证的见解的绝佳机会。虽然它的<a href="https://github.com/mtoyoda/sl/blob/master/LICENSE">许可证</a>“足够开源”能够打包到我的发行版,但技术上而言,它并不是 <a href="https://opensource.org/licenses">OSI 批准</a>的许可证。在其版权行之后,许可证的内容很简单:每个人都可以在这个程序上做任何事情…
在 Linux 下交换 Ctrl 与大写锁定键
Linux 桌面环境使你可以根据需要轻松设置键盘。下面来演示如何去做。Media
via https://linux.cn/article-10358-1.html
Linux 桌面环境使你可以根据需要轻松设置键盘。下面来演示如何去做。Media
via https://linux.cn/article-10358-1.html
在 Linux 下交换 Ctrl 与大写锁定键
Linux 桌面环境使你可以根据需要轻松设置键盘。下面来演示如何去做。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/17/223900ek7wi7vvhabi7iav.jpg">Media</a>对于许多使用计算机很多年的用户来说,自从第一批 PC 键盘从生产线上下线后不久,Ctrl 和大写锁定键就已经在错误的位置上了。对我来说,这张 1995 年 Sun 工作站的老式键盘照片上的两个键的位置才是正确的。(原谅我放了一张模糊的图片,它是在昏暗的光线下使用 Minox 间谍相机拍摄的。)<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/17/223901ac7cczp33ir8xc2i.jpg">Media</a>感兴趣的话,可以读一下维基百科上对于 <a href="https://en.wikipedia.org/wiki/Control_key">Ctrl 键位置的历史</a> 的介绍。我不打算讨论将 Ctrl 键放在“a”旁边而不是 Shift 键下方的各种理由,也不评论大写锁定键的无用性,也没有打算与那些主张使用手掌根来触发 Ctrl 键的人争论,即使在一些笔记本电脑键盘上不可能这样做到,因为有的键会位于腕托以下。相反,我将假设我不是唯一喜欢把 Ctrl 键放在“a”旁边的人,并说明如何使用 Linux 自带的灵活性在各种桌面环境中交换 Ctrl 和大写锁定键的位置。请注意,下面的演示可能只有有限的有效期,因为调整桌面设置的方法经常发生变化,但我希望这为你开了一个好头。GNOME 3<a href="https://www.gnome.org/gnome-3/">GNOME 3</a> 桌面环境用户可以使用 <a href="https://wiki.gnome.org/Apps/Tweaks">Tweaks</a> 工具交换大写锁定和 Ctrl 键,如下所示。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/17/223916k64eueibnlx9jg6e.png">Media</a>具体步骤如下:从你的…
Linux 桌面环境使你可以根据需要轻松设置键盘。下面来演示如何去做。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/17/223900ek7wi7vvhabi7iav.jpg">Media</a>对于许多使用计算机很多年的用户来说,自从第一批 PC 键盘从生产线上下线后不久,Ctrl 和大写锁定键就已经在错误的位置上了。对我来说,这张 1995 年 Sun 工作站的老式键盘照片上的两个键的位置才是正确的。(原谅我放了一张模糊的图片,它是在昏暗的光线下使用 Minox 间谍相机拍摄的。)<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/17/223901ac7cczp33ir8xc2i.jpg">Media</a>感兴趣的话,可以读一下维基百科上对于 <a href="https://en.wikipedia.org/wiki/Control_key">Ctrl 键位置的历史</a> 的介绍。我不打算讨论将 Ctrl 键放在“a”旁边而不是 Shift 键下方的各种理由,也不评论大写锁定键的无用性,也没有打算与那些主张使用手掌根来触发 Ctrl 键的人争论,即使在一些笔记本电脑键盘上不可能这样做到,因为有的键会位于腕托以下。相反,我将假设我不是唯一喜欢把 Ctrl 键放在“a”旁边的人,并说明如何使用 Linux 自带的灵活性在各种桌面环境中交换 Ctrl 和大写锁定键的位置。请注意,下面的演示可能只有有限的有效期,因为调整桌面设置的方法经常发生变化,但我希望这为你开了一个好头。GNOME 3<a href="https://www.gnome.org/gnome-3/">GNOME 3</a> 桌面环境用户可以使用 <a href="https://wiki.gnome.org/Apps/Tweaks">Tweaks</a> 工具交换大写锁定和 Ctrl 键,如下所示。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/17/223916k64eueibnlx9jg6e.png">Media</a>具体步骤如下:从你的…
90 年代的大学网管如何使用 Linux
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/18/110800anejj11nnqn8int8.jpg">Media</a>在上世纪 90 年代中期,我报名了计算机科学课。我大学的计算机科学系为学生提供了一台 SunOS 服务器,它是一个多用户、多任务的 Unix 系统。我们登录它并编写我们学习的编程语言代码,例如 C、C++ 和 ADA。在那时,在社交网络和 IM 出现之前,我们还使用该系统发送电子邮件和使用诸如 <code>write</code> 和 <code>talk</code> 之类的程序来相互通信。我们每个人被允许托管一个个人网站。我很高兴能够使用它完成我的作业并联系其他用户。这是我第一次体验这种类型的操作环境,但我很快就了解了另一个可以做同样事情的操作系统:Linux。那会我还是学生,我在大学找了份兼职工作。我的第一个职位是住房和住宅部(H&R)的网络安装人员。这工作涉及到将学生宿舍与校园网络连接起来。由于这是该大学的第一个宿舍网络服务,因此只有两幢楼和大约 75 名学生连上了网。在第二年,该网络扩展到另外两幢楼。H&R 决定让该大学的信息技术办公室(OIT)管理这不断增长的业务。我进入 OIT 并开始担任 OIT 网络经理的学生助理。这就是我发现 Linux 的方式。我的新职责之一是管理防火墙系统,它为宿舍提供网络和互联网访问。每个学生都注册了他们硬件的 MAC 地址。注册的学生可以连接到宿舍网络并获得 IP 地址及访问互联网。与…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/18/110800anejj11nnqn8int8.jpg">Media</a>在上世纪 90 年代中期,我报名了计算机科学课。我大学的计算机科学系为学生提供了一台 SunOS 服务器,它是一个多用户、多任务的 Unix 系统。我们登录它并编写我们学习的编程语言代码,例如 C、C++ 和 ADA。在那时,在社交网络和 IM 出现之前,我们还使用该系统发送电子邮件和使用诸如 <code>write</code> 和 <code>talk</code> 之类的程序来相互通信。我们每个人被允许托管一个个人网站。我很高兴能够使用它完成我的作业并联系其他用户。这是我第一次体验这种类型的操作环境,但我很快就了解了另一个可以做同样事情的操作系统:Linux。那会我还是学生,我在大学找了份兼职工作。我的第一个职位是住房和住宅部(H&R)的网络安装人员。这工作涉及到将学生宿舍与校园网络连接起来。由于这是该大学的第一个宿舍网络服务,因此只有两幢楼和大约 75 名学生连上了网。在第二年,该网络扩展到另外两幢楼。H&R 决定让该大学的信息技术办公室(OIT)管理这不断增长的业务。我进入 OIT 并开始担任 OIT 网络经理的学生助理。这就是我发现 Linux 的方式。我的新职责之一是管理防火墙系统,它为宿舍提供网络和互联网访问。每个学生都注册了他们硬件的 MAC 地址。注册的学生可以连接到宿舍网络并获得 IP 地址及访问互联网。与…
极客漫画:TCP 兄弟
Media这幅漫画展示了 TCP 协议的沟通过程。首先是构建一个层(TCP 工作于传输层),然后向要通信的人发送建立联系的信号(SYN),接受到信息的人回复确认信息(ACK),确认已经收到,同时,发送建立联系的信息(SYN),这时,它发送的信息就是(SYN-ACK),当最初发送信息的人收到信息后,再回复了确认信息(ACK)。在回复了确认信息后,他们可以正常的交流,就开始说话了。TCP 协议规定,在传输数据之前,要进行三次“握手”,来保证数据传输的可靠性。上面这幅漫画就展示了这样的内容。如果你有兴趣查看更多信息,可以参看 https://zh.wikipedia.org/wiki/传输控制协议。via: https://turnoff.us/geek/tcp-buddies/作者:Daniel Stori 译者:Bestony 校对:wxy 合成&点评:Bestony本文由 LCTT 原创编译,Linux中国 荣誉推出Media
via https://linux.cn/article-10360-1.html?utm_source=rss&utm_medium=rss
Media这幅漫画展示了 TCP 协议的沟通过程。首先是构建一个层(TCP 工作于传输层),然后向要通信的人发送建立联系的信号(SYN),接受到信息的人回复确认信息(ACK),确认已经收到,同时,发送建立联系的信息(SYN),这时,它发送的信息就是(SYN-ACK),当最初发送信息的人收到信息后,再回复了确认信息(ACK)。在回复了确认信息后,他们可以正常的交流,就开始说话了。TCP 协议规定,在传输数据之前,要进行三次“握手”,来保证数据传输的可靠性。上面这幅漫画就展示了这样的内容。如果你有兴趣查看更多信息,可以参看 https://zh.wikipedia.org/wiki/传输控制协议。via: https://turnoff.us/geek/tcp-buddies/作者:Daniel Stori 译者:Bestony 校对:wxy 合成&点评:Bestony本文由 LCTT 原创编译,Linux中国 荣誉推出Media
via https://linux.cn/article-10360-1.html?utm_source=rss&utm_medium=rss
使用 lolcat 为你的 Linux 终端带来彩虹
使用这个简单的工具,你可以为所需的任何程序的输出变成七彩。Media
via https://linux.cn/article-10361-1.html
使用这个简单的工具,你可以为所需的任何程序的输出变成七彩。Media
via https://linux.cn/article-10361-1.html
使用 lolcat 为你的 Linux 终端带来彩虹
使用这个简单的工具,你可以为所需的任何程序的输出变成七彩。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/18/160350ezquzucc15yuw4ru.png">Media</a>今天是 Linux 命令行玩具日历的第五天。如果这是你第一次访问该系列,你可能会问自己,什么是命令行玩具。即使我不太确定,但一般来说,它可能是一个游戏,或任何简单的可以帮助你在终端玩得开心的东西。很可能你们中的一些人之前已经看过我们日历中的各种玩具,但我们希望每个人至少见到一件新事物。今日的选择,lolcat,是我选择的第一个没有在我的 Linux 发行版中打包的程序,但它安装仍然很简单。它是一个 Ruby 程序,你应该可以使用下面的命令轻松地添加到系统中。<pre class="prettyprint linenums">$ gem install lolcat</pre>之后,只需将一些文本传送给它,就可以看到彩色的输出。例如,尝试几个之前在我们的日历中出现的程序,使用以下命令:<pre class="prettyprint linenums">$ fortune | boxes -a c -d parchment | lolcat</pre>根据你的运气,你可能会看到这样:<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/18/160350fdf1n3v1nst6mvlx.png">Media</a>你可以传递给 lolcat 一些参数。这里不再赘述,我建议你访问 lolcat 的 <a href="https://github.com/busyloop/lolcat">GitHub 页面</a> 或者在终端输入 lolcat --help 了解。但一般来说,它们能设置彩虹的传递和频率,以及我个人最喜欢的动画。谁不喜欢终端的彩色动画输出呢?让我们再试一次,用一个不同的边框(当然是以猫为主题)和一句在我的格言列表中的适&#…
使用这个简单的工具,你可以为所需的任何程序的输出变成七彩。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/18/160350ezquzucc15yuw4ru.png">Media</a>今天是 Linux 命令行玩具日历的第五天。如果这是你第一次访问该系列,你可能会问自己,什么是命令行玩具。即使我不太确定,但一般来说,它可能是一个游戏,或任何简单的可以帮助你在终端玩得开心的东西。很可能你们中的一些人之前已经看过我们日历中的各种玩具,但我们希望每个人至少见到一件新事物。今日的选择,lolcat,是我选择的第一个没有在我的 Linux 发行版中打包的程序,但它安装仍然很简单。它是一个 Ruby 程序,你应该可以使用下面的命令轻松地添加到系统中。<pre class="prettyprint linenums">$ gem install lolcat</pre>之后,只需将一些文本传送给它,就可以看到彩色的输出。例如,尝试几个之前在我们的日历中出现的程序,使用以下命令:<pre class="prettyprint linenums">$ fortune | boxes -a c -d parchment | lolcat</pre>根据你的运气,你可能会看到这样:<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/18/160350fdf1n3v1nst6mvlx.png">Media</a>你可以传递给 lolcat 一些参数。这里不再赘述,我建议你访问 lolcat 的 <a href="https://github.com/busyloop/lolcat">GitHub 页面</a> 或者在终端输入 lolcat --help 了解。但一般来说,它们能设置彩虹的传递和频率,以及我个人最喜欢的动画。谁不喜欢终端的彩色动画输出呢?让我们再试一次,用一个不同的边框(当然是以猫为主题)和一句在我的格言列表中的适&#…