Open Source 103:开源与云的商业碰撞
我们看到开源社区开始纷纷将左版调到最高音量来应对过去所没有出现过的市场环境Media
via https://linux.cn/article-10451-1.html
我们看到开源社区开始纷纷将左版调到最高音量来应对过去所没有出现过的市场环境Media
via https://linux.cn/article-10451-1.html
Open Source 103:开源与云的商业碰撞
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/16/220945ir4l826rjsulrj4s.jpg">Media</a>最近开源界还发生了一系列有代表性的事件,三个重量级的开源软件社区先后修改了开源许可证来应对公有云厂商的不当竞争,这三个开源软件社区背后的主导企业和核心产品分别是:Redis Labs(Redis。一个开源的键值对 NoSQL 数据库)MongoDB(MongoDB,一个开源的分布式文档 NoSQL 数据库)Confluent(Apache Kafka。一个开源的分布式流/消息系统)开源软件与公有云的商业碰撞正式拉开帷幕开源社区被激怒的原因在于公有云厂商实际上是在利用开源社区的成果在变现,但对开源社区却没有回馈贡献,这有悖于开源精神。几乎所有主流的公有云厂商都被点名,Amazon/Microsoft/Alibaba/Google,其中,对 AWS 的吐槽最多,原话是 “the worst behavior” 。随着云计算的渗透,公有云厂商将有机会把握住企业客户使用软件产品的『流量入口』,对于公有云厂商而言,他们很自然的选择就是上线更多的软件产品 SKU 来提升客户粘性、做高客单价、提高变现能力,于是最快的方式就是向开源社区直接『伸手』,将开源版软件封装成服务提供给客户,同时为了保证自己的产品竞争优势选择不把对开源项目的改进回馈到开源社区。所以开源社区对公有云厂商说,你必须把基于开源项目的改进也开源代码回馈社区,否则你就别『窃取』开源社区的成果。开源面临的真ઽ…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/16/220945ir4l826rjsulrj4s.jpg">Media</a>最近开源界还发生了一系列有代表性的事件,三个重量级的开源软件社区先后修改了开源许可证来应对公有云厂商的不当竞争,这三个开源软件社区背后的主导企业和核心产品分别是:Redis Labs(Redis。一个开源的键值对 NoSQL 数据库)MongoDB(MongoDB,一个开源的分布式文档 NoSQL 数据库)Confluent(Apache Kafka。一个开源的分布式流/消息系统)开源软件与公有云的商业碰撞正式拉开帷幕开源社区被激怒的原因在于公有云厂商实际上是在利用开源社区的成果在变现,但对开源社区却没有回馈贡献,这有悖于开源精神。几乎所有主流的公有云厂商都被点名,Amazon/Microsoft/Alibaba/Google,其中,对 AWS 的吐槽最多,原话是 “the worst behavior” 。随着云计算的渗透,公有云厂商将有机会把握住企业客户使用软件产品的『流量入口』,对于公有云厂商而言,他们很自然的选择就是上线更多的软件产品 SKU 来提升客户粘性、做高客单价、提高变现能力,于是最快的方式就是向开源社区直接『伸手』,将开源版软件封装成服务提供给客户,同时为了保证自己的产品竞争优势选择不把对开源项目的改进回馈到开源社区。所以开源社区对公有云厂商说,你必须把基于开源项目的改进也开源代码回馈社区,否则你就别『窃取』开源社区的成果。开源面临的真ઽ…
Caffeinated 6.828:实验 6:网络驱动程序
现在你已经有了一个文件系统,一个典型的操作系统都应该有一个网络栈。在本实验中,你将继续为一个网卡去写一个驱动程序。Media
via https://linux.cn/article-10452-1.html
现在你已经有了一个文件系统,一个典型的操作系统都应该有一个网络栈。在本实验中,你将继续为一个网卡去写一个驱动程序。Media
via https://linux.cn/article-10452-1.html
Caffeinated 6.828:实验 6:网络驱动程序
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/17/204350s86sch2hc3939xs3.jpeg">Media</a>简介这个实验是默认你能够自己完成的最终项目。现在你已经有了一个文件系统,一个典型的操作系统都应该有一个网络栈。在本实验中,你将继续为一个网卡去写一个驱动程序。这个网卡基于 Intel 82540EM 芯片,也就是众所周知的 E1000 芯片。预备知识使用 Git 去提交你的实验 5 的源代码(如果还没有提交的话),获取课程仓库的最新版本,然后创建一个名为 lab6 的本地分支,它跟踪我们的远程分支 origin/lab6:<pre class="prettyprint linenums">athena% cd ~/6.828/labathena% add gitathena% git commit -am 'my solution to lab5'nothing to commit (working directory clean)athena% git pullAlready up-to-date.athena% git checkout -b lab6 origin/lab6Branch lab6 set up to track remote branch refs/remotes/origin/lab6.Switched to a new branch "lab6"athena% git merge lab5Merge made by recursive. fs/fs.c | 42 +++++++++++++++++++ 1 files changed, 42 insertions(+), 0 deletions(-)athena%</pre>然后,仅有网卡驱动程序并不能够让你的操作系统接入互联网。在新的实验 6 的代码中,我们为你提供了网络栈和一个网络服务器。与以前的实验一样,使用 git 去拉取这个实验的代码,合并到你自己的代码中,并去浏览新的 net/ 目录中的内容,以及在 kern/ 中的新文件。除了写这个驱动程序以外,你还需要去创建一个访问你的驱动程序的系统调用。你将要去实现那些在网络服务器中缺失的代码,以便于在网络栈和你的驱动程序之间传输包。你还需要通过完成一个 web 服务器来将所有的东西连接到一起。你的新 web 服务器还需要你的文件系统来提供所需要的文件。大&…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/17/204350s86sch2hc3939xs3.jpeg">Media</a>简介这个实验是默认你能够自己完成的最终项目。现在你已经有了一个文件系统,一个典型的操作系统都应该有一个网络栈。在本实验中,你将继续为一个网卡去写一个驱动程序。这个网卡基于 Intel 82540EM 芯片,也就是众所周知的 E1000 芯片。预备知识使用 Git 去提交你的实验 5 的源代码(如果还没有提交的话),获取课程仓库的最新版本,然后创建一个名为 lab6 的本地分支,它跟踪我们的远程分支 origin/lab6:<pre class="prettyprint linenums">athena% cd ~/6.828/labathena% add gitathena% git commit -am 'my solution to lab5'nothing to commit (working directory clean)athena% git pullAlready up-to-date.athena% git checkout -b lab6 origin/lab6Branch lab6 set up to track remote branch refs/remotes/origin/lab6.Switched to a new branch "lab6"athena% git merge lab5Merge made by recursive. fs/fs.c | 42 +++++++++++++++++++ 1 files changed, 42 insertions(+), 0 deletions(-)athena%</pre>然后,仅有网卡驱动程序并不能够让你的操作系统接入互联网。在新的实验 6 的代码中,我们为你提供了网络栈和一个网络服务器。与以前的实验一样,使用 git 去拉取这个实验的代码,合并到你自己的代码中,并去浏览新的 net/ 目录中的内容,以及在 kern/ 中的新文件。除了写这个驱动程序以外,你还需要去创建一个访问你的驱动程序的系统调用。你将要去实现那些在网络服务器中缺失的代码,以便于在网络栈和你的驱动程序之间传输包。你还需要通过完成一个 web 服务器来将所有的东西连接到一起。你的新 web 服务器还需要你的文件系统来提供所需要的文件。大&…
如何在 Linux 中安装微软的 .NET Core SDK
本分步操作指南文章解释了如何在 Linux 中安装 .NET Core SDK 以及如何使用 .NET 开发出第一个应用程序。Media
via https://linux.cn/article-10453-1.html
本分步操作指南文章解释了如何在 Linux 中安装 .NET Core SDK 以及如何使用 .NET 开发出第一个应用程序。Media
via https://linux.cn/article-10453-1.html
如何在 Linux 中安装微软的 .NET Core SDK
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/17/215837aa9devtxvnqq7nb0.png">Media</a><strong>.NET Core</strong> 是微软提供的免费、跨平台和开源的开发框架,可以构建桌面应用程序、移动端应用程序、网络应用程序、物联网应用程序和游戏应用程序等。如果你是 Windows 平台下的 dotnet 开发人员的话,使用 .NET core 可以很轻松就设置好任何 Linux 和类 Unix 操作系统下的开发环境。本分步操作指南文章解释了如何在 Linux 中安装 .NET Core SDK 以及如何使用 .NET 开发出第一个应用程序。Linux 中安装 .NET Core SDK.NET Core 支持 GNU/Linux、Mac OS 和 Windows 系统,可以在主流的 GNU/Linux 操作系统上安装运行,包括 Debian、Fedora、CentOS、Oracle Linux、RHEL、SUSE/openSUSE 和 Ubuntu 。在撰写这篇教程时,其最新版本为 <strong>2.2</strong>。<strong>Debian 9</strong> 系统上安装 .NET Core SDK,请按如下步骤进行。首先,需要注册微软的密钥,接着把 .NET 源仓库地址添加进来,运行的命令如下:<pre class="prettyprint linenums">$ wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg$ sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/$ wget -q https://packages.microsoft.com/config/debian/9/prod.list$ sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list$ sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg$ sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list</pre>注册好密钥及添加完仓库源后,就可以安装 .NET SDK 了,命令如下:<pre class="prettyprint linenums">$ sudo apt-get update$ sudo apt-get install dotnet-sdk-2.2</pre><strong>Debian 8 系统上安装:</strong>增加微软密钥,添加 .NET 仓库源:<pre class="prettyprint linenums">$ wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg$ sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/$ wget -q https://packages.microsoft.com/config/debian/8/prod.list$ sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list$ sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg$ sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list</pre>安装 .NET SDK:<pre class="prettyprint linenums">$ sudo apt-get update$ sudo apt-get install dotnet-sdk-2.2</pre><strong>Fedora 28 系统上安装:</strong>…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/17/215837aa9devtxvnqq7nb0.png">Media</a><strong>.NET Core</strong> 是微软提供的免费、跨平台和开源的开发框架,可以构建桌面应用程序、移动端应用程序、网络应用程序、物联网应用程序和游戏应用程序等。如果你是 Windows 平台下的 dotnet 开发人员的话,使用 .NET core 可以很轻松就设置好任何 Linux 和类 Unix 操作系统下的开发环境。本分步操作指南文章解释了如何在 Linux 中安装 .NET Core SDK 以及如何使用 .NET 开发出第一个应用程序。Linux 中安装 .NET Core SDK.NET Core 支持 GNU/Linux、Mac OS 和 Windows 系统,可以在主流的 GNU/Linux 操作系统上安装运行,包括 Debian、Fedora、CentOS、Oracle Linux、RHEL、SUSE/openSUSE 和 Ubuntu 。在撰写这篇教程时,其最新版本为 <strong>2.2</strong>。<strong>Debian 9</strong> 系统上安装 .NET Core SDK,请按如下步骤进行。首先,需要注册微软的密钥,接着把 .NET 源仓库地址添加进来,运行的命令如下:<pre class="prettyprint linenums">$ wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg$ sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/$ wget -q https://packages.microsoft.com/config/debian/9/prod.list$ sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list$ sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg$ sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list</pre>注册好密钥及添加完仓库源后,就可以安装 .NET SDK 了,命令如下:<pre class="prettyprint linenums">$ sudo apt-get update$ sudo apt-get install dotnet-sdk-2.2</pre><strong>Debian 8 系统上安装:</strong>增加微软密钥,添加 .NET 仓库源:<pre class="prettyprint linenums">$ wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg$ sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/$ wget -q https://packages.microsoft.com/config/debian/8/prod.list$ sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list$ sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg$ sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list</pre>安装 .NET SDK:<pre class="prettyprint linenums">$ sudo apt-get update$ sudo apt-get install dotnet-sdk-2.2</pre><strong>Fedora 28 系统上安装:</strong>…
开始使用 Wekan 吧,一款开源看板软件
这是开源工具类软件推荐的第二期,本文将让你在 2019 年更具生产力。来,让我们一起看看 Wekan 吧。Media
via https://linux.cn/article-10454-1.html
这是开源工具类软件推荐的第二期,本文将让你在 2019 年更具生产力。来,让我们一起看看 Wekan 吧。Media
via https://linux.cn/article-10454-1.html
开始使用 Wekan 吧,一款开源看板软件
这是开源工具类软件推荐的第二期,本文将让你在 2019 年更具生产力。来,让我们一起看看 Wekan 吧。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/18/104136gsdtspyese2z2ktd.png">Media</a>每年年初,人们似乎都在想方设法地让自己更具生产力。对新年目标、期待,当然还有“新年新气象”这样的口号等等都促人上进。可大部分生产力软件的推荐都严重偏向闭源的专有软件,但事实上并不用这样。这是我挑选的 19 款帮助你在 2019 年提升生产力的开源工具中的第 2 个。Wekan<a href="https://en.wikipedia.org/wiki/Kanban">看板</a>是当今敏捷开发流程中的重要组成部分。我们中的很多人使用它同时管理自己的工作和生活。有些人在用 <a href="https://www.trello.com">Trello</a> 这样的 APP 来跟踪他们的项目,例如哪些事务正在处理,哪些事务已经完成。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/18/104137ae1l4abia4ge0f41.png">Media</a>但这些 APP 通常需要连接到一个工作账户或者商业服务中。而 <a href="https://wekan.github.io/">Wekan</a> 作为一款开源看板工具,你可以让它完全在本地运行,或者使用你自己选择的服务运行它。其他的看板 APP 提供的功能在 Wekan 里几乎都有,例如创建看板、列表、泳道、卡片,在列表间拖放,给指定的用户安排任务,给卡片添加标签等等,基本上你对一款现代看板软件的功能需求它都能提供。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/18/104137kkun2n3snf6y6agg.png">Media</a>Wekan 的独到之处在于它的内置规则。虽然其他的看板软件支持邮件更新emailing updates,但…
这是开源工具类软件推荐的第二期,本文将让你在 2019 年更具生产力。来,让我们一起看看 Wekan 吧。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/18/104136gsdtspyese2z2ktd.png">Media</a>每年年初,人们似乎都在想方设法地让自己更具生产力。对新年目标、期待,当然还有“新年新气象”这样的口号等等都促人上进。可大部分生产力软件的推荐都严重偏向闭源的专有软件,但事实上并不用这样。这是我挑选的 19 款帮助你在 2019 年提升生产力的开源工具中的第 2 个。Wekan<a href="https://en.wikipedia.org/wiki/Kanban">看板</a>是当今敏捷开发流程中的重要组成部分。我们中的很多人使用它同时管理自己的工作和生活。有些人在用 <a href="https://www.trello.com">Trello</a> 这样的 APP 来跟踪他们的项目,例如哪些事务正在处理,哪些事务已经完成。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/18/104137ae1l4abia4ge0f41.png">Media</a>但这些 APP 通常需要连接到一个工作账户或者商业服务中。而 <a href="https://wekan.github.io/">Wekan</a> 作为一款开源看板工具,你可以让它完全在本地运行,或者使用你自己选择的服务运行它。其他的看板 APP 提供的功能在 Wekan 里几乎都有,例如创建看板、列表、泳道、卡片,在列表间拖放,给指定的用户安排任务,给卡片添加标签等等,基本上你对一款现代看板软件的功能需求它都能提供。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/18/104137kkun2n3snf6y6agg.png">Media</a>Wekan 的独到之处在于它的内置规则。虽然其他的看板软件支持邮件更新emailing updates,但…
设计微服务架构前应该了解的 5 项指导原则
顶级 CTO 基于五个简单的原则为精心设计的微服务提供建议。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/19/002658s8xpfp7qzk1j3jwc.jpg">Media</a>对于从微服务开始的团队来说,最大的挑战之一就是坚持金发女孩原则The Goldilocks principle(该典故来自于童话《金发姑娘和三只熊》):不要太大,不要太小,不能太紧密耦合。之所以是挑战的部分原因是会对究竟什么是设计良好的微服务感到疑惑。数十位 CTO 通过采访分享了他们的经验,这些对话说明了设计良好的微服务的五个特点。本文将帮助指导团队设计微服务。(有关详细信息,请查看即将出版的书籍 <a href="https://buttercms.com/books/microservices-for-startups/">Microservices for Startups</a>,LCTT 译注:已可免费下载完整的电子版)。本文将简要介绍微服务的边界和主观的 “规则”,以避免在深入了解五个特征之前就开始指导您的微服务设计。微服务边界<a href="https://buttercms.com/books/microservices-for-startups/should-you-always-start-with-a-monolith">使用微服务开发新系统的核心优势</a>之一是该体系结构允许开发人员独立构建和修改各个组件,但在最大限度地减少每个 API 之间的回调数量方面可能会出现问题。根据 <a href="https://www.sparkpost.com/">SparkPost</a> 工程副总裁 Chris McFadden 所说,解决方案是应用适当的服务边界。关于边界,与有时难以理解和抽象的领域驱动设计(DDD,一种微服务框架)形成鲜明对比,本文重点介绍了和我们行业的一些顶级 CTO 一同建立的明确定义的&…
顶级 CTO 基于五个简单的原则为精心设计的微服务提供建议。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/19/002658s8xpfp7qzk1j3jwc.jpg">Media</a>对于从微服务开始的团队来说,最大的挑战之一就是坚持金发女孩原则The Goldilocks principle(该典故来自于童话《金发姑娘和三只熊》):不要太大,不要太小,不能太紧密耦合。之所以是挑战的部分原因是会对究竟什么是设计良好的微服务感到疑惑。数十位 CTO 通过采访分享了他们的经验,这些对话说明了设计良好的微服务的五个特点。本文将帮助指导团队设计微服务。(有关详细信息,请查看即将出版的书籍 <a href="https://buttercms.com/books/microservices-for-startups/">Microservices for Startups</a>,LCTT 译注:已可免费下载完整的电子版)。本文将简要介绍微服务的边界和主观的 “规则”,以避免在深入了解五个特征之前就开始指导您的微服务设计。微服务边界<a href="https://buttercms.com/books/microservices-for-startups/should-you-always-start-with-a-monolith">使用微服务开发新系统的核心优势</a>之一是该体系结构允许开发人员独立构建和修改各个组件,但在最大限度地减少每个 API 之间的回调数量方面可能会出现问题。根据 <a href="https://www.sparkpost.com/">SparkPost</a> 工程副总裁 Chris McFadden 所说,解决方案是应用适当的服务边界。关于边界,与有时难以理解和抽象的领域驱动设计(DDD,一种微服务框架)形成鲜明对比,本文重点介绍了和我们行业的一些顶级 CTO 一同建立的明确定义的&…
Ubuntu PPA 使用指南
一篇涵盖了在 Ubuntu 和其他 Linux 发行版中使用 PPA 的几乎所有问题的深入的文章。Media
via https://linux.cn/article-10456-1.html
一篇涵盖了在 Ubuntu 和其他 Linux 发行版中使用 PPA 的几乎所有问题的深入的文章。Media
via https://linux.cn/article-10456-1.html
Ubuntu PPA 使用指南
一篇涵盖了在 Ubuntu 和其他 Linux 发行版中使用 PPA 的几乎所有问题的深入的文章。如果你一直在使用 Ubuntu 或基于 Ubuntu 的其他 Linux 发行版,例如 Linux Mint、Linux Lite、Zorin OS 等,你可能会遇到以下三种神奇的命令:<pre class="prettyprint linenums">sudo add-apt-repository ppa:dr-akulavich/lighttablesudo apt-get updatesudo apt-get install lighttable-installer</pre>许多网站推荐使用类似于以上几行的形式 <a href="https://itsfoss.com/remove-install-software-ubuntu/">在 Ubuntu 中安装应用程序</a>。这就是所谓的使用 PPA 安装应用程序。但什么是 PPA?为什么要用它?使用 PPA 安全吗?如何正确使用 PPA?如何删除 PPA?我将在这个详细的指南中回答上述所有问题。即使你已经了解了一些关于 PPA 的事情,我相信这篇文章仍然会让你了解这方面的更多知识。请注意我正在使用 Ubuntu 撰写本文。因此,我几乎在各个地方都使用了 Ubuntu 这个术语,但文中的说明和步骤也适用于其他基于 Debian/Ubuntu 的发行版。什么是 PPA?为什么要使用 PPA?<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/19/110250dii8pypjzqyhz3j3.png">Everything you need to know about PPA in Ubuntu Linux</a>PPA 表示个人软件包存档Personal Package Archive。这样说容易理解吗?可能不是很容易。在了解 PPA 之前,你应该了解 Linux 中软件仓库的概念。关于软件仓库,在这里我不会详述。软件仓库和包管理的概念软件仓库是一组文件,其中包含各种软件及其版本的信息,以及校验和等其他一些详细信息。每个版本的 Ubuntu 都有自己的四个官方软件仓库:Main - Canonical 支持的自由开源软件。Universe - 社区维护的自由开源软&…
一篇涵盖了在 Ubuntu 和其他 Linux 发行版中使用 PPA 的几乎所有问题的深入的文章。如果你一直在使用 Ubuntu 或基于 Ubuntu 的其他 Linux 发行版,例如 Linux Mint、Linux Lite、Zorin OS 等,你可能会遇到以下三种神奇的命令:<pre class="prettyprint linenums">sudo add-apt-repository ppa:dr-akulavich/lighttablesudo apt-get updatesudo apt-get install lighttable-installer</pre>许多网站推荐使用类似于以上几行的形式 <a href="https://itsfoss.com/remove-install-software-ubuntu/">在 Ubuntu 中安装应用程序</a>。这就是所谓的使用 PPA 安装应用程序。但什么是 PPA?为什么要用它?使用 PPA 安全吗?如何正确使用 PPA?如何删除 PPA?我将在这个详细的指南中回答上述所有问题。即使你已经了解了一些关于 PPA 的事情,我相信这篇文章仍然会让你了解这方面的更多知识。请注意我正在使用 Ubuntu 撰写本文。因此,我几乎在各个地方都使用了 Ubuntu 这个术语,但文中的说明和步骤也适用于其他基于 Debian/Ubuntu 的发行版。什么是 PPA?为什么要使用 PPA?<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/19/110250dii8pypjzqyhz3j3.png">Everything you need to know about PPA in Ubuntu Linux</a>PPA 表示个人软件包存档Personal Package Archive。这样说容易理解吗?可能不是很容易。在了解 PPA 之前,你应该了解 Linux 中软件仓库的概念。关于软件仓库,在这里我不会详述。软件仓库和包管理的概念软件仓库是一组文件,其中包含各种软件及其版本的信息,以及校验和等其他一些详细信息。每个版本的 Ubuntu 都有自己的四个官方软件仓库:Main - Canonical 支持的自由开源软件。Universe - 社区维护的自由开源软&…
Turtl:Evernote 的开源替代品
如果你正在寻找一个 Evernote 和 Google Keep 的替代品,那么 Turtl 是一个可靠的记笔记工具。Media
via https://linux.cn/article-10457-1.html
如果你正在寻找一个 Evernote 和 Google Keep 的替代品,那么 Turtl 是一个可靠的记笔记工具。Media
via https://linux.cn/article-10457-1.html
Turtl:Evernote 的开源替代品
如果你正在寻找一个 Evernote 和 Google Keep 的替代品,那么 Turtl 是一个可靠的记笔记工具。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/19/133836jlxxu3l8u8k83uul.jpg">Media</a>我认识的每个人都会记笔记,许多人使用在线笔记应用,如 Evernote、Simplenote 或 Google Keep。这些都是很好的工具,但你不得不担忧信息的安全性和隐私性 —— 特别是考虑到 <a href="https://blog.evernote.com/blog/2016/12/15/evernote-revisits-privacy-policy/">Evernote 2016 年的隐私策略变更</a>。如果你想要更好地控制笔记和数据,你需要转向开源工具。无论你离开 Evernote 的原因是什么,都有开源替代品。让我们来看看其中一个选择:Turtl。入门<a href="https://turtlapp.com/">Turtl</a> 背后的开发人员希望你将其视为“具有绝对隐私的 Evernote”。说实话,我不能保证 Turtl 提供的隐私级别,但它是一个非常好的笔记工具。要开始使用 Turtl,<a href="https://turtlapp.com/download/">下载</a>适用于 Linux、Mac OS 或 Windows 的桌面客户端,或者获取它的 <a href="https://turtlapp.com/download/">Android 应用</a>。安装它,然后启动客户端或应用。系统会要求你输入用户名和密码。Turtl 使用密码来生成加密密钥,根据开发人员的说法,加密密钥会在将笔记存储在设备或服务器上之前对其进行加密。使用 Turtl你可以使用 Turtl 创建以下类型的笔记:密码档案图片书签文字笔记无论你选择何种类型的笔记,你都可以在类似的窗口中创建:<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/19/133851n3je9zuqlrhhqkfh.png">Create new text note with Turtl</a><em>在 Turtl 中创建新笔记</em>添加笔记标题、文字并(如果你正在创建文件或图像…
如果你正在寻找一个 Evernote 和 Google Keep 的替代品,那么 Turtl 是一个可靠的记笔记工具。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/19/133836jlxxu3l8u8k83uul.jpg">Media</a>我认识的每个人都会记笔记,许多人使用在线笔记应用,如 Evernote、Simplenote 或 Google Keep。这些都是很好的工具,但你不得不担忧信息的安全性和隐私性 —— 特别是考虑到 <a href="https://blog.evernote.com/blog/2016/12/15/evernote-revisits-privacy-policy/">Evernote 2016 年的隐私策略变更</a>。如果你想要更好地控制笔记和数据,你需要转向开源工具。无论你离开 Evernote 的原因是什么,都有开源替代品。让我们来看看其中一个选择:Turtl。入门<a href="https://turtlapp.com/">Turtl</a> 背后的开发人员希望你将其视为“具有绝对隐私的 Evernote”。说实话,我不能保证 Turtl 提供的隐私级别,但它是一个非常好的笔记工具。要开始使用 Turtl,<a href="https://turtlapp.com/download/">下载</a>适用于 Linux、Mac OS 或 Windows 的桌面客户端,或者获取它的 <a href="https://turtlapp.com/download/">Android 应用</a>。安装它,然后启动客户端或应用。系统会要求你输入用户名和密码。Turtl 使用密码来生成加密密钥,根据开发人员的说法,加密密钥会在将笔记存储在设备或服务器上之前对其进行加密。使用 Turtl你可以使用 Turtl 创建以下类型的笔记:密码档案图片书签文字笔记无论你选择何种类型的笔记,你都可以在类似的窗口中创建:<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/19/133851n3je9zuqlrhhqkfh.png">Create new text note with Turtl</a><em>在 Turtl 中创建新笔记</em>添加笔记标题、文字并(如果你正在创建文件或图像…
计算机实验室之树莓派:课程 1 OK01
OK01 课程讲解了树莓派如何入门,以及在树莓派上如何启用靠近 RCA 和 USB 端口的 OK 或 ACT 的 LED 指示灯。这个指示灯最初是为了指示 OK 状态的,但它在第二版的树莓派上被改名为 ACT。Media
via https://linux.cn/article-10458-1.html
OK01 课程讲解了树莓派如何入门,以及在树莓派上如何启用靠近 RCA 和 USB 端口的 OK 或 ACT 的 LED 指示灯。这个指示灯最初是为了指示 OK 状态的,但它在第二版的树莓派上被改名为 ACT。Media
via https://linux.cn/article-10458-1.html
计算机实验室之树莓派:课程 1 OK01
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/19/163408xpyibrbyq5d4q5cf.jpg">Media</a>OK01 课程讲解了树莓派如何入门,以及在树莓派上如何启用靠近 RCA 和 USB 端口的 OK 或 ACT 的 LED 指示灯。这个指示灯最初是为了指示 OK 状态的,但它在第二版的树莓派上被改名为 ACT。1、入门我们假设你已经访问了<a href="https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/downloads.html">下载</a>页面,并且已经获得了必需的 GNU 工具链。也下载了一个称为操作系统模板的文件。请下载这个文件并在一个新目录中解开它。2、开始现在,你已经展开了这个模板文件,在 source 目录中创建一个名为 main.s 的文件。这个文件包含了这个操作系统的代码。具体来看,这个文件夹的结构应该像下面这样:<pre class="prettyprint linenums">build/ (empty)source/ main.skernel.ldLICENSEMakefile</pre>用文本编辑器打开 main.s 文件,这样我们就可以输入汇编代码了。树莓派使用了称为 ARMv6 的汇编代码变体,这就是我们即将要写的汇编代码类型。扩展名为 .s 的文件一般是汇编代码,需要记住的是,在这里它是 ARMv6 的汇编代码。首先,我们复制下面的这些命令。<pre class="prettyprint linenums">.section .init.globl _start_start:</pre>实际上,上面这些指令并没有在树莓派上做任何事情,它们是提供给汇编器的指令。汇编器是一个转换程序,它将我们能够理解的汇编代码转换成树莓派能够理解的机器代码。在汇编代码中,每个行都是一个新的命令。上面的第一行告诉汇编器 <a href="#fn1">1</a> 在哪里放我…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/19/163408xpyibrbyq5d4q5cf.jpg">Media</a>OK01 课程讲解了树莓派如何入门,以及在树莓派上如何启用靠近 RCA 和 USB 端口的 OK 或 ACT 的 LED 指示灯。这个指示灯最初是为了指示 OK 状态的,但它在第二版的树莓派上被改名为 ACT。1、入门我们假设你已经访问了<a href="https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/downloads.html">下载</a>页面,并且已经获得了必需的 GNU 工具链。也下载了一个称为操作系统模板的文件。请下载这个文件并在一个新目录中解开它。2、开始现在,你已经展开了这个模板文件,在 source 目录中创建一个名为 main.s 的文件。这个文件包含了这个操作系统的代码。具体来看,这个文件夹的结构应该像下面这样:<pre class="prettyprint linenums">build/ (empty)source/ main.skernel.ldLICENSEMakefile</pre>用文本编辑器打开 main.s 文件,这样我们就可以输入汇编代码了。树莓派使用了称为 ARMv6 的汇编代码变体,这就是我们即将要写的汇编代码类型。扩展名为 .s 的文件一般是汇编代码,需要记住的是,在这里它是 ARMv6 的汇编代码。首先,我们复制下面的这些命令。<pre class="prettyprint linenums">.section .init.globl _start_start:</pre>实际上,上面这些指令并没有在树莓派上做任何事情,它们是提供给汇编器的指令。汇编器是一个转换程序,它将我们能够理解的汇编代码转换成树莓派能够理解的机器代码。在汇编代码中,每个行都是一个新的命令。上面的第一行告诉汇编器 <a href="#fn1">1</a> 在哪里放我…
Flatpak 新手指南
Flatpak 作为分发桌面应用的新框架可以让开发者完全摆脱这些负担。开发者只需构建一个 Flatpak app 就可以在多种发行版上安装使用。Media
via https://linux.cn/article-10459-1.html
Flatpak 作为分发桌面应用的新框架可以让开发者完全摆脱这些负担。开发者只需构建一个 Flatpak app 就可以在多种发行版上安装使用。Media
via https://linux.cn/article-10459-1.html
Flatpak 新手指南
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/20/113109d3443v33qv66vb4y.jpg">Media</a>以前,我们介绍 Ubuntu 推出的 <a href="http://www.ostechnix.com/introduction-ubuntus-snap-packages/">Snaps</a>。Snaps 是由 Canonical 公司为 Ubuntu 开发的,并随后移植到其他的 Linux 发行版,如 Arch、Gentoo、Fedora 等等。由于一个 snap 包中含有软件的二进制文件和其所需的所有依赖和库,所以可以在无视软件版本、在任意 Linux 发行版上安装软件。和 Snaps 类似,还有一个名为 Flatpak 的工具。也许你已经知道,为不同的 Linux 发行版打包并分发应用是一件多么费时又复杂的工作,因为不同的 Linux 发行版的库不同,库的版本也不同。现在,Flatpak 作为分发桌面应用的新框架可以让开发者完全摆脱这些负担。开发者只需构建一个 Flatpak app 就可以在多种发行版上安装使用。这真是又酷又棒!用户也完全不用担心库和依赖的问题了,所有的东西都和 app 打包在了一起。更重要的是 Flatpak app 们都自带沙箱,而且与宿主操作系统的其他部分隔离。对了,Flatpak 还有一个很棒的特性,它允许用户在同一个系统中安装同一应用的多个版本,例如 VLC 播放器的 2.1 版、2.2 版、2.3 版。这使开发者测试同一个软件的多个版本变得更加方便。在本文中,我们将指导你如何在 GNU/Linux 中安装 Flatpak。安装 FlatpakFlatpak 可以在大多数的主流 Linux 发行版上安装使用,如 Arch Linux、Debian、Fedora、Gentoo、Red Hat、Linux Mint、openSUSE、Solus、Mageia 还有 Ubuntu。在 Arch Linux 上,使用这一条命令来安装 Flatpak:<pre class="prettyprint linenums">$ sudo pacman -S flatpak</pre>对于 Debian 用…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/20/113109d3443v33qv66vb4y.jpg">Media</a>以前,我们介绍 Ubuntu 推出的 <a href="http://www.ostechnix.com/introduction-ubuntus-snap-packages/">Snaps</a>。Snaps 是由 Canonical 公司为 Ubuntu 开发的,并随后移植到其他的 Linux 发行版,如 Arch、Gentoo、Fedora 等等。由于一个 snap 包中含有软件的二进制文件和其所需的所有依赖和库,所以可以在无视软件版本、在任意 Linux 发行版上安装软件。和 Snaps 类似,还有一个名为 Flatpak 的工具。也许你已经知道,为不同的 Linux 发行版打包并分发应用是一件多么费时又复杂的工作,因为不同的 Linux 发行版的库不同,库的版本也不同。现在,Flatpak 作为分发桌面应用的新框架可以让开发者完全摆脱这些负担。开发者只需构建一个 Flatpak app 就可以在多种发行版上安装使用。这真是又酷又棒!用户也完全不用担心库和依赖的问题了,所有的东西都和 app 打包在了一起。更重要的是 Flatpak app 们都自带沙箱,而且与宿主操作系统的其他部分隔离。对了,Flatpak 还有一个很棒的特性,它允许用户在同一个系统中安装同一应用的多个版本,例如 VLC 播放器的 2.1 版、2.2 版、2.3 版。这使开发者测试同一个软件的多个版本变得更加方便。在本文中,我们将指导你如何在 GNU/Linux 中安装 Flatpak。安装 FlatpakFlatpak 可以在大多数的主流 Linux 发行版上安装使用,如 Arch Linux、Debian、Fedora、Gentoo、Red Hat、Linux Mint、openSUSE、Solus、Mageia 还有 Ubuntu。在 Arch Linux 上,使用这一条命令来安装 Flatpak:<pre class="prettyprint linenums">$ sudo pacman -S flatpak</pre>对于 Debian 用…
理解 Linux 中的 /etc/services 文件
这篇文章将帮助你了解 Linux 中 /etc/services 文件,包括它的内容,格式以及重要性。Media
via https://linux.cn/article-10460-1.html
这篇文章将帮助你了解 Linux 中 /etc/services 文件,包括它的内容,格式以及重要性。Media
via https://linux.cn/article-10460-1.html
理解 Linux 中的 /etc/services 文件
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/20/121500zzzcic6ikkz4m7fc.jpg">Media</a>这篇文章将帮助你了解 Linux 中 /etc/services 文件,包括它的内容,格式以及重要性。Internet 守护程序(ineted)是 Linux 世界中的重要服务。它借助 /etc/services 文件来处理所有网络服务。在本文中,我们将向你介绍这个文件的内容,格式以及它对于 Linux 系统的意义。/etc/services 文件包含网络服务和它们映射端口的列表。inetd 或 xinetd 会查看这些细节,以便在数据包到达各自的端口或服务有需求时,它会调用特定的程序。作为普通用户,你可以查看此文件,因为文件一般都是可读的。要编辑此文件,你需要有 root 权限。<pre class="prettyprint linenums">$ ll /etc/services-rw-r--r--. 1 root root 670293 Jun 7 2013 /etc/services</pre>/etc/services 文件格式<pre class="prettyprint linenums">service-name port/protocol [aliases..] [#comment]</pre>最后两个字段是可选的,因此用 [ ] 表示。其中:service-name 是网络服务的名称。例如 <a href="https://kerneltalks.com/config/configure-telnet-server-linux/">telnet</a>、<a href="https://kerneltalks.com/config/ftp-server-configuration-steps-rhel-6/">ftp</a> 等。port/protocol 是网络服务使用的端口(一个数值)和服务通信使用的协议(TCP/UDP)。alias 是服务的别名。comment 是你可以添加到服务的注释或说明。以 # 标记开头。/etc/services 文件示例<pre class="prettyprint linenums"># 每行描述一个服务,形式如下:## service-name port/protocol [aliases ...] [# comment]tcpmux 1/tcp # TCP port service multiplexerrje 5/tcp # Remote Job Entryecho 7/udpdiscard 9/udp sink null</pre>在这里,你可以看到可选的最后两个字段的用处。discard 服务的别名为 sink 或 null。via: <a href="https://kerneltalks.com/linux/understanding-etc-services-file-in-linux/">https://kerneltalks.com/linux/understanding-etc-services-file-in-linux/</a>作者:<a href="https://kerneltalks.com">kerneltalks</a> 选题:<a href="https://github.com/lujun9972">lujun9972</a> 译者:<a hr…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/20/121500zzzcic6ikkz4m7fc.jpg">Media</a>这篇文章将帮助你了解 Linux 中 /etc/services 文件,包括它的内容,格式以及重要性。Internet 守护程序(ineted)是 Linux 世界中的重要服务。它借助 /etc/services 文件来处理所有网络服务。在本文中,我们将向你介绍这个文件的内容,格式以及它对于 Linux 系统的意义。/etc/services 文件包含网络服务和它们映射端口的列表。inetd 或 xinetd 会查看这些细节,以便在数据包到达各自的端口或服务有需求时,它会调用特定的程序。作为普通用户,你可以查看此文件,因为文件一般都是可读的。要编辑此文件,你需要有 root 权限。<pre class="prettyprint linenums">$ ll /etc/services-rw-r--r--. 1 root root 670293 Jun 7 2013 /etc/services</pre>/etc/services 文件格式<pre class="prettyprint linenums">service-name port/protocol [aliases..] [#comment]</pre>最后两个字段是可选的,因此用 [ ] 表示。其中:service-name 是网络服务的名称。例如 <a href="https://kerneltalks.com/config/configure-telnet-server-linux/">telnet</a>、<a href="https://kerneltalks.com/config/ftp-server-configuration-steps-rhel-6/">ftp</a> 等。port/protocol 是网络服务使用的端口(一个数值)和服务通信使用的协议(TCP/UDP)。alias 是服务的别名。comment 是你可以添加到服务的注释或说明。以 # 标记开头。/etc/services 文件示例<pre class="prettyprint linenums"># 每行描述一个服务,形式如下:## service-name port/protocol [aliases ...] [# comment]tcpmux 1/tcp # TCP port service multiplexerrje 5/tcp # Remote Job Entryecho 7/udpdiscard 9/udp sink null</pre>在这里,你可以看到可选的最后两个字段的用处。discard 服务的别名为 sink 或 null。via: <a href="https://kerneltalks.com/linux/understanding-etc-services-file-in-linux/">https://kerneltalks.com/linux/understanding-etc-services-file-in-linux/</a>作者:<a href="https://kerneltalks.com">kerneltalks</a> 选题:<a href="https://github.com/lujun9972">lujun9972</a> 译者:<a hr…
Caffeinated 6.828:实验 6:最终的 JOS 项目
下面是一个启迪你的想法列表。但是,你应该大胆地去实现你自己的想法。其中一些想法只是一个开端,并且本身不在实验 6 的领域内,并且其它的可能是在更大的领域中。Media
via https://linux.cn/article-10461-1.html
下面是一个启迪你的想法列表。但是,你应该大胆地去实现你自己的想法。其中一些想法只是一个开端,并且本身不在实验 6 的领域内,并且其它的可能是在更大的领域中。Media
via https://linux.cn/article-10461-1.html