2021年8月

SteamOS 是一款基于 Linux 的操作系统,旨在提供来自 Steam 自己的游戏商店顺滑的游戏体验。

虽然它已经存在了许久,但有几件事你应该知道。

在这篇文章中,我们将回答许多 SteamOS 相关的常见问题。

SteamOS 是什么?

SteamOS 是由游戏分发平台 Steam 开发的 Linux 发行版。它并是一款像 Debian、Linux Mint 或者 Ubuntu 那样的泛用型桌面操作系统,即便你确实可以使用桌面功能。默认情况下,SteamOS 的界面类似于游戏机,因为 SteamOS 旨在成为专为 Steam 游戏设备定制的操作系统,如 Steam Machine(已停产)和 Steam Deck。

SteamOS 界面

你确实也可以在任何 Linux 发行版和其他平台安装 Steam 客户端,但 SteamOS 更是为了提供类似游戏机的体验,方便你玩 Steam 上的游戏。

SteamOS 基于哪个 Linux 发行版?

作为基于 Linux 的系统,SteamOS 最初基于 Debian 8 开发。随着 Valve 的全新 Steam Deck 掌机发布,SteamOS 的最新版本(SteamOS 3.0)将基于 Arch Linux 开发,因为 Arch 支持滚动更新。

SteamOS 的开发团队也相信,SteamOS 基于 Arch Linux 更有利于快速推送更新和优化 Steam Deck。

SteamOS 的系统要求

理想情况下,符合以下最低要求的设备都应该可以正常运行 SteamOS:

  • Intel / AMD 的 64 位 CPU
  • 4GB 或更高的运行内存(RAM)
  • 250GB 或更大的磁盘
  • NVIDIA / Intel / AMD 的显卡
  • 用于安装介质的 USB 或者 DVD

(LCTT 译注:本段内容仅针对 SteamOS 2.0。)

SteamOS 能否在你的电脑上正常运作?

SteamOS(2.0 版本)内置了支持特定硬件的驱动程序。

理论上 SteamOS 可以在任何电脑上运行,但目前官方并没有支持最新的硬件。

SteamOS 只是又一款 Linux 发行版吗?

SteamOS 严格来说已经是现有的 适合游戏的 Linux 发行版 之一。但与其他发行版不同的是,SteamOS 并不是为了泛用型桌面而设计的。你确实可以安装 Linux 程序,但 SteamOS 支持的软件包极为有限。

总之,它并不适合替代普通 Linux 桌面系统。

SteamOS 现在还在积极维护中吗?

,但又不是

SteamOS 基于 Debian 8 许久,目前没有任何更新。

如果你正期望将 SteamOS 安装到你的个人设备上,那么目前公开发布的版本(SteamOS 2.0)已经处于不再维护的状态。

不过,Valve 目前正在为 Steam Deck 维护 SteamOS 3.0。因此,可能不久 SteamOS 就可以用于你的桌面了。

你是否推荐使用 SteamOS 来玩电脑游戏吗?

不推荐。在 Windows 和其它 Linux 发行版面前,SteamOS 并不是你应该选择的替代品。

虽然 SteamOS 主要是为游戏定制的,但在拿它玩游戏之前,你还需要了解许多注意事项。

所有游戏都可以在 SteamOS 上玩吗?

。SteamOS 需要依赖 Proton 兼容层才能让 Windows 平台的游戏正常运行。

当然,如今借助同样的底层技术,在 Linux 里玩游戏 已经成为了可能,但至少在我写这篇文章时,你并不能让 Steam 上架的所有游戏都可以在 Linux 中运行。

虽然大部分游戏都可以运行,但这并不意味着你游戏库里的所有游戏都能正常游玩。

如果你想玩 Steam 支持的游戏,以及仅限于 Linux 平台的游戏,那还是值得一试的。

SteamOS 是否开源?

是的(SteamOS 2.0)。

SteamOS 操作系统是开源的,你可以在 官方仓库 中找到源码。

不过,你用来玩游戏的 Steam 客户端是专有的。

值得注意的是,SteamOS 3.0 目前仍处于开发阶段,因此你无法获得它的源代码和任何公开进展。

SteamOS 是否免费使用?

目前你暂时无法找到可供公众使用的最新版 SteamOS,但它基本上是免费的。基于 Debian 的旧版 SteamOS 可在其 官方网站 上获取。

我能找到内置 SteamOS 的游戏主机吗?

Steam Machine 游戏机,已经停产

SteamOS 最初是为 Steam Machine 这款 Steam 自家的 PlayStation/Xbox 风格的游戏机定制的操作系统。2015 年 Steam Machine 发布后并没有在市场上获得成功,最终停产。

目前,唯一一款预装 SteamOS 的设备是备受瞩目的 Steam Deck。

待到 SteamOS 开放针对其它设备的下载后,你就可以看到有硬件厂商销售预装 SteamOS 的游戏设备了。

但,至少目前来看,你不应该相信任何不知名的制造商提供开箱即用的 SteamOS。

下一代 SteamOS 能否使 Linux 成为游戏的可行选择?

是的,绝对是的。

Linux 可能不是外界所推荐的游戏选择,但如果你乐意的话,你也可以查看 我们所推荐的 Linux 游戏发行版。最后,如果 SteamOS 下了狠心,让每款游戏都能在 Steam Deck 上运行,那么桌面 Linux 用户也将终于可以体验到所有曾经不支持的 Steam 游戏了。


via: https://itsfoss.com/steamos/

作者:Ankush Das 选题:lujun9972 译者:imgradeone 校对:wxy

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

本教程讲述了如何在 Linux 终端中安全地删除文件和文件夹。

 title=

要想使用图形化界面删除计算机上的文件,你可能会直接将文件或文件夹拖拽到 “垃圾箱” 或 “回收站”。或者你也可以选择要删除的文件或文件夹,右键单击并选择 删除

而在终端中删除文件或文件夹时并没有垃圾箱一说(至少默认情况下没有)。在图形化桌面上,Trash(即垃圾箱文件夹)是一个受保护的目录,保护机制可以防止用户不小心将该目录删除,或将其从默认位置移动从而导致找不到它。Trash 本质不过是一个被高度管理的文件夹,因此你可以创建自己的 Trash 文件夹以在终端中使用。

为终端设置一个垃圾箱

在家目录中创建一个名为 Trash 的目录:

$ mkdir ~/Trash

删除文件

要删除文件或文件夹时,使用 mv 命令将文件或文件夹移至 Trash 中:

$ mv example.txt ~/Trash

永久删除文件或文件夹

当你准备从系统中永久删除某个文件或文件夹时,可以使用 rm 命令清除垃圾箱文件夹中的所有数据。通过将 rm 命令指向星号(*),可以删除 Trash 文件夹内的所有文件和文件夹,而不会删除 Trash 文件夹本身。因为用户可以方便且自由地创建目录,所以即使不小心删除了 Trash 文件夹,你也可以再次新建一个。

$ rm --recursive ~/Trash/*

删除空目录

删除空目录有一个专门的命令 rmdir,它只能用来删除空目录,从而保护你免受递归删除错误的影响。

$ mkdir full
$ touch full/file.txt
$ rmdir full
rmdir: failed to remove 'full/': Directory not empty

$ mkdir empty
$ rmdir empty

更好的删除方式

此外还有一些并没有默认安装在终端上的 删除文件命令,你可以从软件库安装它们。这些命令管理和使用的 Trash 文件夹与你在桌面模式使用的是同一个(而非你自己单独创建的),从而使删除文件变得更加方便。

$ trash ~/example.txt
$ trash --list
example.txt
$ trash --empty

via: https://opensource.com/article/21/8/remove-files-linux-terminal

作者:Seth Kenlon 选题:lujun9972 译者:unigeorge 校对:wxy

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

Debian 11 “Bullseye” 正式发布

经过两年多的开发,Debian 11 “Bullseye” 已经正式发布。这个版本是一个长期支持版本,将支持 5 年。主要亮点有:Linux 5.10 LTS 内核;首次支持 exFAT 文件系统;超过 59000 个软件包,其中有 11000 个新软件包;支持控制组 v2;默认编译器 GCC 从 8.3 升级到 GCC 10.2;LLVM Clang 从 7.0 升级到 11.0;支持六种桌面环境。

这是给 Debian 拥趸们的礼品。

GNU Hurd 微内核的非官方移植 GNU/Hurd 2021 发布

Debian GNU/Hurd 仍然是一个非官方的移植版本,是基于 Debian 11.0 的源代码结合 GNU Hurd 微内核。鉴于目前 Hurd 的限制,Debian GNU/Hurd 2021 仍然只是适用于i386,硬件支持仍然很差,基本上只能用于虚拟机中。

GNU 项目哪里都好,就是这个内核一直没啥用。

网络钓鱼攻击使用莫尔斯码来绕过电子邮件过滤系统

微软披露了一个网络钓鱼攻击集团的内部技术,他们使用“拼图”技术加上莫尔斯码的破折号和圆点等不寻常的特征来隐藏其攻击。通过邮件发送的 HTML 附件被分成几个部分,然后用各种机制进行编码,包括像莫尔斯码这样古老而不寻常的加密方法,以隐藏这些攻击片段。这个附件就像一个拼图: HTML 文件的各个部分在代码层面上可能是无害的,只有当这些片段被组合在一起并被正确解码时,才会显示出恶意。

别看摩尔斯码古老,还真是简单而不引人注意。

优化查询语句不过是一项简单的工程,而非什么高深的黑魔法。

 title=

许多人将数据库查询语句的调优视作哈利波特小说中某种神秘的“黑魔法”;使用错误的咒语,数据就会从宝贵的资源变成一堆糊状物。

实际上,对关系数据库系统的查询调优是一项简单的工程,其遵循的规则或启发式方法很容易理解。查询优化器会翻译你发送给 MySQL 实例的查询指令,然后将这些启发式方法和优化器已知的数据信息结合使用,确定获取所请求数据的最佳方式。再读一下后面这半句:“优化器已知的数据信息。”查询优化器需要对数据所在位置的猜测越少(即已知信息越多),它就可以越好地制定交付数据的计划。

为了让优化器更好地了解数据,你可以考虑使用索引和直方图。正确使用索引和直方图可以大大提高数据库查询的速度。这就像如果你按照食谱做菜,就可以得到你喜欢吃的东西;但是假如你随意在该食谱中添加材料,最终得到的东西可能就不那么尽如人意了。

基于成本的优化器

大多数现代关系型数据库使用 基于成本的优化器 cost-based optimizer 来确定如何从数据库中检索数据。该成本方案是基于尽可能减少非常耗费资源的磁盘读取过程。数据库服务器内的查询优化器代码会在得到数据时对这些数据的获取进行统计,并构建一个获取数据的历史模型。

但历史数据是可能会过时的。这就好像你去商店买你最喜欢的零食,然后突然发现零食涨价或者商店关门了。服务器的优化进程可能会根据旧信息做出错误的假设,进而制定出低效的查询计划。

查询的复杂性可能会影响优化。优化器希望提供可用的最低成本查询方式。连接五个不同的表就意味着有 5 的阶乘(即 120)种可能的连接组合。代码中内置了启发式方法,以尝试对所有可能的选项进行快捷评估。MySQL 每次看到查询时都希望生成一个新的查询计划,而其他数据库(例如 Oracle)则可以锁定查询计划。这就是向优化器提供有关数据的详细信息至关重要的原因。要想获得稳定的性能,在制定查询计划时为查询优化器提供最新信息确实很有效。

此外,优化器中内置的规则可能与数据的实际情况并不相符。没有更多有效信息的情况下,查询优化器会假设列中的所有数据均匀分布在所有行中。没有其他选择依据时,它会默认选择两个可能索引中较小的一个。虽然基于成本的优化器模型可以制定出很多好的决策,但最终查询计划并不是最佳方案的情况也是有可能的。

查询计划是什么?

查询计划 query plan 是指优化器基于查询语句产生的,提供给服务器执行的计划内容。查看查询计划的方法是在查询语句前加上 EXPLAIN 关键字。例如,以下查询要从城市表(city)和相应的国家表(country)中获得城市名称(和所属国家名称),城市表和国家表通过国家唯一代码连接。本例中仅查询了英国的字母顺序前五名的城市:

SELECT city.name AS 'City',
               country.name AS 'Country'
FROM city
JOIN country ON (city.countrycode = country.code)
WHERE country.code = 'GBR'
LIMIT 5;

在查询语句前加上 EXPLAIN 可以看到优化器生成的查询计划。跳过除输出末尾之外的所有内容,可以看到优化后的查询:

SELECT `world`.`city`.`Name` AS `City`,
                'United Kingdom' AS `Country`
FROM `world`.`city`
JOIN `world`.`country`
WHERE (`world`.`city`.`CountryCode` = 'GBR')
LIMIT 5;

看下比较大的几个变化, country.name as 'Country' 改成了 'United Kingdom' AS 'Country'WHERE 子句从在国家表中查找变成了在城市表中查找。优化器认为这两个改动会提供比原始查询更快的结果。

索引

在 MySQL 世界中,你会听到索引或键的概念。不过,索引是由键组成的,键是一种识别记录的方式,并且大概率是唯一的。如果将列设计为键,优化器可以搜索这些键的列表以找到所需的记录,而无需读取整个表。如果没有索引,服务器必须从第一列的第一行开始读取每一行数据。如果该列是作为唯一索引创建的,则服务器可以直接读取该行数据并忽略其余数据。索引的值(也称为基数)唯一性越强越好。请记住,我们在寻找更快获取数据的方法。

MySQL 默认的 InnoDB 存储引擎希望你的表有一个主键,并按照该键将你的数据存储在 B+ 树中。“不可见列”是 MySQL 最近添加的功能,除非在查询中明确指明该不可见列,否则不会返回该列数据。例如,SELECT * FROM foo; 就不会返回任何不可见列。这个功能提供了一种向旧表添加主键的方法,且无需为了包含该新列而重写所有查询语句。

更复杂的是,有多种类型的索引,例如函数索引、空间索引和复合索引。甚至在某些情况下,你还可以创建这样一个索引:该索引可以为查询提供所有请求的信息,从而无需再去访问数据表。

本文不会详细讲解各种索引类型,你只需将索引看作指向要查询的数据记录的快捷方式。你可以在一个或多个列或这些列的一部分上创建索引。我的医师系统就可以通过我姓氏的前三个字母和出生日期来查找我的记录。使用多列时要注意首选唯一性最强的字段,然后是第二强的字段,依此类推。“年-月-日”的索引可用于“年-月-日”、“年-月”和“年”搜索,但不适用于“日”、“月-日”或“年-日”搜索。考虑这些因素有助于你围绕如何使用数据这一出发点来设计索引。

直方图

直方图就是数据的分布形式。如果你将人名按其姓氏的字母顺序排序,就可以对姓氏以字母 A 到 F 开头的人放到一个“逻辑桶”中,然后将 G 到 J 开头的放到另一个中,依此类推。优化器会假定数据在列内均匀分布,但实际使用时多数情况并不是均匀的。

MySQL 提供两种类型的直方图:所有数据在桶中平均分配的等高型,以及单个值在单个桶中的等宽型。最多可以设置 1,024 个存储桶。数据存储桶数量的选择取决于许多因素,包括去重后的数值量、数据倾斜度以及需要的结果准确度。如果桶的数量超过某个阈值,桶机制带来的收益就会开始递减。

以下命令将在表 t 的列 c1 上创建 10 个桶的直方图:

ANALYZE TABLE t UPDATE HISTOGRAM ON c1 WITH 10 BUCKETS;

想象一下你在售卖小号、中号和大号袜子,每种尺寸的袜子都放在单独的储物箱中。如果你想找某个尺寸的袜子,就可以直接去对应尺寸的箱子里找。MySQL 自从三年前发布 MySQL 8.0 以来就有了直方图功能,但该功能却并没有像索引那样广为人知。与索引不同,使用直方图插入、更新或删除记录都不会产生额外开销。而如果更新索引,就必须更新 ANALYZE TABLE 命令。当数据变动不大并且频繁更改数据会降低效率时,直方图是一种很好的方法。

选择索引还是直方图?

对需要直接访问的且具备唯一性的数据项目使用索引。虽然修改、删除和插入操作会产生额外开销,但如果数据架构正确,索引就可以方便你快速访问。对不经常更新的数据则建议使用直方图,例如过去十几年的季度结果。

结语

本文源于最近在 Open Source 101 会议 上的一次报告。报告的演示文稿源自 PHP UK Conferenc 的研讨会。查询调优是一个复杂的话题,每次我就索引和直方图作报告时,我都会找到新的可改进点。但是每次报告反馈也表明很多软件界中的人并不精通索引,并且时常使用错误。我想直方图大概由于出现时间较短,还没有出现像索引这种使用错误的情况。


via: https://opensource.com/article/21/5/mysql-query-tuning

作者:Dave Stokes 选题:lujun9972 译者:unigeorge 校对:wxy

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

如果你想测试高度不稳定的 GNOME Web 浏览器的前沿功能,Canary 版本就是为了这个。

Epiphany(或称 GNOME Web)是一个 Linux 发行版上精简而功能强大的浏览器,你会发现它也是 elementary OS 的默认浏览器。

随同 GNOME 40 发布的 Epiphany 浏览器有一些 改进和新增功能

而在幕后,经常有许多令人兴奋的提升和新增特性。因此,你可以选择为早期测试人员量身定制的 GNOME Web 技术预览版。

现在,它发布了一个新的 Canary 版本,你可以使用它来测试甚至在技术预览版中都没有的特性。

GNOME Web Canary 版本

GNOME Web 的 Canary 版本允许你测试甚至没有出现在最新 WebKitGTK 版本中的特性。

注意 Canary 版本应该是极其不稳定的,甚至稳定性比开发者技术预览版更差。

可是,使用 Canary 版本,终端用户可以在开发过程中的早期进行测试,帮助开发者发现灾难性 bug。

不只是终端用户的早期测试,Canary 版本还让 GNOME Web 的开发者的工作更轻松。

他们不再需要为了实现和测试一个新特性,来单独构建 WebKitGTK。

尽管开发者有一个 Flatpak SDK 可以简化开发人员的流程,但是这仍然是一项耗时的任务。

现在,没有了这个阻碍,开发速度也有可能提升。

怎样获得 Canary 版本?

首先,你需要使用以下命令添加 WebKit SDK Flatpak 远端仓库:

flatpak --user remote-add --if-not-exists webkit https://software.igalia.com/flatpak-refs/webkit-sdk.flatpakrepo
flatpak --user install https://nightly.gnome.org/repo/appstream/org.gnome.Epiphany.Canary.flatpakref

完成后,你就可以使用提供的 Flatpakref 文件 安装啦!

测试 Canary 版本可以让更多的用户能够在此过程中帮助 GNOME Web 的开发人员。所以,这绝对是改进 GNOME Web 浏览器开发的急需补充。

更多技术细节,你可能需要看这位开发者发布的 公告


via: https://news.itsfoss.com/gnome-web-canary/

作者:Ankush Das 选题:lujun9972 译者:zd200572 校对:wxy

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

IBM PC 40 岁了

虽然 IBM PC 并不是最早的个人计算机,但是在 1981 年推出的 IBM PC 以及所加载的 PC DOS,也是个人计算机史上的重要里程碑。IBM PC 采用了开放的架构,使用了现成的硬件和软件:英特尔的 8088 CPU 和微软的 PC DOS,微软还提供了 ROM 里面的 BASIC。IBM PC 的第一个型号是 IBM 5150 型,起价 1565 美元。CPU 为 4.77MHz 的 8088;内存有 16Kb,可扩充至 256Kb;单色或 16 色 CGA 显卡;存储为两个 5.25 英寸软驱,可选配磁带机,但不支持硬盘。它于 1987 年停产。

当年 IBM PC 如今看起来可笑的配置,可正是它们开创了个人计算时代。

Steam Deck 操作系统基于 Arch Linux

之前我们报道过,Valve 发布了 Steam Deck 掌机。它的操作系统是基于定制的 Linux 发行版的 SteamOS。但是将在 Steam Deck 中搭载的操作系统 SteamOS 3.0 放弃了之前所基于 Debian,而是转向 Arch Linux。Valve 称:“之所以将 SteamOS 3.0 切换到 Arch 底层,就是为了追求更快速的开发。尤其考虑到 Valve 需要进行大量更新、改动、以及自定义,才能在 Steam Deck 上提供最佳的游戏体验”。而 Debian 相比 Arch Linux 则更追求稳定,对新硬件和特性的支持没有那么积极。

说实话,这还是挺令人感到意外的,个人不看好这个选择。

加密挖矿木马改变 CPU 设置以提高采矿性能

安全研究人员发现了一种 Golang 编写的恶意软件,它不仅劫持了基于 Linux/Unix 的服务器,并利用它们来挖掘加密货币,而且修改了它们的 CPU 配置,以提高挖矿性能,并以牺牲其他应用程序的性能为代价。在获得系统的访问权后,它会禁用硬件预取器。预取器可以提高各种任务的性能。然而,禁用它可以使挖矿软件的挖矿性能提高 15%,但会降低合法应用程序的性能。该僵尸网络至少从 2020 年 12 月开始运行,目标是利用 MySQL、Tomcat、Oracle WebLogic 和 Jenkins 中的漏洞。

这是典型的“鹊巢鸠占”啊。