2021年6月

升级你的电脑硬件来提升性能,以获得最大的回报。

 title=

在我的文章《使用开源工具识别 Linux 性能瓶颈》中,我解释了一些使用开源的图形用户界面(GUI)工具监测 Linux 性能的简单方法。我的重点是识别 性能瓶颈,即硬件资源达到极限并阻碍你的 PC 性能的情况。

你会如何解决性能瓶颈问题呢?你可以调整应用程序或系统软件。或者你可以运行更高效的应用程序。你甚至可以改变你使用电脑的行为,例如,将后台程序安排在非工作时间。

你也可以通过硬件升级来提高电脑的性能。本文重点介绍可以给你带来最大回报的升级。

开源工具是关键。GUI 工具可以帮助你监控你的系统,预测哪些硬件改进会有效。否则,你可能买了硬件后发现它并没有提高性能。在升级之后,这些工具也有助于验证升级是否产生了你预期的好处。

这篇文章概述了一种简单的 PC 硬件升级的方法,其“秘诀”是开源的 GUI 工具。

如何升级内存

几年前,升级内存是不用多想的。增加内存几乎总是能提高性能。

今天,情况不再是这样了。个人电脑配备了更多的内存,而且 Linux 能非常有效地使用它。如果你购买了系统用不完的内存,就浪费了钱。

因此,你要花一些时间来监测你的电脑,看看内存升级是否会有助于提升它的性能。例如,在你进行典型的一天工作时观察内存的使用情况。而且一定要检查在内存密集型工作负载中发生了什么。

各种各样的开源工具可以帮助你进行这种监测,不过我用的是 GNOME 系统监视器。它在大多数 Linux 软件库中都有。

当你启动系统监视器时,它的“资源”面板会显示这样的输出:

 title=

图 1. 用 GNOME 系统监视器监控内存 (Howard Fosdick, CC BY-SA 4.0)

屏幕中间显示了内存的使用情况。交换空间 是 Linux 在内存不足时使用的磁盘空间。Linux 通过使用交换空间作为内存的一个较慢的扩展来有效地增加内存。

由于交换空间比内存慢,如果内存交换活动变得显著,增加内存将改善你的计算机的性能。你会得到多大的改善取决于交换活动的数量和交换空间所在的设备的速度。

如果使用了大量的交换空间,你通过增加内存会得到比只使用了少量交换空间更多的性能改善。

如果交换空间位于慢速的机械硬盘上,你会发现增加内存比将交换空间放在最快的固态硬盘上改善更多。

下面是一个关于何时增加内存的例子。这台电脑在内存利用率达到 80% 后显示交换活动在增加。当内存利用率超过 90% 时,它就变得失去反应了。

 title=

图 2. 内存升级会有帮助(Howard Fosdick, CC BY-SA 4.0)

如何进行内存升级

在升级之前,你需要确定你有多少个内存插槽,有多少个是空的,它们需要什么样的内存条,以及你的主板所允许的最大内存。

你可以阅读你的计算机的文档来获得这些答案。或者,你可以直接输入这些 Linux 命令行:

问题命令
已安装的内存条有什么特点?sudo lshw -short -C memory
这台计算机允许的最大内存是多少?`sudo dmidecode -t memorygrep -i max`
有多少个内存插槽是空的?(没有输出意味着没有可用的)`sudo lshw -short -C memorygrep -i empty`

与所有的硬件升级一样,事先拔掉计算机的电源插头。在你接触硬件之前,将自己接地 —— 即使是最微小的电涌也会损坏电路。将内存条完全插入主板的插槽中。

升级后,启动系统监视器。运行之前使你的内存超载的相同程序。

系统监控器应该显示出你扩充的内存,而且你应该发现性能更好了。

如何升级存储

我们正处在一个存储快速改进的时代。即使是只用了几年的计算机也可以从磁盘升级中受益。但首先,你要确保升级对你的计算机和工作负载是有意义的。

首先,要找出你有什么磁盘。许多开源工具会告诉你。HardinfoGNOME 磁盘 是不错的选择,因为它们都是广泛可用的,而且它们的输出很容易理解。这些应用程序会告诉你磁盘的品牌、型号和其他细节。

接下来,通过基准测试来确定你的磁盘性能。GNOME 磁盘让这一切变得简单。只要启动该工具并点击它的“磁盘基准测试”选项。这会给出你磁盘的读写率和平均磁盘访问时间。

 title=

图 3. GNOME 磁盘基准输出(Howard Fosdick, CC BY-SA 4.0)

有了这些信息,你可以在 PassMark SoftwareUserBenchmark 等基准测试网站上将你的磁盘与其他人进行比较。这些网站提供性能统计、速度排名,甚至价格和性能数字。你可以了解到你的磁盘与可能的替代品相比的情况。

下面是你可以在 UserBenchmark 找到的一些详细磁盘信息的例子。

 title=

图 4. 在 UserBenchmark 进行的磁盘比较

监测磁盘利用率

就像你对内存所做的那样,实时监控你的磁盘,看看更换磁盘是否会提高性能。atop 命令行 会告诉你一个磁盘的繁忙程度。

在它下面的输出中,你可以看到设备 sdbbusy 101%。其中一个处理器有 85% 的时间在等待该磁盘进行工作(cpu001 w 85%)。

 title=

图 5. atop 命令显示磁盘利用率(Howard Fosdick, CC BY-SA 4.0

很明显,你可以用一个更快的磁盘来提高性能。

你也会想知道是哪个程序使用了磁盘。只要启动系统监视器并点击其“进程”标签。

现在你知道了你的磁盘有多忙,以及哪些程序在使用它,所以你可以做出一个有根据的判断,是否值得花钱买一个更快的磁盘。

购买磁盘

购买新的内置磁盘时,你会遇到三种主流技术:

  • 机械硬盘(HDD)
  • SATA 接口的固态硬盘(SSD)
  • PCIe 接口的 NVMe 固态磁盘(NVMe SSD)

它们的速度差异是什么?你会在网上看到各种不同的数字。这里有一个典型的例子。

 title=

图 6. 内部磁盘技术的相对速度(Unihost

  • 红色柱形图: 机械硬盘提供最便宜的大容量存储。但就性能而言,它们是迄今为止最慢的。
  • 绿色柱形图: 固态硬盘比机械硬盘快。但如果固态硬盘使用 SATA 接口,就会限制其性能。这是因为 SATA 接口是十多年前为机械硬盘设计的。
  • 蓝色柱形图: 最快的内置磁盘技术是新的 PCIe 接口的 NVMe 固态盘。这些可以比 SATA 连接的固态硬盘大约快 5 倍,比机械硬盘快 20 倍。

对于外置 SSD,你会发现 最新的雷电接口和 USB 接口 是最快的。

如何安装一个内置磁盘

在购买任何磁盘之前,请确认你的计算机支持必要的物理接口。

例如,许多 NVMe 固态硬盘使用流行的新 M.2(2280)外形尺寸。这需要一个量身定做的主板插槽、一个 PCIe 适配器卡,或一个外部 USB 适配器。你的选择可能会影响你的新磁盘的性能。

在安装新磁盘之前,一定要备份你的数据和操作系统。然后把它们复制到新磁盘上。像 Clonezilla、Mondo Rescue 或 GParted 这样的开源 工具 可以完成这项工作。或者你可以使用 Linux 命令行,如 ddcp

请确保在最有影响的情况下使用你的快速新磁盘。把它用作启动盘、存储操作系统和应用程序、交换空间,以及最常处理的数据。

升级之后,运行 GNOME 磁盘来测试你的新磁盘。这可以帮助你验证你是否得到了预期的性能提升。你可以用 atop 命令来验证实时运行。

如何升级 USB 端口

与磁盘存储一样,USB 的性能在过去几年中也有了长足的进步。许多只用了几年的计算机只需增加一个廉价的 USB 端口卡就能获得很大的性能提升。

这种升级是否值得,取决于你使用端口的频率。很少使用它们,如果它们很慢也没有关系。经常使用它们,升级可能真的会影响你的工作。

下面是不同端口标准的最大 USB 数据速率的巨大差异。

 title=

图 7. USB 速度差别很大(Howard Fosdick,CC BY-SA 4.0,基于 Tripplite维基 的数据

要查看你得到的实际 USB 速度,请启动 GNOME 磁盘。GNOME 磁盘可以对 USB 连接的设备进行基准测试,就像对内部磁盘一样。选择其“磁盘基准测试”选项。

你插入的设备和 USB 端口共同决定了你将得到的速度。如果端口和设备不匹配,你将体验到两者中较慢的速度。

例如,将一个支持 USB 3.1 速度的设备连接到一个 2.0 端口,你将得到 2.0 的数据速率。你的系统不会告诉你这一点,除非你用 GNOME 磁盘这样的工具来检查)。反之,将 2.0 设备连接到 3.1 端口,你也会得到 2.0 的速度。因此,为了获得最好的结果,总是要匹配你的端口和设备的速度。

要实时监控 USB 连接的设备,请使用 atop 命令和系统监控器,就像你监控内部磁盘一样。这可以帮助你看到是否碰到了当前设置的限制,并可以通过升级而受益。

升级你的端口很容易。只要购买一个适合你的空闲的 PCIe 插槽的 USB 卡。

USB 3.0 卡的价格只有 25 美元左右。较新、较贵的卡提供 USB 3.1 和 3.2 端口。几乎所有的 USB 卡都是即插即用的,所以 Linux 会自动识别它们。但在购买前一定要核实。

请确保在升级后运行 GNOME 磁盘以验证新的速度。

如何升级你的互联网连接

升级你的互联网带宽很容易。只要给你的 ISP 写一张支票即可。

问题是,应该升级吗?

系统监控器显示了你的带宽使用情况(见图 1)。如果你经常遇到你从 ISP 购买的带宽限额,你会从购买更高的限额中受益。

但首先,要确认你是否有一个可以自己解决的问题。我见过很多案例,有人认为他们需要从 ISP 那里购买更多的带宽,而实际上他们只是有一个可以自己解决的连接问题。

首先在 SpeedtestFast.com 等网站测试你的最大网速。为了获得准确的结果,关闭所有程序,只运行速度测试;关闭你的虚拟私有网络;在一天中的不同时间运行测试;并比较几个测试网站的结果。如果你使用 WiFi,在有 WiFi 和没有 WiFi 的情况下进行测试(将你的笔记本电脑直接与调制解调器连接)。

如果你有一个单独的路由器,在有它和没有它的情况下进行测试。这将告诉你路由器是否是瓶颈。有时,只是重新定位你家里的路由器或更新其固件就能提高连接速度。

这些测试将验证你是否得到了你从 ISP 购买的带宽速度。它们也会暴露出任何你可以自己解决的本地 WiFi 或路由器问题。

只有在你做了这些测试之后,你才应该得出结论,你需要购买更多的网络带宽。

你应该升级你的 CPU 还是 GPU?

升级你的 CPU(中央处理单元)或 GPU(图形处理单元)呢?

笔记本电脑用户通常不能升级这两个单元,因为它们被焊接在主板上。

大多数台式机主板支持一系列的 CPU,并且是可以升级的 —— 假设你还没有使用该系列中最顶级的处理器。

使用系统监视器观察你的 CPU,并确定升级是否有帮助。它的“资源”面板将显示你的 CPU 负载。如果你的所有逻辑处理器始终保持在 80% 或 90% 以上,你可以从更多的 CPU 功率中受益。

这是一个升级 CPU 的有趣项目。只要小心谨慎,任何人都可以做到这一点。

不幸的是,这几乎没有成本效益。大多数卖家对单个 CPU 芯片收取溢价,比他们卖给你的新系统要高。因此,对许多人来说,升级 CPU 并不具有经济意义。

如果你将显示器直接插入台式机的主板,你可能会通过升级图形处理器而受益。只需添加一块显卡。

诀窍是在新显卡和你的 CPU 之间实现平衡的工作负荷。这个 在线工具 能准确识别哪些显卡能与你的 CPU 最好地配合。这篇文章 详细解释了如何去升级你的图形处理。

在升级前收集数据

个人电脑用户有时会根据直觉来升级他们的 Linux 硬件。一个更好的方法是先监控性能并收集一些数据。开源的 GUI 工具使之变得简单。它们有助于预测硬件升级是否值得你花时间和金钱。然后,在你升级之后,你可以用它们来验证你的改变是否达到了预期效果。

这些是最常见的硬件升级。只要稍加努力并使用正确的开源工具,任何 Linux 用户都可以经济有效地升级一台 PC。


via: https://opensource.com/article/21/4/upgrade-linux-hardware

作者:Howard Fosdick 选题:lujun9972 译者:wxy 校对:wxy

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

Lotus Notes 表示还可以抢救一把

HCL 发布了群件服务器 Domino 12,并在一个视频中宣称,“Notes 和 Domino 已经转型了”。这个 2018 年被 HCL 从 IBM 收购过来的群件软件,现在是一个云原生、低代码的产品,并提供了一个可行的 Exchange 替代品。如今,低调发布的 Domino 应用程序可以在浏览器中运行,也提供了低代码开发环境。Domino 可以运行在包括 AWS、Azure 和 Google 等云环境中,甚至还可运行在 Kubernetes 和 OpenShift 上。

我都以为只在一些大型企业内使用的 Lotus Notes 已经被淘汰了呢,没想到居然还与时俱进了。

调查显示在 RHEL 上部署 SQL Server 很流行

2020 年底,红帽委托对 SQL Server 专业协会的 300 多名成员进行了调研,其中 54% 的受访者拥有数据库管理员的头衔。结果显示:31% 受访者在他们的站点上至少运行了一个 Linux 操作系统;12% 的表示他们正在 RHEL 上运行 SQL Server;采用 Linux 作为 SQL Server 平台的人数预计将在未来两年内增加两倍以上。

虽然微软发布 Linux 版的 SQL Server 已经有一段时间了,但是我没想到还真有不少用户在 Linux 上使用它。

即使 iPhone 被关机或擦除,iOS 15 仍然可以定位它

在 iOS 15 之前,iPhone 关机后并不能通过“查找我的网络”找到它,而在新发布的 iOS 15 中,即使 iPhone 关机甚至被擦除,仍然可以定位到它的位置。在 iOS 15 中,手机并没有真正完全“断电”,它一直处于低功耗状态,就像一个 AirTag,允许任何附近的 iOS 设备接收蓝牙信号并发送回其位置。当然,这种行为可以关闭。

此外,当手机被重置为启用激活锁的出厂设置时,位置追踪甚至会继续工作。如果丢失的 iPhone 被卖给别人,欢迎屏幕将清楚地显示“设备被锁定,可被定位。”

关机的 iPhone 可能仍然在“偷偷”工作着……

随着 openSUSE 15.3 的发布,与 SUSE Linux 企业版的差距终于缩小了。对于开发团队来说,这应该是一个令人兴奋的用于测试的更新。

去年,在 openSUSE Leap 15.2 发行版 中他们希望通过使用与企业版相同二进制软件包来构建 openSUSE Leap,从而缩小 openSUSE Leap 与 SUSE Linux 企业版之间的差距。

这样一来的话,如果有人在使用 openSUSE 测试后切换到 SUSE Linux 企业版,部署的迁移过程都将大大简化。此外,openSUSE Leap 将是开发团队进行测试的一个轻松选择。

随着 openSUSE Leap 15.3 的发布,这个构想成为了现实。本文我将重点介绍这次发布的主要变化。

openSUSE Leap 15.3: 最新变化

最重要的变化是,它使用与 SUSE Linux 企业版相同的二进制软件包构建。

并且,发布公告 中提到了这一巨大变化的好处:

此版本对于迁移项目和用户验收测试非常有益,使用 openSUSE leap 15.3 进行运行调优和测试工作负载的大型开发团队将会获得最大的好处,因为这些工作负载可以轻松提升并转移到 SUSE Linux 企业版 15 SP3 上进行长期维护。

除了这个巨大的变化,还有其他几个重要的变化使它成为一个令人激动的版本。

对于 Xfce 4.16 桌面,有一些视觉变化,包括新的图标和调色板。设置管理器还增加了一个视觉刷新功能,提供了更清晰的外观。

如果有需要,KDE Plasma 5.18 也可以作为 LTS 选项与此版本一起提供。而且,GNOME 3.34 在某些应用程序的外观和感觉上有一些细微的变化。虽然 Cinnamon 没有大的变化,但是你会发现它有了一个新的模式。

在这个版本中,你将发现 gnu health 3.8 添加了一些新特性供你探索。

DNF 包管理器有一个更新计划,但是当前没有释放出来,你可以通过后续的维护更新获得它。

IBM Z 和 LinuxONE(s390x)是 Leap 15.3 中新支持的两种架构。

所包含的容器技术仍然保持不变,但是它们在本版本中收到了安全更新。当然,你需要去找 Linode 等托管解决方案提供的最新云镜像。

几个应用程序升级包括 Ononishare 2.2、Chromium 89 等。你可以在 官方特性列表 中找到更多详细信息。

下载 openSUSE Leap 15.3

需要注意的是,从今天起,Leap 15.2 将有六个月的寿命(EOL)。

在尝试升级到 Leap 15.3 之前,你必须确保运行的是 Leap 15.2。你可以在他们的 官方发行说明 中找到有关升级过程的更多信息。

从下面的按钮链接的官方下载页面获取最新的 ISO。


via: https://news.itsfoss.com/opensuse-leap-15-3-release/

作者:Ankush Das 选题:lujun9972 译者:Chao-zhi 校对:wxy

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

LWN.net 发布的 Linux 内核报告中,常年可以看到一个贡献者 —— “Yue Hai Bing”,自 2018 年底以来,TA 对每个版本都会贡献大量的补丁,帮助 Linux 内核不断迭代。为了找到这个来自华为的优秀贡献者,我开始找到朋友圈的华为同学,了解相关信息。每次提到 “Yue Haibing” ,大家都是神秘的一笑,就不再说话。

这让我更加好奇,到底是谁,能如此频繁的在 Linux 内核中贡献,又从未在各种会议聚会中见到 TA?这让我产生了极大的好奇心。直到 openEuler 的问世,我们和 openEuler 社区的合作渐渐变多,终于知道,原来 Yue HaiBing 背后,竟然是华为的自动内核缺陷发现机器人 HULK Robot!正是 HULK Robot 完成了如此高频且优质的内核代码贡献。没想到,我以为的大神,背后竟然是一个机器人!

而为了能够了解到更多关于 HULK Robot 的信息,我采访了 HULK Robot 的架构师 —— 魏勇军先生,和魏勇军先生聊了聊关于 HULK Robot 的故事。

魏勇军(左)接受老王(右)的专访

HULK Robot 的由来

提及 HULK Robot 的诞生,魏勇军提到,其实 HULK Robot 很早便已经在社区应用。在 2017 年的时候,HULK Robot 的前身已经进入到 Linux 内核社区当中,发挥自己的作用。

在当时,HULK Robot 以 “Wei Yongjun” 这个身份,在 Linux 内核社区中贡献代码,提交代码修复补丁。“Wei Yongjun” 提交代码的频率之高,质量之优,让 Linux 内核的核心维护者 Greg Kroah-Hartman 都为之惊叹。在 2017 年北京举办的首次 LC3 大会上,Greg Kroah-Hartman 还专门提到了“Wei Yongjun”。

而来自社区的积极反馈,让魏勇军意识到,这个机器人对 Linux 内核社区是有价值的,可以帮助 Linux 内核越变越好。那为什么不让这个事情更进一步呢?

于是,HULK Robot 正式立项了。

但,说起来容易做起来难。HULK Robot 想要给 Linux 内核贡献代码、提供补丁,却绝非易事。但魏勇军找到了思路。华为多年来虽然在做自己的服务器操作系统,但始终坚持“上游优先”,积累了大量的 Linux 内核维护经验,HULK Robot 可以通过整理过去的华为开发者的经验、测试用例,并将这些进行对比验证,确保这些修改是正确的、有价值的,再将其迁移至 HULK Robot 中,让机器人自动进行更多代码的扫描。

而随着华为对于 Linux 内核的不断进行代码贡献,终于,HULK Robot 成为了一个拥有丰富的测试集和探测能力的机器人。

HULK Robot 如何提交代码?

HULK Robot 随着不断的发展,能够为社区贡献更多的代码,从 Linux 内核的统计报告来看,从 Linux 5.1 开始,一直到最新的 5.10、5.12 ,HULK Robot 的提交能力在逐渐变强,为社区贡献的代码也越来越多, 已经在内核社区历史 Reported-By 榜单排名 TOP2。

魏勇军说,HULK Robot 背后是一套非常复杂的分布式系统。其本质上是一个海量的测试集与一系列先进的自动化测试、问题检测的手段。HULK Robot 和别的 Linux 内核测试机器人不同的是华为因为开发 openEuler 发行版,在内核的维护上付出了不少的时间和精力,拥有丰富的经验,也因此可以在其中贡献更多的代码。

对于魏勇军来说,HULK Robot 如今的重点已经远不是准备更多的测试集,而是要进一步的优化整个内核检测的流程。目前每次版本变更 HULK Robot 都需要跑一次完整的测试集,费时费力,他希望可以让 HULK Robot 可以更加的智能,当代码更改之后,只检测牵涉到相应功能的测试集,而不是测试庞大的全部测试集。此外,加入更多的 DevOps 能力,让更多的人可以参与到 HULK Robot 的开发工作中,更好的为内核贡献代码。这些修改,都可以让 HULK Robot 可以更好的为整个社区提供贡献,更加高效的贡献代码。

也正因为 HULK Robot ,让整个社区可以拥有一个更加稳健和安全的操作系统,整个社区都因 HULK Robot 受益。

社区、开源、机器人

其实一直以来,机器人的应用在开源项目的维护当中是广泛应用的,但对于开源项目本身的维护,一直以来机器人参与的都不多,我也借此机会与魏勇军交流了想法。

魏勇军表示,Linux 内核的维护风格是非常社区化的,社区的维护者默认信任每一个提交贡献者都是为了社区的长期发展而贡献代码,因此,社区的维护者并不拒绝机器人参与到内核的维护中。如果对于整个社区的长期发展是有益的、做出了优质的贡献,社区支持更多的自动化机器人参与到贡献当中。

也许在未来, 我们能看到HULK Robot 会开源,让整个社区一起参与到贡献当中,更好的让 Linux 内核得到维护。

用技术赋能社区

一直以来,Linux 社区都因为资深维护者的流失而担忧,担心社区不再有年轻的血液注入,最终失去了活力。

而 HULK Robot 则为这个事情提供了一种新的思路:可以将资深维护者的经验变成固化的代码,从而使得知识得以传承,而 HULK Robot 的自动化运行机制,又为社区提供了源源不断的贡献和补丁,让这个系统成为一个更加好用和安全的系统。从某种角度来看, HULK Robot 解放了 Linux 内核的贡献者,让贡献者们可以更加专心的做更加重要的事情,把这些繁琐复杂的事情,交给机器人来完成,从而降低了对于社区新鲜血液的需求度。

HULK Robot 不仅仅是为上游提供了新鲜的血液,也更是 openEuler 长期发展不可或缺的护道人,正是 HULK Robot 背后的默默无闻的工作,才能让 openEuler 可以更加稳固的运行,为广大开发者提供一个简单、好用、实用的 Linux 发行版。

我们需要新鲜血液么?当然需要,但如果我们能把门槛降低,这不也是一件好事么?


2021 年 6 月 10 日,openEuler 社区将发起一场面向社区开发者的技术盛会 openEuler Developer Day 2021 ,会上将对多样性计算、云原生全栈、全场景协同等技术发展方向进行持续探索和创新;技术委员会、用户委员会、品牌委员会等 20 个 SIG 组同期举办开放工作会议;技术委员会主席将深入解读 openEuler 21.03,发布下个社区版的技术定位并分享社区创新思路;客户、伙伴、厂商、研究机构将在开源圆桌中共同探讨开源软件供应链的意义和风险,开源模式如何推动以及独立演进操作系统的技术发展。

更多活动信息: https://openeuler.org/zh/interaction/summit-list/devday2021/

App Store 上销售额最高的 1000 个应用程序中,有 2% 是骗局

《华盛顿邮报》报道,根据市场研究公司 Appfigures 的数据,这些应用在 App Store 上已经从消费者那里骗取了约 4800 万美元。更重要的是,苹果公司从这些应用程序中获利,抽取了高达 30% 的比例。

长期以来,苹果公司一直坚持认为其只让最好的应用程序进入其系统。但这种垄断实际上会给客户一种虚假的安全感。当涉及到一种类型的骗局时,有证据表明苹果的商店并不比谷歌的更安全。

如果真是这样,声称进行严格审查的苹果商店未必比谷歌商店更安全,反而用户可能在虚假的安全感之下损失更多。

Colonial 管道公司向黑客支付的 230 万美元比特币赎金被追回

美国司法部在一次新闻发布会上说:“通过执法机构,受害者的资金被从钱包中没收,以防止 DarkSide 的人使用它们。” 他们已经缴获了所支付的 75 个比特币赎金中的近 64 个比特币。FBI 特工们确认了 DarkSide 黑客用来从 Colonial 管道公司收钱的一个加密货币钱包,但 拒绝透露具体是如何进入该比特币钱包的,理由是需要对情报技术保密。不过,Colonial 公司在支付赎金时已采取早期措施通知 FBI,并遵循指示,帮助调查人员追踪支付给黑客使用的加密货币钱包。FBI 特工说,即使是 DarkSide 这样的外国网络犯罪分子,在犯罪过程中的某个时刻,也会使用美国的基础设施。一旦他们这样做,就给了 FBI 一个收回资金的合法窗口。

我好奇的是 FBI 是如何拿到该钱包的私钥的。

苹果发布下一代 Mac 桌面操作系统:macOS Monterey

将在今年秋季推出的 macOS Monterey 的最大新功能之一,是能够在 iMac、MacBook 和 iPad 上共享键盘和鼠标。它被称为“通用控制”,这意味着用户可以直接在设备之间拖放文件。除此之外,macOS Monterey 将使 iPad 或 iPhone 上的视频、音频、文件和其他项目可以直接 AirPlay 到 Mac 上。

这似乎和前两天华为鸿蒙推出的概念类似。

探索只接受位置参数和其他两个未被充分利用但仍然有用的 Python 特性。

 title=

这是 Python 3.x 首发特性系列文章的第九篇。Python 3.8 于 2019 年首次发布,两年后,它的许多很酷的新特性仍然没有被使用。下面是其中的三个。

importlib.metadata

入口点 在 Python 包中被用来做各种事情。大多数人熟悉的是 console\_scripts 入口点,不过 Python 中的许多插件系统都使用它们。

在 Python 3.8 之前,从 Python 中读取入口点的最好方法是使用 pkg_resources,这是一个有点笨重的模块,它是 setuptools 的一部分。

新的 importlib.metadata 是一个内置模块,它允许访问同样的东西:

from importlib import metadata as importlib_metadata

distribution = importlib_metadata.distribution("numpy")
distribution.entry_points
    [EntryPoint(name='f2py', value='numpy.f2py.f2py2e:main', group='console_scripts'),
     EntryPoint(name='f2py3', value='numpy.f2py.f2py2e:main', group='console_scripts'),
     EntryPoint(name='f2py3.9', value='numpy.f2py.f2py2e:main', group='console_scripts')]

入口点并不是 importlib.metadata 允许访问的唯一东西。可以调试、报告,或者(在极端情况下)触发兼容模式,你也可以在运行时检查依赖的版本!

f"{distribution.metadata['name']}=={distribution.version}"`[/code] [code]`    'numpy==1.20.1'

只接受位置参数

强制关键字的参数在传达 API 作者的意图方面取得巨大成功之后,另一个空白被填补了:只接受位置参数。

特别是对于那些允许使用任意关键字的函数(例如,生成数据结构),这意味着对允许的参数名称的限制更少:

def some_func(prefix, /, **kwargs):
    print(prefix, kwargs)
some_func("a_prefix", prefix="prefix keyword value")
   a_prefix {'prefix': 'prefix keyword value'}`

注意,令人困惑的是,变量 prefix 的值与 kwargs["prefix"] 的值不同。就像在很多地方一样,要注意小心使用这个功能。

自我调试表达式

50 多年来,print() 语句(及其在其他语言中的对应语句)一直是快速调试输出的最爱。

但是我们在打印语句方面取得了很大的进展,比如:

special_number = 5
print("special_number = %s" % special_number)
    special_number = 5

然而,自我记录的 f-strings 使它更容易明确:

print(f"{special_number=}")
    special_number=5`

在 f-string 插值部分的末尾添加一个 =,可以保留字面部分,同时添加数值。

当更复杂的表达式在该部分内时,这就更有用了:

values = {}
print(f"{values.get('something', 'default')=}")
    values.get('something', 'default')='default'

欢迎来到 2019 年

Python 3.8 大约在两年前发布,它的一些新特性非常酷,而且没有得到充分利用。如果你还没使用,那么将他们添加到你的工具箱中。


via: https://opensource.com/article/21/5/python-38-features

作者:Moshe Zadka 选题:lujun9972 译者:geekpi 校对:wxy

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