2019年1月

长久以来,游戏都是 Linux 的软肋。近些年,Steam、GOG 等游戏发布平台上不少商业游戏都开始支持 Linux,这对于 Linux 的游戏生态来说是件好事,但是我们能在这些平台上玩到的游戏通常是不开源的商业作品。当然,这些游戏在一个开源的操作系统上运行,但对于一个开源提倡者来说这似乎还不够纯粹。

那么,我们能找到既自由开源又能给玩家带来完整游戏体验的优质游戏吗?当然!虽然绝大多数的开源游戏很难和 3A 商业游戏大作竞争,但仍然有不少各种类型的开源游戏,不仅内容有趣而且直接可以通过几大 Linux 发行版本库中直接安装。

本文首先介绍 Linux 开源游戏中的街机类型游戏,在之后的文章中,我将介绍桌面和卡牌游戏,解谜游戏,竞速游戏,以及策略模拟游戏。

太空危机 AstroMenace

太空危机 是一个近现代太空背景下的滚动页面射击游戏。开发初期它是一个闭源游戏,但它的代码和素材而后以开源许可证发布了。游戏玩法和大多数此类游戏大同小异,但它有质量极高的 3D 画面。飞船和武器升级可以通过击杀敌人所获得的点数购买。游戏的难度可以选择,因此适合新手以及想要追求挑战的硬核玩家。

安装太空危机,你只需要在终端下运行以下指令:

  • Fedora 用户: dnf install astromenace
  • Debian/Ubuntu 用户: apt install astromenace

坦克战役 Battle Tanks

坦克战役 是一个俯瞰式视角的快节奏坦克战斗游戏。玩家可以选择三种不同的陆地坦克,操纵其在地图上前行,收集道具并且尝试炸飞敌军。它有四种游戏模式,死亡竞赛(又称“死斗”)、团队死斗、夺旗模式和合作模式。死斗和夺旗模式下,分别有 9 张地图可供玩家选择,合作模式则有 4 张。该游戏支持分屏本地双人游戏,以及在线多人竞技。游戏节奏很快,默认一次战役仅 5 分钟,因此,坦克战役十分适合想要利用零碎时间快速来一局的玩家。

安装坦克战役,你只需要在终端下运行以下指令:

  • Fedora 用户: dnf install btanks
  • Debian/Ubuntu 用户: apt install btanks

火星 M.A.R.S.

火星 是一个自上而下的太空射击游戏,游戏机制类似传统街机游戏 “ 爆破彗星 Asteroids ”。玩家在操控一个太空船的同时向敌方射击并躲避敌军的弹幕射击。游戏有标准的死斗和团体死斗模式,除此之外也有更新鲜的比赛形式 —— 例如在一个模式下,玩家需要控制一个球使其进入敌方母星。该游戏支持本地多人游戏,但遗憾的是不支持多人联机。该游戏的开发更新似乎已经停止,所以该游戏之后增加联机模式的几率很小,但就算没有联机支持,这个游戏仍然值得一试。

安装火星,你只需要在终端下运行以下指令:

  • Fedora 用户: dnf install marsshooter
  • Debian/Ubuntu 用户: apt install marsshooter

不存在之球 Neverball

不存在之球 的游戏灵感来源自世嘉的 “ 超级猴子球 Super Monkey Ball ” ,玩家需要将一个球在 3D 球场上运动起来,但是玩家控制的不是球,而是球场。游戏任务是在规定的时限内,收集足够多的金币从而打开该关卡的出口并且将小球落进该洞中。游戏可以调整难度,从休闲到难以超乎想象,可以适应不同的玩家需求。该游戏支持键盘/鼠标以及控制杆操作。

安装不存在之球,你只需要在终端下运行以下指令:

  • Fedora 用户:dnf install neverball
  • Debian/Ubuntu 用户:apt install neverball

超级 Tux SuperTux

超级 Tux 是继任天堂超级马里奥后的一款 2D 的平台跳跃游戏。Linux 的吉祥物企鹅 Tux 代替了马里奥,而鸡蛋对应着马里奥系列中的蘑菇能力提升。当 Tux 获得了鸡蛋得到了能力提升,它便可以收集花朵,而花朵可以带来新的附加特殊能力。火焰花在关卡中最为常见,收集了火焰花的 Tux 可以掷出火球。除此之外,冰冻花/空气花/土地花也在游戏的程序中。收集星星的能力提升能使 Tux 暂时变得隐形,就如同马里奥系列游戏。该游戏最基础的一组关卡,冰之岛也有 30 关之多,因此游戏的内容和流程和超级马里奥系列一般长。SuperTux 还有一些附加关卡,例如三个额外奖励小岛、一个森林之岛、一个万圣节岛、一个孵化处,以及很多测试关卡。SuperTux 有一个自带的关卡编辑器,所以玩家可以创建他们的原创关卡。

安装超级 Tux,你只需要在终端下运行以下指令:

  • Fedora 用户:dnf install supertux
  • Debian/Ubuntu 用户: apt install supertux

如果我没有在上文中提及你最喜欢的开源街机游戏,欢迎在评论中分享。

有关作者

Joshua Allen Holm - 是 Opensource.com 的社区协调者之一。他的主要兴趣有数字人文、学术开放以及公开教育资源。你可以在 GitHub、GitLab、LinkedIn 和 Zotero 上找到他。可以通过 [email protected] 联系到他。


via: https://opensource.com/article/18/1/arcade-games-linux

作者:Joshua Allen Holm 译者:Scoutydren 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在这个系列的最后一篇当中,我们将为你展示如何用双因子认证保护你的在线账户。

到目前为止,本系列教程已经提供了 PGP 的实用指南,包括基本概念和工具、生成和保护你的密钥的步骤。如果你错过了前面的文章,可以通过下面的链接查看。在本系列的最后一篇文章中,我们将为你保护在线帐户提供一个额外的指南,保护在线帐户是当今非常重要的一件事情。

清单

  • 取得一个具备 U2F 功能的设备(必要)
  • 为你的在线帐户启用双因子认证(必要)

    • GitHub/GitLab
    • Google
    • 社交媒体
  • 使用 U2F 作为主验证机制,使用 TOTP 作为备选(必要)

考虑事项

你可能注意到,很多在线开发者身份是捆绑了 email 地址的。如果有人能够访问你的邮箱,他们就能够去做一些对你会产生危害的事情,进而会损害你作为自由软件开发者的声誉。应该像保护你的 PGP 密钥那样保护你的 email 地址。

使用 Fido U2F 的双因子认证

双因子认证 是一种提升帐户安全性的机制,它除了要求用户名和密码之外,还要求一个物理令牌。它的目标是即便在有人窃取了你的密码(通过按键记录器、肩窥攻击或其它方式)的情况下,仍然能确保你的帐户安全,他们在没有得到你的一个专用的物理设备(“必备”的那个因子)的情况下,始终不能获取你的帐户。

广为人知的双因子认证机制有:

  • 基于 SMS 的验证
  • 借助智能手机应用程序的基于时间的一次性令牌(TOTP),比如 Google Authenticator 或类似解决方案
  • 支持 Fido U2F 的硬件令牌

基于 SMS 的验证很容易配置,但是它有如下的缺点:它在没有手机信号的地方无法使用(比如,建筑物的地下室),并且如果攻击者能够阻断或转向 SMS 信息,这种方式可能就会失败,比如通过克隆你的 SIM 卡。

基于 TOTP 的多因子认证提供了比 SMS 更好的安全保护,但它也有一些重要的缺点(你要在智能手机中添加的那么多令牌中找到正确的那个)。此外,还不能避免一个事实,那就是你的密钥最终还是保存在你的智能手机中 —— 它是一个复杂的、全球连接的设备,它有可能还没有及时从制造商那儿收到安全补丁。

更重要的是,不论是使用 TOTP 还是 SMS 的方法来保护你免受诱骗攻击 —— 如果诱骗攻击者能够窃取你的帐户密码和双因子令牌,他们就可以在合法的站点上使用它们,访问你的帐户。

Fido U2F 是一个按标准开发的专用设备,它能够提供双因子认证机制来对付诱骗攻击。U2F 协议在 USB 令牌中保存每个站点的的唯一密钥,如果你在任何合法站点以外的地方尝试使用它,它将阻止你,以防范偶然让攻击者获得你的密码和一次性令牌。

Chrome 和 Firefox 都支持 U2F 双因子认证,希望其它浏览器也能够提供对 U2F 的支持。

获得一个支持 Fido U2F 功能的令牌

支持 U2F 的硬件令牌的 可选目标很多,但如果你已经订购了一个支持智能卡的物理设备,那么你最好的选择就是 Yubikey 4,它两者都支持。

启用你的在线帐户的双因子认证

你要确定想启用双因子认证的在线账户,你的 email 提供商已经使用了(特别是 Google,它对 U2F 的支持非常好)。其它的站点这个功能应该是启用了:

  • GitHub:当你上传你的 PGP 公钥时,你应该要想到,如果其他人能够获得访问你的帐户,他们可以用他们自己的 PGP 公钥替换掉你的 PGP 公钥。如果在 GitHub 上发布代码,你应该使用 U2F 认证来保护你的帐户安全。
  • GitLab:理由同上
  • Google:如果你有 google 帐户,你就惊奇地发现,许多帐户都允许以 Google 帐户来代替站点专用的认证来登入它们。
  • Facebook:理由同上,许多在线站点都提供一个选择让你以 Facebook 的帐户来认证。即便你不使用 Facebook 也应该使用双因子认证来保护你的 Facebook 帐户。
  • 你认为必要的其它站点。查看 dongleauth.info 去找找灵感。

如有可能,配置 TOTP 作为备选

许多站点都允许你配置多个双因子认证机制,推荐的设置是:

  • U2F 令牌作为主认证机制
  • TOTP 手机应用作为辅助认证机制

通过这种方式,即便你丢失了你的 U2F 令牌,你仍然能够重新获取对你的帐户的访问。或者,你可以注册多个 U2F 令牌(即:你可以用一个便宜的令牌仅用它做 U2F,并且将它用作备份)。

延伸阅读

到目前为止,你已经完成了下列的重要任务:

  1. 创建你的开发者身份并使用 PGP 加密来保护它。
  2. 通过将你的主密钥移到一个离线存储中并将子密钥移到一个外置硬件设备中的方式来配置你的环境,让窃取你的身份变得极为困难。
  3. 配置你的 Git 环境去确保任何使用你项目的人都能够验证仓库的完整性和它的整个历史。
  4. 使用双因子认证强化你的在线帐户。

在安全保护方面,你已经做的很好了,但是你还应该去阅读以下的主题:

  • 如何去强化你的团队沟通。你的项目开发和治理决策的要求应该和保护提交代码那样去保护,如果不这样做,应该确保你的团队沟通是可信任的,并且所有决策的完整性是可验证的。
  • 如何去强化你的工作站的安全。你的目标是尽可能减少导致项目代码被污染的危险或你的开发者身份被窃的行为。
  • 如何写出安全的代码(查看相关编程语言和你项目所使用的库的各种文档)。即便引入它的提交代码上有一个 PGP 签名,糟糕的、不安全的代码仍然是糟糕的、不安全的代码!

via: https://www.linux.com/blog/learn/pgp/2018/3/protecting-code-integrity-pgp-part-7-protecting-online-accounts

作者:Konstantin Ryabitsev 选题:lujun9972 译者:qhwdw 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

介绍

在这篇文章中,我们将讨论一个典型区块链的生态系统。这里说的生态系统,指的是不同的利益相关者及其相互之间,系统和外部世界间的相互作用。我们将要探索的不同利益相关者是:

  1. 用户
  2. 投资者
  3. 矿工
  4. 开发商

了解这些利益相关者如何融入区块链生态系统,不仅可以让您更好地了解区块链的运作方式,还可以让您更好地评估其增长潜力。区块链对于上述每个利益相关者来说越有吸引力,就越有可能健康的增长。所以,不多说了,下面介绍区块链生态系统的丰富的特色。

用户

用户是使用区块链或加密货币实现某些目的的普通人,而不仅仅是投资者。为维护用户,加密货币必须具有一些实用程序(用于花费你的钱币)。让我们快速浏览三个最受欢迎的区块链,以了解它们当前和潜在的效用。

比特币

比特币只有一个功能,即用于货物和服务的付款。在撰写本文时,全球约有 48,000 家(编者注:截止到 2018 年 9 月)商家接受比特币为商品和服务付款(Coinbase)。事实上,包括 PayPal、Expedia、微软、赛百味、彭博、Reddit、戴尔、Steam、Whole Foods、Shopify 和 Webjet 在内的几个家用品牌和主要电子商务公司都将自己的名字添加到了不断增长的比特币商家名单中。未来十年,这个名单将不可避免地继续增长,并且在不远的将来的某个时候,比特币完全有可能像 Visa、AMEX 或万事达卡那样被广泛接受。这可以说意味着比特币目前比任何其他区块链更具实用性。与传统支付方式相比,比特币支付的优势在于:

  • 更快的国际支付和交易
  • 交易费用非常低
  • 伪匿名
  • 没有第三方介入

商家的额外好处包括:

  • 没有 chargeback(编者注:Chargeback 是信用卡中的一个术语,意思是顾客可以声明一笔交易并非本人发起的。根据国家法律,这种情况往往商家或银行要负责对顾客的全额退款,是一种保护顾客的机制,但也给商家和银行增加了支付处理中的风险。)
  • 额外的客户群

由于比特币的高效用,其生态系统的相当大部分由用户组成。从长期投资的角度来看,这非常好,因为它可以提高价格稳定性,并为投资者提供有详实的数据(用户增长,商家采用,交易数量等)以便预测其价格。

以太坊

以太坊区块链与比特币区块链根本不同,因为它能够将智能合约嵌入区块链(见前一篇区块链历史介绍)。因此,以太坊为其用户提供了两种不同类型的应用:

货币应用:虽然不是以太坊的主要目标,但用户可以使用 Ether(以太币,以太坊区块链的加密货币)来支付商品和服务。一些公司(TenXToken CardMonaco)正在竞相通过其加密货币借记卡和 Coinify 等在线支付平台获取市场份额,为在线商家提供即插即用解决方案,以接受像以太币这样的加密货币作为支付。然而,目前,比特币仍然是加密货币的王者,以太和其他加密货币可能不得不追赶几年。

常规应用:这是指用户与基于以太坊区块链的 dApp 交互。已有数百个 dApp 允许用户以各种方式与以太坊区块链进行交互。例如,Numerai 是一种独特的对冲基金,它为世界各地的数据科学家提供加密市场数据,激励他们超越当前的交易算法并提高对冲基金的整体表现。还有一些彩票 dApp,以公平透明的方式提供彩票服务。然而,这只是一个开始。新的 dApp 每天都在发布,将来必定会有人开发出一款真正吸引公众注意力并引领下一波以太坊用户浪潮的 dApp。

可以在此处找到以太坊区块链上所有 dApp 的列表。

瑞波

市值排名第三的区块链是 瑞波 Ripple 。 瑞波与比特币和以太坊的不同之处在于它的设计考虑了一个特定的目标:为金融机构提供任何规模的安全,即时和近乎免费的全球交易。瑞波也与大多数区块链不同,因为它的目标用户是金融机构而不是私人。瑞波已经宣布与渣打银行和 UniCredit 等世界上大型金融机构建立合作伙伴关系,已经在区块链市场排行榜上获得第三名。

投资者

几乎所有区块链生态系统中的大多数利益相关者仍然是投资者。因此,加密货币市场仍然具有高度投机性,一天内价格波动 +/- 30% 或更多并不罕见。区块链市场如此不稳定的部分原因是,评估加密货币或 dApp 的真正价值极其困难。该技术仍然年轻,由于实用性有限导致缺乏用户,因此很难预测在大规模采用时该技术将如何。

尽管投资区块链技术存在许多陷阱,但目前的市场条件实际上是一个有吸引力的投资机会:

  • 专家、顾问和投资者几乎一致同意,区块链技术市场将在未来十年内继续快速增长(麦肯锡世界经济论坛
  • 进入壁垒仍然很高,大多数人不愿意进入市场
  • 虽然区块链在 2016 年和 2017 年都经历了令人难以置信的增长,但所有公共区块链的总市值仍然相对较小,约为 150 亿美元。为了更好地理解这一点,在撰写本文时,整个区块链行业的市值将只是世界第 50 大公司,位于荷兰的消费品公司联合利华之后。HowMuch.net 的这篇文章将加密货币的总市值与其他类型的资产进行了比较,并且展望了未来:

话虽如此,并非所有的区块链都是平等的……在接下来的几年里,我们无疑会看到很多初创公司倒闭或烧钱,导致投资者辛苦赚来的钱损失掉。我们将看到诈骗公司,其唯一目标是从愚蠢的投资者那里榨取资金。我们将看到来自成熟公司的激烈竞争,以开发自己的区块链应用程序。生活中没有任何东西是免费的。如果想把钱投入区块链,将不得不接受高风险。我们将有足够的时间在未来的博客文章中讨论投资策略,但现在我们将给您留下两个想法:

  1. 在投资任何公司之前,请积极研究至少一周。向自己提出有关投资的一些棘手问题。如果您无法回答问题,请与社区和开发人员联系。如果他们采用某些主观信息来回答,要持怀疑态度。如果他们不能充分回答您的问题,那么不是说一定就要停止投资,但请注意它是一种风险,并在购买之前将其考虑在内。
  2. 多样化。必须强调这一点。在接下来的几年里,很多公司都会陷入困境,如果你把所有的鸡蛋都放在一个篮子里,你不仅会冒失去钱的风险,还可能有失去对该行业中最终占据主导地位的公司投资机会的风险。

我认为在任何区块链生态系统中,有 4 种不同类型的投资者:

新手

区块链市场的巨大增长和不断增加的宣传吸引了成千上万的新投资者。很大一部分投资者会被潜在的收益所吸引,而没有去充分了解这项技术。新手用自己的情绪做决定,而且没有比害怕这种情绪更强迫人行动的了。害怕失去钱,也害怕失去机会。因此,新手的买入价格经常过高。

同样,如果价格下跌超过其初始买入点 10-20%,由于害怕失去所有资金,新手经常会卖出。这在超级易变的区块链市场尤其危险。因此,新手经常会买高卖低卖。

Vanguard 的结论是:

  1. 对于大多数私人非专业投资者来说,追求投机绩效常常影响回报率
  2. 市场波动性越大,追逐绩效的负面影响就越大

在区块链市场上很难不扮演新手的角色。即使您有先前的投资经验,区块链市场的不确定性和极端波动性也将考验您的意志力和自制力。

鲸鱼

鲸鱼是那些拥有庞大储备的大型投资者,他们可以使市场向某一个方向发展。

通常,订单约为 1-500 万美元或以上的人被视为鲸鱼。像这样的大订单足以显著影响大多数加密货币或区块链令牌。如果这种变化吸引了小玩家的注意,并对他们的钱进行相同的操作(如果价格上涨则买入,或者如果价格下降则卖出),鲸鱼可以在稍后的时间执行相反的操作以获取利润。

另一个深渊,即巨鲸。

巨鲸在这里指对冲基金和比特币投资基金,通常管理约 1 亿美元以上的投资组合。他们管理的资本过于庞大,一次下单市场常无法消化。他们通常会在一周或更长时间内将成千上万的比特币注入或流出市场,从而慢慢推动价格上涨或下跌,以满足他们自己的需求。

这些听起来可能令人难以置信,但区块链市场确实具有一些特征,使其成为具有正确手段和风险承受能力的高风险对冲基金的理想场所:

  • 没有规定
  • 相对较少的竞争
  • 小市场给大型企业带来优势
  • 大量缺乏经验的投资者

还有最后一个水下野兽,一个足以完全吞噬世界巨头并永远改变区块链市场的人。这里说的是政府投资者。政府可能有一天将加密货币作为一种多样化储备货币组合的方式,这种想法非常有趣,无疑会导致之前闻所未闻的价格水平 (Coin Telegraph)。

套利者

套利者不断寻找并利用不同在线交易所之间的小价格差距。他们与数百家交易所相连,如果有机会,他们将在澳大利亚交易所买入低价并在瑞士交易所卖出高价。你可能认为套利者正在破坏区块链生态系统,但它们实际上发挥了一个非常特别和重要的功能。它们稳定了交易所的价格。他们就像大海的清洁工一样,总是在海底搜寻,以寻找市场上的不合理处。

聪明的八爪鱼

这种投资者是你想成为的人!这种聪明的八足动物买得低,卖得很高。他们在做出决定之前进行了广泛的研究,并认识到风险和潜在的回报。这种聪明的八足动物认识到,利用加密货币的短期波动操作非常困难,要关注长期回报。他们避免情绪化决策,并通过价格波动坚持他们的投资,除非他们的投资有一些根本性的变化。这种聪明的八足动物认识到在区块链这样的新兴行业中识别赢家和输家是极其困难的。他们认识到总体行业风险,关注传统公司进入市场并密切关注他们的投资。

如果你发展出聪明的八爪鱼的特性,你将有很大机会在未来十年内为你的投资带来非常好的回报。

虽然很希望告诉你,我们属于最后一类,而且我们从未做过情绪化或恐惧驱动的决定,但事实并非如此。在这一点上,我们可能介于新手和聪明的八足动物之间。希望通过撰写此博客并继续获得区块链市场的经验,将在未来几年内把我们变成聪明的八足动物。我希望你能加入我们,成为这次旅程的积极参与者。我们可以共同学习和研究,做出更好的决策。

矿工

为了使区块链能够运行并保持其完整性,它需要世界各地的独立节点网络来持续维护它。在私有区块链中,中心组织拥有网络上的每个节点。而在公共区块链中,任何人都可以将其计算机设置为节点。这些计算机的所有者称为矿工。

由于区块链的完整性与网络上独立节点的数量直接相关,因此还需要一些挖矿激励。不同的区块链使用不同的采矿系统,但大多数采用以下形式:

  • 激励系统:最常见的是微交易费用和块解决方案奖励的组合(比特币矿工每解决一个比特币块,获得 12.5 BTC 奖励。按照约定奖励着时间的推移逐渐减少)。
  • 共识算法:所有区块链都需要一种验证广播到网络的块的方法。比特币区块链使用工作证明(PoW)。您将在下一篇文章中了解有关 PoW 如何工作的更多信息。以太坊也使用 PoW,但将更改为权益证明 (PoS)(以太坊区块链包含故意放置在代码中的 难度炸弹 difficulty bomb ,以强制在某些时候更改为 PoS。之后将详细介绍)。

正如您将在下一篇文章中看到的那样,挖掘一个块是非常困难的,一台计算机需要多年来实现。因此,个体矿工组建了采矿行会,将他们的资源汇集在一起​​并分享回报。blockchain.info 的资料显示了过去 4 天比特币区块链中每个采矿公会的相对哈希率(工作量)。

因为矿工需要保持区块链的完整性,所以他们拥有很大的权力。如果比特币社区想以这种或那种方式改变比特币协议,他们将不得不说服大多数矿工采用新代码。对现有区块链协议的更改称为分叉。潜在的分叉一直是采矿论坛上讨论的热门话题,没有中央权威就很难达成共识。

开发商

正如上一篇文章中所讨论的,区块链有可能变得不仅仅是加密货币。区块链世界中目前有两种类型的开发人员:

  • 区块链开发人员
  • dApp 开发人员

区块链开发人员构建具有不同功能级别的全新区块链。dApp 开发人员可以构建在区块链上运行的去中心化应用程序,从而为用户提供使用区块链(即实用程序)的理由。

以太坊推出的智能合约为渴望创造下一个重大事件的 dApp 开发者打开了大门。在评估区块链时,重要的是要考虑开发人员如何对其做出反应。有些问题要问自己,包括:

  • 该平台允许开发人员使用哪些脚本语言?
  • 社区是否有足够的活跃,能够说服开发人员花时间为该平台开发 dApp?
  • 区块链中是否有一些特殊功能,当 dApp 开发人员无法在更受欢迎的区块链上创建其应用,而在这个区块链上可以?
  • 区块链的可扩展性如何?如果它最终变得流行,代码是否能够处理大量的交易?

要充分利用区块链技术,您需要同时了解区块链和 dApp 开发中的最新消息。

结论

区块链生态系统复杂而充满活力。

了解这一点将使您能够做出更好的决策并充分利用这一新兴技术。你喜欢这篇博文吗?我们是否错过了任何利益相关者?您对不同的利益相关者及其对整个区块链生态系统的影响有何看法?你认为会看到政府在他们的储备中加入加密货币吗?

我们很乐意在下面的留言板上收到您的来信!如果您发现我们的内容有任何错误或错误,请随时通知我们,我们会及时更正。我们的下一篇文章将为您提供加密功能的概述,使区块链能够安全且伪匿名地工作。希望能在那里见到你!


via: https://www.myblockchainblog.com/blog/the-blockchain-ecosystem

作者:Vegard Nordahl & Meghana Rao 选题:jasminepeng 译者:jasminepeng 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

这个课程简介不包含实践内容,但它解释了一个操作系统的基本概念、汇编代码、和其它很重要的一些基本原理。如果你想直接进入实践环节,跳过本课程并不会有什么问题。

1、操作系统

操作系统就是一个非常复杂的程序。它的任务就是组织安排计算机上的其它程序,包括共享计算机的时间、内存、硬件和其它资源。你可能听说过的一些比较大的桌面操作系统家族有 GNU/Linux、Mac OS X 和 Microsoft Windows。其它的设备比如电话,也需要操作系统,它可能使用的操作系统是 Android、iOS 和 Windows Phone。 1

由于操作系统是用来与计算机系统上的硬件进行交互的,所以它必须了解系统上硬件专有的信息。为了能让操作系统适用于各种类型的计算机,发明了 驱动程序 的概念。驱动程序是为了能够让操作系统与特定的硬件进行交互而添加(并可删除)到操作系统上的一小部分代码。在本课程中,我们并不涉及如何创建可删除的驱动程序,而是专注于特定的一个硬件:树莓派。

操作系统有各种不同的设计方式,在本课程中,我们只触及操作系统设计的皮毛。本课程中,我们主要专注于操作系统与各种硬件的交互部分,因为这经常是比较棘手的部分,并且也是在网络上文档和帮助最少的部分。

2、汇编代码

处理器每秒可以执行上百万的指令,但是这些指令必须要简单。

本课程几乎要完全靠汇编代码来写。汇编代码非常接近计算机的底层。计算机其实是靠一个叫处理器的设备来工作的,处理器能够执行像加法这样的简单任务,还有一组叫做 RAM 的芯片,它能够用来保存数字。当计算机通电后,处理器执行程序员给定的一系列指令,这将导致内存中的数字发生变化,以及与连接的硬件进行交互。汇编代码只是将这些机器命令转换为人类可读的文本。

常规的编程就是,程序员使用编程语言,比如 C++、Java、C#、Basic 等等来写代码,然后一个叫编译器的程序将程序员写的代码转换成汇编代码,然后进一步转换为二进制代码。 2 二进制代码才是计算机真正能够理解的东西,但它是人类无法读取的东西。汇编代码比二进制代码好一点,至少它的命令是人类可读的,但它仍然让人很沮丧。请记住,你用汇编代码写的每个命令都是处理器可以直接认识的,因此这些命令设计的很简单,因为物理电路必须能够处理每个命令。

Compiler process

和普通编程一样,也有很多不同的汇编代码编程语言,但与普通编程不一样的是,每个汇编编程语言是面对不同的处理器的,每种处理器设计为去理解不同的语言。因此,用一个针对某种机器设计的汇编语言所写的汇编代码,是不能在其它种类的机器上运行的。很多情况下,这都是一个大灾难,因此每个程序都必须在使用它的不同种类的机器上重写一遍,但对于操作系统,这不是个问题,因为在不同的硬件上它必须得重写。尽管如此,大多数操作系统都是用 C++ 或 C 来写的,这样它们就可以很容易地在不同种类的硬件上使用,只需要重写那些必须用汇编代码来实现的部分即可。

现在,你已经准备好进入第一节课了,它是 课程 1 OK01


  1. 要查看更完整的操作系统列表,请参照:操作系统列表 - Wikipedia
  2. 当然,我简化了普通编程的这种解释,实际上它在很大程度上取决于语言和机器。感兴趣的话,参见 编译器 - Wikipedia

via: https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/introduction.html

作者:Robert Mullins 选题:lujun9972 译者:qhwdw 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

想让你的终端被记住么?将它打在横幅上,不要错过。

欢迎再次来到为期 24 天的 Linux 命令行玩具日历。如果这是你第一次访问该系列,你甚至可能会问自己什么是命令行玩具。我们也在思考,但一般来说,它可能是一个游戏,或任何简单的消遣,可以帮助你在终端玩得开心。

很可能你们中的一些人之前已经看过我们日历中的各种玩具,但我们希望每个人至少见到一件新事物。

今天的玩具是 figlet,一个在 Linux 终端上以横幅形式打印文本的程序。

你可能会再标准仓库中找到 figlet。在我的 Fedora 上,这意味着安装就像下面这样简单:

$ sudo dnf install figlet

之后,只需使用程序的名称来调用它。你可以以交互方式使用它,或者将一些文本通过管道输入,如下所示:

echo "Hello world" | figlet
 _   _      _ _                            _     _
| | | | ___| | | ___   __      _____  _ __| | __| |
| |_| |/ _ \ | |/ _ \  \ \ /\ / / _ \| '__| |/ _` |
|  _  |  __/ | | (_) |  \ V  V / (_) | |  | | (_| |
|_| |_|\___|_|_|\___/    \_/\_/ \___/|_|  |_|\__,_|

figlet 有许多不同的字体。要查看可用的字体,请尝试使用命令 showfigfonts。在我这里显示了十几个。我在下面复制了一些我的最爱。

block :
                                           
_|        _|                      _|        
_|_|_|    _|    _|_|      _|_|_|  _|  _|    
_|    _|  _|  _|    _|  _|        _|_|      
_|    _|  _|  _|    _|  _|        _|  _|    
_|_|_|    _|    _|_|      _|_|_|  _|    _|  


bubble :
  _   _   _   _   _   _  
 / \ / \ / \ / \ / \ / \
( b | u | b | b | l | e )
 \_/ \_/ \_/ \_/ \_/ \_/


lean :
                                     
    _/                              
   _/    _/_/      _/_/_/  _/_/_/    
  _/  _/_/_/_/  _/    _/  _/    _/  
 _/  _/        _/    _/  _/    _/    
_/    _/_/_/    _/_/_/  _/    _/  


script :
                         
               o          
 ,   __   ,_        _ _|_
/ \_/    /  |  |  |/ \_|  
 \/ \___/   |_/|_/|__/ |_/
                 /|      
                 \|      

你可以在项目的主页上找到有关 figlet 的更多信息。我下载的版本是以 MIT 许可开源的。

你会发现 figlet 不是唯一的 Linux 终端横幅打印机。另外一个你可以选择的是 toilet,它有一套自己的 ASCII 艺术风格的打印选项。

你有特别喜欢的命令行小玩具需要我介绍的吗?我们的日历基本上满了,但我们仍然希望在新的一年中展示一些很酷的命令行玩具。请在评论中留言,我会查看的。记得让我知道你对今天玩具的看法。

一定要看看昨天的玩具,使用 asciiquarium 在终端中游泳,记得明天回来!


via: https://opensource.com/article/18/12/linux-toy-figlet

作者:Jason Baker 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

数独是简单的逻辑游戏,它可以在任何地方玩,包括在 Linux 终端中。

欢迎回到我们为期 24 天的 Linux 命令行玩具日历。如果这是你第一次访问该系列,你甚至可能会问什么是命令行玩具。我们在考虑中,但一般来说,它可能是一个游戏,或任何简单的消遣,可以帮助你在终端玩得开心。

很可能你们中的一些人之前已经看过我们日历中的各种玩具,但我们希望每个人至少见到一件新事物。

每年圣诞节,我的岳母都会给我妻子一本数独日历。它接着会在我们的咖啡桌上呆上一年。每天都是一张单独的表格(星期六和星期日除外,它们合并在一页上),这样你每天都有一个新的谜题,同时还有一本能用的日历。

问题在于在实际中它是一本很好的谜题,但不是一本好的日历,因为事实证明有些日子的题目比其他日子更难,我们没有以每天一个的速度解决它们。然后,我们会在懒散的周日来解决这周堆积的谜题。

既然我在这个系列的一部分中介绍过日历,那么在这里介绍数独也是公平的,除了我们的命令行版本是解耦的,因此将来很容易就能完成它。

我在 Fedora 的默认仓库中找到了 nudoku,因此安装它就像下面这样简单:

$ sudo dnf install nudoku

安装完后,只需输入 nudoku 即可启动它,之后的操作就很明了。如果你以前从未玩过数独,它它很容易:你只需要确保每行、每列、每个 3x3 构成的方块里都包含了 1-9 的所有数字。

你可在 Github 中找到 GPLv3 许可的 nudoku 源码

你有特别喜欢的命令行小玩具需要我介绍的吗?我们的日历基本上满了,但我们仍然希望在新的一年中展示一些很酷的命令行玩具。请在评论中留言,我会查看的。记得让我知道你对今天玩具的看法。

一定要看看昨天的玩具,使用 Linux 终端庆祝丰年,记得明天回来!


via: https://opensource.com/article/18/12/linux-toy-nudoku

作者:Jason Baker 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出