Kuro：非官方的微软 To-Do Linux 桌面客户端

![](/data/attachment/album/202207/05/151405wsp6k55rrzdkk6dl.jpg)

>
> 微软说他们热爱 Linux 和开源，但我们仍然没有得到对其许多产品的 Linux 原生支持。
>
>
>

虽然他们可能在努力增加更多的支持，比如 [可以在 Linux 上安装微软 Edge 浏览器](https://itsfoss.com/microsoft-edge-linux/)，但对于一个价值几万亿美元的公司来说，这并不出色。

同样，微软的 To-Do 服务也是一个受欢迎的服务，它取代了 2020 年关闭的 Wunderlist。

如果你不知道的话，我们有很多 [可用于 Linux 的待办事项列表应用](https://itsfoss.com/to-do-list-apps-linux/)。因此，如果你想脱离微软 To-Do，你有选择。

微软 To-Do 是一个基于云的任务管理应用，让你从手机、桌面和网络组织你的任务。它可以在 Windows、Mac 和 Android 上下载。

那么，如果你不愿意使用网页浏览器而使用一个单独的应用，你在 Linux 上能做什么呢？

Kuro 派上用场了。

### Kuro：非官方的开源微软 To-Do 应用

![kuro todo](/data/attachment/album/202207/05/151406gcoh2ylukkolyx2q.png)

Kuro 是一个非官方的开源应用，它为你提供了微软 To-Do 在 Linux 上的桌面体验和一些额外的功能。

它是 Ao 的一个分叉，Ao 是一个开源项目，逐渐成为它的解决方案。不幸的是，它不再积极维护了。所以，我遇到了一个似乎可以工作的新复刻。

![kuro todo options](/data/attachment/album/202207/05/151407jnneyvldnx83ddot.png)

Kuro 提供了一些额外的功能，可以让你在应用中切换主题，启用全局快捷方式等。

请注意，这个应用是相当新的，但有一个稳定版本可以试用。此外，开发者计划在不久的将来增加更多的主题和功能。

### Kuro 的功能

![kuro todo 1](/data/attachment/album/202207/05/151407ra7kufycug7oc7cg.png)

如果你倾向于使用微软的服务（如 Outlook），它的 To-Do 应用应该是组织你的任务的一个完美选择。你甚至可以标记电子邮件以创建任务。

使用 Kuro 桌面客户端，你可以得到一些可配置的功能，包括：

* 能够在启动时启动该程序。
* 获得一个系统托盘图标，以快速创建一个任务，搜索，或检查当天的可用列表。
* 启用全局快捷键。
* 切换可用的主题（深褐色、德古拉、黑色、深色）。
* 切换自动夜间模式，如果你不想不断改变主题。
* 隐藏托盘图标，如果你不需要它。
* 根据需要定制字体大小。

![kuro todo settings](/data/attachment/album/202207/05/151407cwz8r1rpibwar868.png)

除了一些功能外，你还可以进入某些设置来启用/禁用电子邮件通知、删除前确认等，对待办事项应用体验的进行更多的控制。

总的来说，体验并不糟糕，但我在几分钟内注意到用户界面上有一些奇怪的图形问题。我不确定这是否是一个已知的问题。

### 在 Linux 中安装 Kuro

你可以从它的 [GitHub 发布页面](https://github.com/davidsmorais/kuro/releases) 找到基于 Ubuntu 的发行版的 .deb 包。

此外，你可以从 [Snap 商店](https://snapcraft.io/kuro-desktop) 中在你选择的任何 Linux 发行版上安装它。该软件包也可在 Arch Linux 发行版的 [AUR](https://itsfoss.com/aur-arch-linux/) 中获取。

开发者还提到，正在开发一个 Flatpak 软件包。所以，你可以关注它的 [GitHub 页面](https://github.com/davidsmorais/kuro)以了解更多相关信息。

>
> **[Kuro](https://github.com/davidsmorais/kuro)**
>
>
>

你已经试过它了吗？你知道有什么更好的微软 To-Do 客户端用于 Linux 吗？请在下面的评论中告诉我。

---

via: <https://itsfoss.com/kuro-to-do-app/>

作者：[Ankush Das](https://itsfoss.com/author/ankush/) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #688 Debian Linux 9 结束了五年的长期支持

Summary: • Debian Linux 9 结束了五年的长期支持 • 传统数据安全工具大多无法抵御勒索软件攻击 • 西数表示硬盘容量依然很重要

![](/data/attachment/album/202207/05/172218xe92211h1u9eqa11.jpg)

![](/data/attachment/album/202207/05/172227n8yf4hdxys6wffo6.jpg)

### Debian Linux 9 结束了五年的长期支持

Debian 长期支持团队近日宣布：Debian Linux 9 系列的五年支持周期已经结束。Debian 9 发布于 2017 年 6 月 17 日，当时官方将该版本的 LTS 支持延长到了五年，以供有特定需要的人们使用。Debian Linux 10 是目前支持的旧稳定版本，还有两年维护支持，直到 2024 年 6 月 30 日。而最新的是 Debian Linux 11 。

>
> **[消息来源：Debian](https://lists.debian.org/debian-lts-announce/2022/07/msg00002.html)**
>
>
>

>
> 老王点评：一个纯由社区驱动的发行版都能支持 5 年，并被用在生产环境中，而很多商业公司支持的 Linux 发行版都不敢承诺。
>
>
>

![](/data/attachment/album/202207/05/172255dot3jnn3j1mt9va8.jpg)

### 传统数据安全工具大多无法抵御勒索软件攻击

根据最新发布的《数据渗透和勒索状况报告》，虽然超过 70% 的企业拥有一套现有的预防、检测和回溯解决方案，但近 40% 的企业在过去一年中仍然受到了勒索软件攻击。研究结果表明，传统的数据安全工具，如安全备份和恢复工具、提供静态和传输中加密的解决方案、标记化和数据屏蔽等，在 60% 的时间里未能保护企业的数据免受勒索软件威胁。它们的问题不在于它们没有强大的安全措施，而在于攻击者可以通过窃取凭证来实现对关键数据资产的特权访问，从而避开这些控制。

>
> **[消息来源：Venture Beat](https://venturebeat.com/2022/06/30/data-security-ransomware/)**
>
>
>

>
> 老王点评：可以预见，数据勒索这一攻击方式必然会愈演愈烈。
>
>
>

![](/data/attachment/album/202207/05/172309itklgltgnmlsknmf.jpg)

### 西数表示硬盘容量依然很重要

西数负责人在采访中谈到了对硬盘市场的看法，他也承认机械硬盘现在没有被出现在 MacBook、Windows 或者 Chromebook 等设备中，在客户端设备中存在感下降，但是放眼数据中心市场，情况就不一样了。在这个领域，闪存存储只占 5-15% 份额，剩余的 85%-95% 存储都是靠机械硬盘，还有一些是磁带设备。IDC 预测全球数据生产量从 2018 年的 33ZB 将增长到 2025 年的 176ZB，企业用户每年的数据容量增长将达到 30%。

>
> **[消息来源：Next Platform](https://www.nextplatform.com/2022/07/01/hard-drives-are-the-mark-twain-of-technology/)**
>
>
>

>
> 老王点评：确实，要说可靠性和大容量，还是机械硬盘比较好。但是感觉硬盘容量的增长赶不上数据量的增长速度。
>
>
>


有了扩展，GNOME Web 正逐渐成为 Linux 桌面上一个有吸引力的选择

Summary: GNOME Web 正在打磨成一个完美的 Linux 浏览器。你认同吗？

GNOME Web 正在打磨成一个完美的 Linux 浏览器。你认同吗？

>
> GNOME Web 正在打磨成一个完美的 Linux 浏览器。你认同吗？
>
>
>

![Gnome Web 浏览器](/data/attachment/album/202207/06/131817m7v3q1lfb9v7q40v.jpg)

GNOME Web（Epiphany）是 [可供 Linux 用户使用的最佳浏览器](https://itsfoss.com/best-browsers-ubuntu-linux/) 之一。

它提供了简约且独特的用户体验。

不幸的是，这种独特性并没有激励用户把它作为主力网页浏览器。

但是，看起来这种情况很快就会改变……

根据其中一位开发者（Patrick，网名 TingPing）透露，GNOME Web 终于添加了对 WebExtensions 的支持。

它将会是 GNOME 43 新功能的一部分。

### 带有 WebExtensions 的 GNOME Web

![](/data/attachment/album/202207/06/131818a8otb2wgnq8qrzsh.png)

一个浏览器，外观简约，还支持扩展，夫复何求啊！

我不知道你怎么想，但我对于 GNOME Web 不支持扩展这件事，一直耿耿于怀。

所以，这个消息真的让我很兴奋！

目前，这只是对 **Epiphany 43.alpha** 版本的实验性支持。因此，你只能使用 GNOME Web 的 beta/alpha 构建来测试它。

开发者提到：

>
> Epiphany 43.alpha 支持上述的基本结构。我们目前正在根据 Firefox 的 ManifestV2 API 来建模行为，同时也尽可能与 Chrome 扩展程序保持兼容。未来，我们计划在保留 V2 的同时，支持 ManifestV3。
>
>
>

你必须在终端中显式启用扩展支持，然后下载、添加扩展的 **.xpi** 文件，以安装浏览器扩展。

你需要访问 [Mozilla 的 Firefox 附加组件门户网站](https://addons.mozilla.org/en-US/firefox/extensions/) 来获得扩展程序。

![](/data/attachment/album/202207/06/131819cafck1ttk5p5e3gf.png)

你可以安装 Epiphany（GNOME Web）的最新开发版本，并使用以下命令启用扩展：

```
flatpak remote-add --if-not-exists gnome-nightly https://nightly.gnome.org/gnome-nightly.flatpakrepo
flatpak install gnome-nightly org.gnome.Epiphany.Devel
flatpak run --command=gsettings org.gnome.Epiphany.Devel set org.gnome.Epiphany.web:/org/gnome/epiphany/web/ enable-webextensions true

```

请注意，它仍在活跃开发中，可能无法按预期工作。在第一次尝试时，你可能需要密切关注终端是否有错误，如果有的话，要先解决它才行。

如果你想了解更多技术细节，你可以阅读 [TingPing 的博文](https://blog.tingping.se/2022/06/29/WebExtensions-Epiphany.html)。

### 你的下一个主力浏览器？

与 Linux 上的基于 Firefox 和 Chrome/Chromium 的浏览器相比，GNOME Web 是一个的完全独特的替代品。（LCTT 译注：GNOME Web 基于 WebKit 引擎。）

那么，随着即将推出的扩展支持，你愿意尝试将 GNOME Web 作为你的主力浏览器吗？

*你如何看待 GNOME Web（或 Epiphany）中的改进呢？请在下方评论区中告诉我们吧！*

---

via: <https://news.itsfoss.com/gnome-web-extensions-dev/>

作者：[Ankush Das](https://news.itsfoss.com/author/ankush/) 选题：[lkxed](https://github.com/lkxed) 译者：[lkxed](https://github.com/lkxed) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


星际战机：配备 4K 10 位 IPS 显示屏的 Linux 笔记本电脑即将问世

价格劝退系列？

>
> “星际战机”是星空实验室即将推出的一款 Linux 笔记本电脑。他们正在最后确定生产细节，同时透露了一些关键的亮点。
>
>
>

![starfighter](/data/attachment/album/202207/06/144049yj7mma4ca7m5mz77.jpg)

我们已经有许多来自星空实验室、TUXEDO 等制造商的 Linux 专用笔记本电脑。

然而，其中只有少数几家专注于提供一个超棒的显示屏。

例如，[TUXEDO 的 Infinitybook Pro 14](https://news.itsfoss.com/infinitybook-pro-14-3k/) 带有 3K 显示屏，而且，该笔记本电脑确实不错。

现在，看起来 [星空实验室](http://starlabs.systems) 将为其即将推出的 “星际战机” 笔记本电脑配备 15.6 英寸 4K 显示屏。他们在 [推特](https://twitter.com/starlabsltd/status/1542908391793692672) 上分享了初步信息，提到他们正在敲定生产细节。

### 关于星际战机我们目前所知道的情况

这款笔记本电脑将采用 45W 供电的英特尔 / AMD 处理器，它将有英特尔 / AMD 两种变体可用。

你还将可以选择高达 64GB 的内存和 2TB 的存储。可以说，对于那些想为自己的 Linux 笔记本电脑提高规格的用户来说，这应该是一个强大的机器。

当然，它的关键亮点是显示屏。它将采用 4K 10 位哑光 IPS 显示屏。

该公司提到，该显示屏的成本要高于其 StarLite 笔记本电脑。

但是，这会是一个有吸引力的产品吗？许多采用高分辨率显示屏或 OLED 面板的笔记本电脑在电池时长方面表现不佳。不仅仅是 Linux 笔记本电脑。

那么，“星际战机”会成为该领域的一个有竞争力的竞争者吗？

星空实验室在一条推文中提到，他们估计电池时长约为 8-14 小时，这取决于配置。当然，这也取决于你的使用情况。

该公司还澄清说，这款笔记本电脑可以使用 Coreboot，但它不会是一个完全采用自由软件的项目。其他一些值得注意的地方还有：

* 该笔记本电脑将具有 [LVFS](https://fwupd.org/) 支持。
* 英特尔型号将提供第 4 代固态硬盘。AMD 型号将只限于第 3 代固态硬盘。

如图片所示，它可能安装了 elementaryOS 6.1。然而，你也可以预期它提供 Ubuntu 22.04 LTS。

那么，你对星空实验室的这架“星际战机”有何看法？当它上市时，这将是你的下一台笔记本电脑吗？

在下面的评论区分享你的想法。

---

via: <https://news.itsfoss.com/starfighter-laptop-reveal/>

作者：[Ankush Das](https://news.itsfoss.com/author/ankush/) 选题：[lkxed](https://github.com/lkxed) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


在 Linux 中找到你的路由器的 IP 地址（默认网关）

Summary: 我说的是默认网关 IP，你的 Linux 桌面所连接的地址。

这也能水一篇博文吗？ 你们编辑审核对博文深度没有要求吗？

来自湖北武汉的 Chrome Mobile iOS 103.0|iOS 15.5 用户

真水！

白开水 ~~~

我说的是默认网关 IP，你的 Linux 桌面所连接的地址。

![](/data/attachment/album/202207/06/155222cgjpa9ppa19zr2g1.jpg)

你可能已经知道如何在 Linux 中获得你的系统的 IP 地址。

但是你怎么知道你的路由器的 IP 地址呢？

我说的不是你可以通过连接到 “[Show My IP](https://www.showmyip.com/)” 这样的网站或简单地在 [DuckDuckGo](https://itsfoss.com/duckduckgo-easter-eggs/) 中 [搜索“what is my ip”](https://duckduckgo.com/?q=what+is+my+ip&t=h_&ia=answer) 获得的公网 IP。

我说的是默认网关 IP，你的 Linux 桌面所连接的地址。

你为什么需要它？嗯，如果你需要改变你的 Wi-Fi/网络的 SSID、密码或其他配置，你必须连接到它。简单的方法是在网页浏览器中输入路由器的 IP 地址，然后使用路由器的用户名和密码。

虽然我不能帮助你获得路由器的用户名和密码，但我肯定可以告诉你如何获得它的 IP。

一如既往，我将展示 GUI 和命令行两种方法。

### 方法 1：在 Linux 中使用 GUI 获取路由器的 IP 地址

这其实很简单。我在这里使用的是 Ubuntu 的 GNOME 桌面。如果你使用一些 [其他桌面环境](https://itsfoss.com/best-linux-desktop-environments/)，截图可能会有所不同。

打开“<ruby> 系统设置 <rt>  System Settings </rt></ruby>”：

![go to settings](/data/attachment/album/202207/06/155257xxyx9bb9ag11cch3.jpg)

现在进入 Wi-Fi 或“<ruby> 网络 <rt>  Network </rt></ruby>”（如果你使用的是有线的以太网连接）。在这里，点击你当前使用的网络旁边的小设置符号。

![access network settings ubuntu](/data/attachment/album/202207/06/155258zst8a6ntaarwr6w6.png)

它将打开一个新窗口，里面有关于你的连接的一些细节，如 IP 地址、DNS 和 [Mac 地址](https://itsfoss.com/change-mac-address-linux/)。你还可以在“<ruby> 安全 <rt>  security </rt></ruby>”标签下看到 [保存的 Wi-Fi 密码](https://itsfoss.com/how-to-find-saved-wireless-wifi-passwords-ubuntu/)。

你还会看到一个名为“<ruby> 默认路由 <rt>  Default Route </rt></ruby>”的条目。这就是你要找的东西。你的路由器的 IP 地址。

![default gateway ip ubuntu](/data/attachment/album/202207/06/155258r1jfs6zxf38wnpap.png)

你的系统和网络上的所有其他设备都使用这个 IP 地址连接到路由器。这就是大多数家庭的设置。

现在我已经展示了 GUI 的方法，让我们去看看终端的路线。

### 方法 2：在 Linux 命令行中获取路由器的 IP 地址

打开一个终端，使用以下命令：

```
ip route

```

它将显示几个条目。

```
~$ ip route
default via 192.168.1.1 dev wlp0s20f3 proto dhcp metric 600
169.254.0.0/16 dev wlp0s20f3 scope link metric 1000
192.168.1.0/24 dev wlp0s20f3 proto kernel scope link src 192.168.1.34 metric 600

```

第一行，以 `default via` 开头，给出了你网关的 IP。这是你的路由器的 IP 地址。

![default route linux terminal](/data/attachment/album/202207/06/155258vj6m2q2q6j2jq545.png)

你可以看到，`192.168.1.1` 是我的路由器的 IP 地址。通常情况下，路由器的 IP 地址是子网的第一个数字。然而，这并不是一个硬性规定。我也见过有 `x.y.z.30` 地址的路由器。

### 额外技巧

正如 Samir 在评论中所分享的，你也可以（在 Debian 上）使用 `ping` 命令来获得网关 IP：

```
ping _gateway

```

![ping gateway](/data/attachment/album/202207/06/155258uyuuu4yczqpycyzu.png)

以防你不知道，你必须 [在 Linux 中使用 Ctrl+C 来停止一个正在运行的命令](https://itsfoss.com/stop-program-linux-terminal/)。

我希望你在需要的时候能发现这个技巧是有用的。

---

via: <https://itsfoss.com/router-ip-address-linux/>

作者：[Abhishek Prakash](https://itsfoss.com/author/abhishek/) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #689 微软 Xbox Cloud 串流针对 Linux 降低画质

Summary: • 微软 Xbox Cloud 串流针对 Linux 降低画质 • systemd 创建者离开了红帽 • NIST 公布首批四种抗量子的加密算法

微软认为自己的软件与Linux是竞争关系，与市占率无关；但微软又同时表现出拥抱Linux的小姿态。DDDD

![](/data/attachment/album/202207/06/190302h6z58o5r9fh77q55.jpg)

![](/data/attachment/album/202207/06/190313fogot7bhrryibgi7.jpg)

### 微软 Xbox Cloud 串流针对 Linux 降低画质

微软的云游戏串流服务 Xbox Cloud 本应该是平台无关的，也就是在带宽没有变化的情况下它应该向玩家提供相同的画质。但一位玩家注意到在 Linux 下访问 Xbox Cloud 画质显著低于 Windows。他随后尝试用使用扩展将 Linux 上的用户代理伪装成 Windows 上的浏览器，结果画质有了明显提升。

>
> **[消息来源：Solidot](https://www.solidot.org/story?sid=72040)**
>
>
>

>
> 老王点评：难道 Linux 用户不值得高清画质吗？
>
>
>

![](/data/attachment/album/202207/06/190349krocqohcodkrxrdh.jpg)

### systemd 创建者离开了红帽

据消息，systemd 的主要开发者 Lennart Poettering 已经离开了红帽公司，除了著名的 systemd，他还领导了 PulseAudio 和 Avahi 的创建，并且一直是一个多产的自由软件贡献者。此消息还未得到红帽的公开宣布，但他的红帽账户已被禁用，他创建了一个个人的红帽 Bugzilla 账户用于之后的贡献。当然，他仍然活跃在 systemd 领域，今天还做了新的提交。

>
> **[消息来源：Phoronix](https://www.phoronix.com/scan.php?page=news_item&px=Lennart-Poettering-Out-Red-Hat)**
>
>
>

>
> 老王点评：虽然有很多人讨厌 systemd，但几乎所有的主流 Linux 发行版都采用 systemd，说明它还是很优秀的。期待离开红帽后 Lennart 继续做出更多贡献！
>
>
>

![](/data/attachment/album/202207/06/190359n8o1e2p28ulya17s.jpg)

### NIST 公布首批四种抗量子的加密算法

美国国家标准与技术研究所（NIST）宣布了用于标准加密的一种算法，以及用于数字签名的三种算法，并且这三种签名算法各有不同，有的用于较短密钥，有的使用了不同数学技术。而公钥加密算法还未决定，尚在四个算法中选择。当然，关于这些算法，密码学家们还有很多争论。

>
> **[消息来源：NIST](https://www.nist.gov/news-events/news/2022/07/nist-announces-first-four-quantum-resistant-cryptographic-algorithms)**
>
>
>

>
> 老王点评：似乎还没有其它机构公开相关的进展，看起来 NIST 成了后量子密码学巨头之战的赢家。
>
>
>


HandBrake：用于转换任何格式视频的免费工具

可以转换腾讯爱奇异视频吗？

![](/data/attachment/album/202207/07/141355dt7b8znyhfmltmsh.jpg)

>
> 了解一下 HandBrake，这是一个优秀的工具，可以将任何格式的视频转换为目标类型。
>
>
>

本文介绍了它的功能、下载说明和使用指南。

### HandBrake

在这个社交媒体的时代，我们身处各种视频之中，当然还有随之而来的各种格式。因此，如果你是在 Linux 平台，甚至是在 Windows 平台，你可以使用各种软件来为多个平台转换各种视频。但是，如果你需要一个简单但功能丰富的视频转换器来处理来自多个来源的所有视频格式，请尝试 HandBrake。

#### 功能

HandBrake 有大量的选项，使其成为一个独特的工具。首先，其工作流程是超级简单。事实上，它只是三个步骤：

* 选择一个视频
* 选择一个目标格式
* 转换

正如你所看到的，如果你是一个新手用户，使用这个工具是非常容易的，因为目标格式的属性（如比特率、尺寸）是基于默认的预设。

其次，如果你想进行高级编辑，如在转换时从字幕文件中添加字幕，也可以使用这个工具。

此外，你还可以改变尺寸、翻转视频、改变分辨率、修改长宽比，以及裁剪。此外，通过一套基本的过滤器配置，可以完成诸如去噪和锐化等操作。

另外，为你的视频文件添加章节、标签和音轨也很容易。

也许 HandBrake 的重要功能是提供预设，以满足现代社会媒体和流媒体的需求。例如，其预设与这些流媒体平台和流媒体设备相一致，如：

* Discord
* GMail
* Vimeo
* 亚马逊 Fire Stick 电视棒
* 苹果设备
* Chromecast
* Playstation
* Roku
* Xbox

一个相当令人印象深刻的列表，不是吗？不仅如此，如果你是一个专业工作者，它可以帮助你定义和创建转换队列。队列功能允许你在工作流程中批量转换多个视频文件。

最后，你可以转换为 MPEG-4（mp4）、Matroska（mkv）和 WebM 格式。

![HandBrake with various features](/data/attachment/album/202207/07/141403dn7h3a3zictxwrhw.jpg)

### 下载和安装

下载和安装 HandBrake 对于任何平台（Linux、Mac 和 Windows）都很容易。开发者直接提供了可执行文件，可以免费下载。

由于本站的主要目标受众是 Linux 用户，我们将讨论 HandBrake 在 Linux 中的安装。

对于 Ubuntu、Linux Mint 和所有其他发行版，最好的方法是 Flatpak。你可以 [设置 Flatpak](https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/)，然后点击下面的按钮来安装 HandBrake：

>
> **[通过 Flathub 安装 HandBrake](https://dl.flathub.org/repo/appstream/fr.handbrake.ghb.flatpakref)**
>
>
>

对于 Windows、macOS 的安装程序，请访问 [这个页面](https://handbrake.fr/downloads.php)。

一个有趣的特点是，你可以通过命令行使用这个应用程序！这意味着你可以使用命令行工具进一步定制你的工作流程，你可以在 [这里](https://handbrake.fr/downloads2.php) 下载。

### 如何使用 HandBrake 来转换视频？（示例）

既然你安装了它，让我们看看你如何只用三个步骤就能转换一个示例视频。

1. 打开 HandBrake，点击顶部工具栏上的 “<ruby> 打开源文件 <rt>  Open Source </rt></ruby>” 按钮，选择你的视频文件。
2. 现在，从“<ruby> 格式 <rt>  Format </rt></ruby>”下拉菜单中选择目标文件类型。确保选中目标文件夹（默认为 `Videos`）。
3. 最后，点击顶部工具栏的“<ruby> 开始 <rt>  Start </rt></ruby>”按钮，用 HandBrake 转换视频。

![HandBrake Video Conversion in three simple steps](/data/attachment/album/202207/07/141404wldzl2arp721f7za.jpg)

你可以在窗口的底部找到一个漂亮的转换进度显示。

![Encoding status](/data/attachment/album/202207/07/141405enfkfk55nvvof878.jpg)

上面的步骤是最基本的步骤。如果你想进一步控制视频，你可以改变选项，也可以从我前面解释的大量预设列表中选择。

### 常见问题

**HandBrake 是免费使用么？**

是的，它是一个自由开源的应用程序，你可以免费下载它。

**它可在 Mac 和 Windows 上用么？**

是的，你可以在 macOS、Windows 10 和 Windows 11 中轻松安装 HandBrake。

**如何下载 HandBrake？**

你只能从官方网站 <https://handbrake.fr/> ，不能从其他地方下载 HandBrake。

### 结束语

Handbrake 是如今可用的专业级免费和开源视频编码器之一。它是一个经过时间考验的应用，每天有数百万用户使用。我希望本指南能帮助你了解这个神奇的工具，让你开始你的视频项目。

**演示视频来自 [Pexels - cottonbro](https://www.pexels.com/video/hands-hand-table-colorful-3997786/)**。

---

via: <https://www.debugpoint.com/handbrake/>

作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


darktable 4.0.0：用户界面改版，改进了色彩饱和度处理

>
> darktable 4.0.0 版本来了，这是一个主要版本，带来了新的功能，简化了用户界面，还有一些其他的改进。
>
>
>

![darktable](/data/attachment/album/202207/07/144639otro3xcf8qqsq335.jpg)

最近，作为其 3.8.x 系列的升级版，darktable 开发人员公布了新的稳定版。

最新的升级带来了新功能、错误修复和重大变化。

### darktable 4.0 有什么新内容？

在 darktable 4.0 中，增加了很多功能，并对用户界面进行了一些有意义的重新打造。

让我在此介绍一下关键的亮点：

>
> **注意：** 这是一次重大版本升级，采用了新的库和配置，与旧版本不兼容。因此，你需要在进行升级之前对你的工作进行备份。
>
>
>

#### 颜色和曝光映射

在曝光和颜色校准模块中，你现在可以定义和保存颜色采集器的目标颜色/曝光度。

这应该有助于你匹配图像中的源对象，并确保一个对象在一批照片中的颜色一致性。

#### 完善的用户界面

![darktable](/data/attachment/album/202207/07/144640w7sny19odpiwetzs.jpg)

用户界面已经进行了改造以改善外观/感觉。首先能看到的是其默认主题改为了 “优雅灰”。

总的来说，填充、边距、颜色、对齐方式和图标等等都得到了改造。也添加了新的可折叠的部分（rgb 通道混合器、曝光、颜色校准），使用户界面更干净，更容易访问。

你会发现许多细微的变化，布局也更合理。

#### 性能变化

在简化用户偏好的同时，该版本还增加了一些优化措施。

你还可以改变性能配置，而不需要重启 darktable。

#### 改进了色彩饱和度处理

![darktable](/data/attachment/album/202207/07/144640cf4zmm3dtjtvq3h4.jpg)

Filmic v6（一种新的色彩学）的加入有助于获得更多的饱和度，特别是对于蓝天。

另外正如公告中提到的，可以以最小的破坏性方式恢复，调色应该更安全。除此之外，还为艺术饱和度的变化设计了一个新的信息色彩空间。

总的来说，你应该对这个版本对饱和度控制的改进感到高兴。

#### 其他变化

其他一些值得注意的变化包括：

* 一个新的“引导式拉普拉斯”方法已被添加到高光重建模块中。
* 全局颜色选择器工具的改进
* 一个新的对比度参数
* 一个新的集合过滤器模块
* 增加了对 EXR 16 位（半数）浮点数输出的支持。

你可以在其 [官方公告帖子](https://www.darktable.org/2022/07/darktable-4.0.0-released/) 中查看所有的技术细节。

### 下载 darktable 4.0.0

你可以使用 [Flathub](https://flathub.org/apps/details/org.darktable.Darktable) 上的 Flatpak 包获得最新版本。写这篇文章时，Snap 包还没有更新。

此外，你也可以选择使用其 [GitHub 发布区](https://github.com/darktable-org/darktable/releases/tag/release-4.0.0) 中的 tar.xz 文件。

---

via: <https://news.itsfoss.com/darktable-4-0-release>

作者：[Ankush Das](https://news.itsfoss.com/author/ankush/) 选题：[lkxed](https://github.com/lkxed) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #690 苹果将发布 Lockdown 模式以抵御间谍软件攻击

Summary: • 苹果将发布 Lockdown 模式以抵御间谍软件攻击 • 亚马逊预览 AI 编程助手 CodeWhisperer • 美国联邦快递将关闭数据中心，退役所有主机

![](/data/attachment/album/202207/07/160709o7okwfkiq6zjf5og.jpg)

![](/data/attachment/album/202207/07/160721czqbl2f76sjzsnb6.jpg)

### 苹果将发布 Lockdown 模式以抵御间谍软件攻击

苹果手机曾遭间谍软件 Pegasus 的秘密入侵，为了抵御此类攻击苹果公司宣布了 Lockdown 模式。它将在今年秋天随 iOS 16、iPadOS 16 和 macOS Ventura 发布，旨在为极少数用户提供可选的极端保护。该模式将包括下列保护功能：图片之外的绝大多数信息附件类型将被拦截，链接预览等部分功能将被禁用；JIT JavaScript 编译器等将被禁用，除非列入受信站点白名单；向用户发起的 FaceTime 通话等邀请与服务请求将被拦截，除非用户此前向对方发起过通话或请求；iPhone 锁定时，与电脑或配件的有线连接也将被拦截。开启后将无法安装配置文件，且设备无法加入移动设备管理。苹果表示，如果安全研究人员在 Lockdown 模式中发现漏洞，它将提供业界顶级的最高 200 万美元的奖金。

>
> **[消息来源：苹果](https://www.apple.com.cn/newsroom/2022/07/apple-expands-commitment-to-protect-users-from-mercenary-spyware/)**
>
>
>

>
> 老王点评：我觉得这不算是极少数用户的需要，至少其中部分功能是大部分人都需要的。
>
>
>

![](/data/attachment/album/202207/07/160738bpqmligmwmkglqp1.jpg)

### 亚马逊预览 AI 编程助手 CodeWhisperer

和微软的 GitHub Copilot 类似，CodeWhisperer 也使用开源代码库进行训练，根据上下文向开发者提供代码完成建议。Copilot 因为代码许可证方面的问题引发了争议，CodeWhisperer 存在类似的问题，但它的做法要好一些，在提供示例代码建议时它会给出代码的来源，开发者将能知道是来自于是可以自由使用的 MIT 授权代码，还是来自于对使用有所限制的 GPL 授权代码。

>
> **[消息来源：AWS](https://aws.amazon.com/cn/codewhisperer/)**
>
>
>

>
> 老王点评：Copilot 增加类似的功能似乎也不难，但问题可能不在这里，而是这类 AI 助手给混淆滥用各种不同许可证的代码带来了便利，从根本上侵蚀了开源的许可证环境。
>
>
>

![](/data/attachment/album/202207/07/160753qzyk3wehzhccuocw.jpg)

### 美国联邦快递将关闭数据中心，退役所有大型机

美国联邦快递（FedEx）称，将在未来两年内关闭其数据中心，并退役其剩余的 20% 大型机。该公司的目标是建立一个基于云的“零数据中心、零主机”环境，这将每年节省 4 亿美元。其 CIO 在会议上说，“在这十年中，我们一直在努力精简和简化我们的技术和系统。……我们将把剩余的应用程序转移到云原生结构。”

>
> **[消息来源：Datacenter Dynamics](https://www.datacenterdynamics.com/en/news/fedex-to-close-data-centers-retire-all-mainframes-by-2024-saving-400m/)**
>
>
>

>
> 老王点评：大型机越来越没有市场了，不过取代大型机的是另外一种“大型机” —— 也拥有超大的计算资源和无数的终端，以及供应商锁定。
>
>
>

### 回音

* 昨天我们报道过 systemd 作者 Lennart Poettering 离开了红帽，今天的消息显示，他加入了微软，仍将继续专注于 systemd 的开发。微软已经 [网罗](https://www.phoronix.com/scan.php?page=news_item&px=Systemd-Creator-Microsoft) 了很多开源方面的重要人才。


又有 Linux 开发者加入微软，这次是 systemd 的创建者

Summary: 看来微软拿了一手好牌，在 Linux 和开源方面取得行业成功。

实话说，我觉得近些年的微软越来越开放了，也不像以前那么傲慢。

看来微软拿了一手好牌，在 Linux 和开源方面取得行业成功。

>
> 看来微软拿了一手好牌，在 Linux 和开源方面取得行业成功。
>
>
>

![microsoft](/data/attachment/album/202207/08/091020hh3h5wl7gz755353.jpg)

出于某种原因，微软在开源和 Linux 方面总是受到关注。

而且，当我们谈论 Linux 开发者时，它也会成为焦点……为什么会这样？

微软似乎正在为一系列的项目招聘大量 Linux 开发人员。而且，一个知名人物也加入了这个名单。

据 [Phoronix](https://www.phoronix.com/scan.php?page=news_item&px=Systemd-Creator-Microsoft) 报道，systemd 和 PulseAudio 的创建者 **Lennart Poettering**，现在已在微软工作，继续专注于 systemd 的开发。

或许你不知道，Lennart 曾在红帽工作，领导 PulseAudio 项目和其他一些事情。

除了 Lennart 之外，Python 之父 **Guido Van Rossum** 等一些关键的开发人员之前就加入了微软。

（LCTT 译注：据 Phoronix 总结，还有更多的开源开发者加入了（或加入过）微软，这包括：GNOME 创建者 Miguel de Icaza 曾在 2016 年微软收购 Xamarin 时受雇，到今年早些时候离开；Nat Friedman 作为 Xamarin 的成员在微软收购后加入，后担任微软旗下的 GitHub 的 CEO；Gentoo Linux 创始人 Daniel Robbins 之前受雇于微软；Steve French 作为 Linux CIFS/SMB2/SMB3 的维护者和 Samba 团队的成员为微软工作；以及大量的上游 Linux 开发者，如 Matteo Croce、Matthew Wilcox、Tyler Hicks、Shyam Prasad N、Michael Kelley、Christian Brauner 等等也曾被微软雇佣。）

### 微软在为最佳状态做准备

毫不奇怪，微软希望提高其对基于开源的项目的关注，并尽可能有效地利用 Linux 为其业务服务。

Azure 平台对开源的利用最多，而且，不要忘了 **Windows Subsystem for Linux**（WSL）。

因此，微软一直在招聘 Linux 开发人员。如果你想试试，你会在 [微软职业](https://careers.microsoft.com/us/en/search-results?keywords=Linux) 栏目中找到很多与 Linux 有关的职位。

虽然这对微软的产品线来说是一件大事，但它一般不会影响到 Linux 桌面用户。事实上，我认为，Linux 开发者得到的资源越多，由于他们工作角色转换，他们可以帮助 Linux 生态系统更好地增强其愿景。

当然，让所有关键的 Linux 开发者都在微软拥有的项目上工作并不是一件喜闻乐见的事情，但是，事实就是如此。

### 微软正在做正确的事情

这不仅仅是经济上的回报，Linux 开发者加入微软团队的趋势意味着他们在开源和 Linux 上的一些努力是成功的。

只要微软努力改善 Linux 生态系统，我认为我们就没有什么可担心的。

我不想被提醒“<ruby> 拥抱、扩展和熄灭 <rt>  Embrace, extend, and extinguish </rt></ruby>”（3E）。毕竟，这对所有公司来说都是生意。当涉及到赚钱的决定时，没有人应该被认为是英雄。

因此，我们只能希望微软在不久的将来为 Linux 开发者和用户准备好一些好东西。

你对此有何看法？在下面的评论区分享你的想法。

---

via: <https://news.itsfoss.com/systemd-creator-microsoft/>

作者：[Ankush Das](https://news.itsfoss.com/author/ankush/) 选题：[lkxed](https://github.com/lkxed) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


改变数据中心行业的主要趋势

Summary: 下面提到的是将对印度数据中心行业产生重大影响的主要趋势。

下面提到的是将对印度数据中心行业产生重大影响的主要趋势。

![Data center](/data/attachment/album/202207/08/093248h1fcac4khhyhy0hn.jpg)

大流行加快了印度全国数字化转型的速度，这需要对数据中心进行更多投资。由于快速的数字化和云采用，印度数据中心市场的容量预计在未来几年将翻一番。据报道，2021 年印度数据中心市场规模为 43.5 亿美元，到 2027 年将达到 100.9 亿美元，2022-2027 年的复合年增长率为 15.07%。

现在，出现的一个关键问题是印度数据中心行业的未来是什么？哪些新趋势将塑造其未来？下面提到的是将对印度数据中心行业产生重大影响的主要趋势。

### 数据本地化

数据本地化就意味着限制数据从一个国家流向另一个国家。印度政府已发布指导方针，强调需要在该国境内存储印度用户的数据。数据本地化使得收集关键消费者数据的公司必须在本地数据中心存储和处理这些数据。这给本地数据中心带来了巨大的增长。此外，印度的成本优势和熟练劳动力的便利性使其成为亚洲数据中心的重要枢纽。

### 可持续数据中心

众所周知，数据中心消耗大量非可再生资源。为了使数据中心可持续发展，公司重新设计了他们的设施，通过利用人工智能、机器学习和云等新兴技术来大大降低电力和水的消耗。云数据中心使用更少的服务器，从而减少碳排放。它们通常位于更靠近为其供电的设施，以防止在长距离传输电能的过程中出现大量损失。此外，公共云数据中心可用于存储来自多个业务的数据。本地数据中心在存储大量数据时存在容量限制，从而导致资源的非最佳使用。因此，云数据中心通过使企业能够消耗更少的服务器和更少的电力并减少其在此过程中的碳排放，正在彻底改变行业。

### 边缘连接

边缘数据中心是靠近网络边缘的小型数据中心。它们通常连接到更大的中央数据中心或多个数据中心。通过处理更接近最终用户的数据和服务，边缘计算允许组织减少延迟并改善客户体验。这样的数据中心对于需要实时数据处理的行业非常有利，例如自动驾驶汽车、远程医疗、电信、OTT 平台和智能可穿戴设备。

### 超大规模数据中心

传统上，数据中心是一个简单的机架网络，带有存储单元和一组管理工具。它具有易于理解的架构。然而，随着数字化转型接管了企业界，组织开始生成大量数据。传统的存储单元和工具不足以处理大量涌入的数据，因此需要更大的容量和复杂的设施。此外，传统数据中心无法扩大或缩小其能力以适应需求波动，从而导致资源浪费。这导致了超大规模作为解决方案的演变。

超大规模数据中心是大规模的关键业务设施，旨在通过将大量高速协同工作的服务器聚集在一起，有效地支持强大且可扩展的应用。这种能力使数据中心能够水平和垂直扩展。

总之，数据中心行业正在发展，新趋势将不断涌现。借助新时代的颠覆性技术，数据中心行业可以构建环保节能的数据中心。人工智能、边缘计算和物联网等技术可用于最大限度地提高能源效率并最大限度地减少对环境的影响。

---

via: <https://www.opensourceforu.com/2022/06/top-trends-changing-data-center-industry/>

作者：[abhimanyu rathore](https://www.opensourceforu.com/author/abhimanyu-rathore/) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


在 Linux 中隐藏文件和文件夹的那些事

>
> 这篇面向初学者的文章探讨了在 Linux 中如何在普通视图中隐藏文件和文件夹。图形用户界面和命令行方法都有所涉猎。
>
>
>

![](/data/attachment/album/202207/08/142700yijbiw44bqfpfs4j.jpg)

有时你需要在 Linux 中隐藏文件。

不要误会，我不是指那些你不想让你的家人看到的“特殊文件”。尽管你可以隐藏这些特殊文件，但更好的办法还是用密码锁定它们以提供额外的保护。

回到隐藏文件的话题。**名称以 `.` 开头的任何文件或文件夹在 Linux 中是“隐藏的”。**

Linux 有很多这样的文件和文件夹，在普通视图中它们是隐藏的。这些主要是系统和程序所需的配置文件。

用户通常不需要理会它们，因此它们在普通视图中是隐藏的，这样一来你就不会被许多看起来很奇怪的而不是你所创建的文件所淹没。

下图展示了我的主目录中隐藏的文件和文件夹。

![linux 普通视图](/data/attachment/album/202207/08/143102xlygupolm6gmemmn.png)

![linux 显示隐藏文件](/data/attachment/album/202207/08/143103ibb0qtcmrv5715hc.png)

如果你使用的是桌面版 Linux，你可以通过在文件管理器中按 `Ctrl+H` 快捷键来轻松 [查看隐藏文件](https://itsfoss.com/hide-folders-and-show-hidden-files-in-ubuntu-beginner-trick/)。在终端中，你可以使用 `ls -a` 命令显示隐藏文件和普通文件。

那么，如何在 Linux 中创建隐藏文件呢？你只需用一个在命名的时候加一个 `.` 前缀。就是这样。

### 在桌面版 Linux 里创建隐藏文件和文件夹（GUI 方法）

如果你使用的是文件管理器，在文件或文件夹上右键并选择重命名选项。现在你所要做的就是在文件名的开头添加一个 `.`。

当你以这种方式创建隐藏文件时，GNOME 的 Nautilus 文件管理器也会显示一个警告。

![ubuntu linux 隐藏文件](/data/attachment/album/202207/08/143103gbuwb9b3y9js5ok3.png)

你可以以相同的方式隐藏文件夹及其所有内容。

你可以按 `Ctrl+H` 键来显示隐藏文件。哦！我是多么的喜欢 [Ubuntu 中的键盘快捷键](https://itsfoss.com/ubuntu-shortcuts/) 和我使用的任何其他程序或操作系统！

要使隐藏文件变回普通文件，只需再次重命名这些文件删掉文件名前缀的 `.` 即可。

### 在 Linux 终端创建隐藏文件和文件夹（CLI 方法）

如果你热衷于终端，你可以 [使用 mv 命令](https://linuxhandbook.com/mv-command/) 重命名文件。你只需在原始文件名的开头添加一个 `.`。

```
mv filename .filename

```

你可以使用以下命令显示隐藏文件：

```
ls -la

```

你也可以使用 `ls -lA`。这条命令不会显示点文件（`.` 和 `..`）。

### 额外提示：用非重命名的方法隐藏文件和文件夹（仅适用于 GUI）

你刚刚学了在 Linux 中隐藏文件。问题是你必须重命名文件，而这种操作不适用于所有的场合。

例如，在 Ubuntu 中，你会在目录中看到一个名为 `snap` 的文件夹。你不会使用它，但如果重命名它，你的 Snap 应用程序将无法按预期工作。类似的情况是，在 Ubuntu 22.04（安装有 Snap 版本的 Firefox）的 `Downloads` 目录下有一个 `firefox.tmp` 文件夹。

有一个巧妙的技巧可以在 Linux 桌面中使用。它应该可以在 Nemo、Thunar、Dolphin 等各种文件管理器下工作，但我不能保证。它确实适用于 GNOME 的 Nautilus 文件管理器。

因此，你在这里所做的是在你想要隐藏的文件或文件所在的目录中创建一个名为 `.hidden` 的新文件。

![在 Linux 中隐藏文件的另一种方法](/data/attachment/album/202207/08/143103mbhjwgooufjhbzzu.png)

按 `Ctrl+H` 显示隐藏文件并 **打开 `.hidden` 文件** 进行编辑。**在单独的行中添加文件或文件夹的名称**。注意不能使用绝对或相对路径。你想要隐藏的 **文件和文件夹应与此特殊 `.hidden` 文件** 位于同一路径下。

这是我以不重命名的方式隐藏 `cpufetch` 目录和 `pcloud` 文件的示例：

```
pcloud
cpufetch

```

按 `Ctrl+H` 以再次隐藏 `.hidden` 文件。

现在，**关闭你的文件资源管理器并重新启动它**。你将不会再看到 `.hidden` 文件中提到的文件和目录。

如果你想再次查看它们，请按 `Ctrl+H` 键。

如果你不想再隐藏文件，请从 `.hidden` 文件中删除其名称或完全删除 `.hidden` 文件。

### 额外琐事：隐藏文件“功能”实际上是一个 bug

你知道吗？在文件名的开头添加一个 `.` 来隐藏文件的“功能” [实际上是一个 bug](https://linux-audit.com/linux-history-how-dot-files-became-hidden-files/)？

在早期的 UNIX 时代，当创建文件系统时，添加了 `.`（当前目录）和 `..`（父目录）文件以方便导航。

由于这些特殊的 `.` 和 `..` 文件中没有实际数据，因此给 `ls` 命令添加了一个新的“功能”：该功能是检查文件名的第一个字符，如果它是一个点（`.`），则不再使用 `ls` 命令显示它。

这对隐藏 `.` 和 `..` 文件有效，但它引入了一个 “bug”：`ls` 命令的输出会隐藏任何文件名以 `.` 开头的文件。

这个 bug 变成了一个功能，因为程序员喜欢它来“隐藏”他们的配置文件。`ls` 命令可能是后来修改添加了一个显示隐藏点文件的选项。

Linux 遵循相同的约定，因为 Linux 是以 UNIX 为原型开发的。

### 结论

我讨论了如何从普通视图中创建隐藏文件。如果要创建让其他人无法访问的机密文件或文件夹，则应对其进行加密。我曾经写过 [在 Linux 中使用密码锁定文件夹](https://itsfoss.com/password-protect-folder-linux/)。这是一篇有点儿旧的文章，但它可能仍然有效。

我希望你喜欢这个简单的话题并学到新的东西。发布你的评论让我知道你的想法吧。

---

via: <https://itsfoss.com/hide-files-folders-linux/>

作者：[Abhishek Prakash](https://itsfoss.com/author/abhishek/) 选题：[lkxed](https://github.com/lkxed) 译者：[hanszhao80](https://github.com/hanszhao80) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #691 Facebook 和 Instagram 或将在欧洲关闭

Summary: • Facebook 和 Instagram 或将在欧洲关闭 • Chrome 优化后台页面处理策略，提升笔记本电池时间 • 推特每天删除上百万个垃圾账户

人家是有选择，你是没有选择。 太监也有优越感了吗？

你就没看懂我话里的嘲讽。

你大可以去问问欧盟被监听的官员是不是有选择的，1450不要水

Linux中国是不是公知时代最后的遗老？

你这武汉的，竟然没中新冠啊

原来你自己觉得没有美国媒体就是太监  也行  就是别带上其他人  哈哈哈

![](/data/attachment/album/202207/08/180934ncjqql2lfqzqmh8c.jpg)

![](/data/attachment/album/202207/08/180947frewhyl1h1rljlj6.jpg)

### Facebook 和 Instagram 或将在欧洲关闭

由于担心美国的监控行为，欧洲法院于 2020 年废除了一项名为“隐私保护”的欧盟-美国数据流动协议。在其裁决中，它还使美国公司用来向美国转移个人数据的另一个法律工具，即标准合同条款（SCC）更难使用。爱尔兰数据保护委员会周四通知其同行，它将阻止 Facebook 将用户数据从欧洲发送到美国。这一草拟的决定意味着 Facebook 也被迫停止依赖 SCC。Meta 公司曾多次警告说，这样的决定将使其在欧洲的包括 Facebook 和 Instagram 在内的许多服务关闭。

>
> **[消息来源：Politico](https://www.politico.eu/article/europe-faces-facebook-blackout-instagram-meta-data-protection/)**
>
>
>

>
> 老王点评：欧洲人，别怕，你看我们没有这种东西，不是也有别的嘛 :<
>
>
>

![](/data/attachment/album/202207/08/180958ingklen9mvdfm685.jpg)

### Chrome 优化后台页面处理策略，提升笔记本电池时间

Chrome 是耗能大户，因此在笔记本电脑上非常影响电池使用时间。Chrome 在最新的版本中增加了一个新的“快速强化节流”策略。该功能可以在 10 秒后停止后台页面加载 JavaScript 元素，而之前的限制是 5 分钟，并且它将限制唤醒定时任务，最多每分钟 1 次。谷歌称，这有望延长电池使用时长，当所有标签都被隐藏和静止时，CPU 占用有 10% 的改善。该功能过段时间才会进入稳定通道。

>
> **[消息来源：Tech Radar](https://www.techradar.com/news/googles-new-chrome-feature-could-boost-your-laptops-battery-for-free)**
>
>
>

>
> 老王点评：感觉浏览器技术和 Web 技术无止境啊，Chrome 能占有这么大的市场，可见并非侥幸。
>
>
>

![](/data/attachment/album/202207/08/181014fko65vhv7oz2ocvx.jpg)

### 推特每天删除上百万个垃圾账户

之前，马斯克威胁要停止 440 亿美元的收购推特的交易，除非该公司拿出证据，证明垃圾机器人账户占看到广告的用户中不到 5%。推特在周四的一次简报会中说，推特每天删除超过 100 万个垃圾账户。该公司重申，人工审查人员随机检查了数千个账户，并使用公共和私人数据的组合，以计算该比例，在接受广告服务的用户中，垃圾账户远低于 5%。

>
> **[消息来源：路透社](https://www.reuters.com/technology/twitter-says-it-removes-over-1-million-spam-accounts-each-day-2022-07-07/)**
>
>
>

>
> 老王点评：虽然我认为马斯克在玩弄花招，但是要说推特只有 5% 的垃圾机器人账号，我是不信的。
>
>
>


Fedora Linux 37 即将正式支持树莓派 4

好耶~！

>
> 由于上游的一些改进，Fedora Linux 37 将引入对树莓派 4 的正式支持。
>
>
>

![Fedora raspberry pi](/data/attachment/album/202207/08/230308knnpuuhnkbwuakbh.jpg)

Fedora Linux 的工作站版很适合台式机使用。不过，如果你想让它用于服务器或物联网需求，可以使用 Fedora ARM 项目。

它也支持树莓派，只是最新的树莓派 4 除外（其实早在 2019 年就发布了）。

现在，随着 [Phoronix](https://www.phoronix.com/scan.php?page=news_item&px=Fedora-37-Raspberry-Pi-4) 发现的一项拟议的变化，看起来 Fedora Linux 37 可能会正式增加对树莓派 4 的支持。

### 目前还不是正式的...

到现在为止，对树莓派 4 的支持只是一个拟议的变化。

Fedora Linux 通常会公开其拟议的变化列表，以接受社区反馈并让其他人跟踪其进展。

所以，Fedora Linux 37 中的正式支持只有在得到 Fedora 工程指导委员会的批准后才会实施。

但是，**支持树莓派 4 的阻碍是什么呢？**

这是由于缺乏加速图形以及缺失一些功能，所以不方便增加对它的支持。

现在，随着新的 Linux 内核和 Mesa 的上游工作为树莓派 4 带来了图形加速功能，可以让他们启用对它的支持。

拟议的变化文件中提到：

>
> 上游现在支持使用 V3D GPU 的 OpenGL-ES 和 Vulkan 加速图形。对有线网络也有增强，支持 CM4/4B 上的 PTPv2。
>
>
>

此外，不仅仅是引入对树莓派 4 的支持，一些拟议的变化还涉及对树莓派 3 系列和 Zero 2 W 的改进。

因此，如果如人们所期望的那样发生，这应该是一个有趣的变化。

请注意，对树莓派 400 的 Wi-Fi 的支持不是这个过程的一部分，但对音频支持的测试将是这个变化的一部分。

你可以在 [拟议文件](https://fedoraproject.org/wiki/Changes/RaspberryPi4) 中阅读所有的细节。

你对 Fedora Linux 37 对树莓派 4 的支持有什么看法？请在下面的评论中分享你的想法。

---

via: <https://news.itsfoss.com/fedora-raspberry-pi-4/>

作者：[Ankush Das](https://news.itsfoss.com/author/ankush/) 选题：[lkxed](https://github.com/lkxed) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


使用 Tig 来可视化 Git 工作流

really good...

![](/data/attachment/album/202207/09/123419u39t3jz9gzc6345t.jpg)

>
> Tig 是审查 Git 仓库的绝佳工具，它鼓励你探索日志，而无需构建冗长且有时复杂的查询。
>
>
>

如果你发现浏览你的 Git 仓库非常复杂，我已经为你准备好了工具，来了解一下 Tig。

Tig 是一个 [基于 ncurses](https://opensource.com/article/21/8/ncurses-linux) 的 Git 文本模式界面，它允许你浏览 Git 仓库中的更改。它还可以充当各种 Git 命令输出的分页器。使用这个工具可以让我很好地了解在哪个提交中发生了哪些更改，最新的提交合并是什么等等。请跟随这个简短的教程，亲自尝试一下。

### 安装 Tig

在 Linux 上，你可以使用包管理器安装 Tig。例如，在 Fedora 和 Mageia 上：

```
$ sudo dnf install tig

```

在 Debian、Linux Mint、Elementary、Pop\_OS 和其他基于 Debian 的发行版上：

```
$ sud apt install tig

```

在 macOS 上，使用 [MacPorts](https://opensource.com/article/20/11/macports) 或 [Homebrew](https://opensource.com/article/20/6/homebrew-mac)。 Tig 的完整安装指南可在 [Tig 手册](https://jonas.github.io/tig/doc/manual.html) 中找到。

### 使用 Tig

Tig 提供了常见 Git 输出的交互式视图。例如，使用 Git，你可以使用命令 `git show-ref` 查看所有引用：

```
$ git show-ref
98b108... refs/heads/master
6dae95... refs/remotes/origin/1010-internal-share-partition-format-reflexion
84e1f8... refs/remotes/origin/1015-add-libretro-openlara
e62c7c... refs/remotes/origin/1016-add-support-for-retroarch-project-cd
1c29a8... refs/remotes/origin/1066-add-libretro-mess
ffd3f53... refs/remotes/origin/1155-automatically-generate-assets-for-external-installers
ab4d14... refs/remotes/origin/1160-release-on-bare-metal-servers
28baa9... refs/remotes/origin/1180-ipega-pg-9118
8dff1d... refs/remotes/origin/1181-add-libretro-dosbox-core-s
81a7fe... refs/remotes/origin/1189-allow-manual-build-on-master
[...]

```

使用 Tig，你可以在可滚动列表中获取该信息以及更多信息，此外还可以使用键盘快捷键来打开其他视图，其中包含每个引用的详细信息。

![](/data/attachment/album/202207/09/123424nqwgov16oei1gax3.png)

### 分页模式

当输入来自标准输入时，Tig 进入分页模式。当指定 `show` 子命令并给出 `--stdin` 选项时，标准输入被假定为提交 ID 列表，它被转发到 `git-show` ：

```
$ git rev-list --author=sumantrom HEAD | tig show –stdin

```

### 日志和差异视图

当你在 Tig 的日志视图中时，你可以按键盘上的 `d` 键来显示差异。这将显示提交中更改的文件以及删除和添加的行。

### 交互式 Git 数据

Tig 是对 Git 的一个很好的补充。它鼓励你探索日志，而无需构建冗长且有时复杂的查询，从而可以轻松查看你的 Git 仓库。

立即将 Tig 添加到你的 Git 工具包中！

---

via: <https://opensource.com/article/22/7/visualize-git-workflow-tig>

作者：[Sumantro Mukherjee](https://opensource.com/users/sumantro) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


如何使用原生 NTFS 驱动替代旧版 FUSE NTFS 驱动

![](/data/attachment/album/202207/09/142852nbho3cvozegvbwhh.jpg)

>
> NTFS 是 Windows NT 系列操作系统支持的磁盘文件系统格式，它是一个特别为网络和磁盘配额、文件加密等管理安全特性设计的文件系统。而 Linux 内核中新进入主线支持的 NTFS3 驱动是一个功能齐全的 NTFS 驱动程序，该驱动程序适用于最高的 NTFS 3.1 版本。
>
>
>

### 简介

最初，Linux 内核没有 NTFS 的原生支持，后来对 NTFS 的支持也仅提供了只读功能。来自 Tuxera 的 NTFS-3G 是之前主流的解决方案，但在实际使用中也存在一些问题。NTFS-3G 是借助 Linux 的用户空间文件系统（FUSE）模块在用户层实现的一个对 NTFS 支持的文件系统，其对 NTFS 的访问逻辑代码都是在用户层代码实现的。

在 NTFS3 出现之前，Linux 上使用 NTFS 主要问题还是缺乏稳定且功能齐全的读/写支持。

2020 年，Paragon 软件公司做出了一个惊人的决定：尝试将之前只提供给商业客户的 NTFS3 驱动程序贡献到 Linux 主线。最终，在经过多轮审核和修改之后，Linux 内核 5.15 合并了 Paragon 提供的 NTFS3 内核驱动，它拥有更高的性能和更多的特性。

* 该驱动程序实现了对 NTFS 文件系统中的正常、稀疏和压缩文件的读/写支持。
* 支持本地日志回放。
* 支持已挂载的 NTFS 卷的 NFS 导出。
* 支持文件和文件夹的权限管理。

![使用 ntfs3 驱动替换 ntfs-3g 挂载 windows NTFS 分区](/data/attachment/album/202207/09/142412x9wzig3limxmm9lm.jpg)

### 如何使用 NTFS3 驱动挂载 NTFS 卷

使用 NTFS3 驱动挂载时使用的文件系统类型是 `ntfs3`。

#### 手动挂载

以前使用 NTFS-3g 驱动的挂载方式是：

```
# mount -t ntfs-3g /dev/sdxY /mnt

```

现在只需要将 `ntfs-3g` 替换为 `ntfs3` 即可：

```
# mount -t ntfs3 /dev/sdxY /mnt

```

`-t` 指出文件系统类型，`/dev/sdxY` 是你的 NTFS 卷（分区）的路径，可以使用 `lsblk` 命令查看。`/mnt` 是挂载的目标文件夹。

如果需要指定挂载参数，可使用 `-o` 指定参数，如：

```
# mount -t ntfs3 -o iocharset=utf8,umask=22,prealloc /dev/sdxY /mnt

```

这里的 `iocharset=utf8,umask=22,prealloc` 挂载参数，详见后文解释。

#### 开机自动挂载

如需在开机时自动挂载，可编辑 `/etc/fstab` 文件，添加如下行：

```
UUID=**** /data ntfs3 iocharset=utf8,umask=0,prealloc 0 0

```

其中 `UUID=****` 是指定卷（分区）的 UUID。使用 `UUID` 的好处在于它们与磁盘挂载顺序无关。如果你在 BIOS 中改变了你的存储设备顺序，或是重新拔插了存储设备，或是一些 BIOS 可能会随机地改变存储设备的顺序，那么用 `UUID` 来表示指定卷（分区）会更有效。可以使用 `blkid` 命令查看 `UUID` 。

`/data` 是挂载位置。本示例的位置是 `/data`，你需要提前创建这个文件夹。

后面的选项都是挂载参数，参见后文介绍。

最后两个 `0 0` ，表示是否备份和是否检查。`0 0` 表示不备份、不检查。

### 挂载参数说明

| 参数 | 解释 |
| --- | --- |
| `iocharset=name` | 此选项告知驱动程序如何解释路径字符串，并将其转换为 Unicode 或返回。如果未设置此选项，将使用默认代码页。示例：`iocharset=utf8` |
| `uid=` | 挂载用户 ID |
| `gid=` | 挂载组 ID |
| `umask=` | 控制装载 NTFS 卷后创建的文件/目录的默认权限。 |
| `dmask=` | `fmask` 只适用于文件，`dmask` 只适用于目录，而不是指定同时适用于文件和目录的 `umask`。 |
| fmask= | 见上 |
| `noacsrules` | “无访问规则”装载选项将文件/文件夹的访问权限设置为 777，所有者/组设置为 root。此装载选项吸收所有其他权限。文件/文件夹的权限更改将报告为成功，但仍将保持 777。所有者/组更改将报告为成功，但他们将保留为 root 用户。 |
| `nohidden` | Linux 下不会显示具有 Windows 特定隐藏（`FILE_ATTRIBUTE_HIDDEN`）属性的文件。 |
| `sys_immutable` | 具有 Windows 特定系统（`FILE_ATTRIBUTE_SYSTEM`）属性的文件将标记为系统不可变文件。 |
| `discard` | 支持 TRIM 命令以提高删除操作的性能，建议将其用于固态驱动器（SSD）。 |
| `force` | 即使卷被标记为脏，也强制驱动程序装载分区。不建议使用。 |
| `sparse` | 创建稀疏的新文件。 |
| `showmeta` | 使用此参数可显示已装入 NTFS 分区上的所有元文件（系统文件）。默认情况下，所有元文件都是隐藏的。 |
| `prealloc` | 当写入时文件大小增加时，为文件过度预分配空间。减少对不同文件执行并行写入操作时的碎片。 |
| `acl` | 支持 POSIX ACL（访问控制列表）。如果内核支持，则有效。不要与 NTFS ACL 混淆。指定为 acl 的选项支持 POSIX acl。 |

### NTFS3 的优点

NTFS3 是内核态的驱动，ntfs3 比 ntfs-3g 无论是速度还是负载都要好上不少。

已经有诸多网友做过测试：

* [ntfs-3g 与 Linux 5.15+ ntfs3 驱动的简单性能测试](https://biluohc.github.io/posts/ntfs3gvsntfs3/)
* [Linux 5.15 内核 NTFS3 性能评测](https://bbs.deepin.org/post/236260)

除了性能更好以外，NTFS3 还支持挂载用户和文件权限管理等功能。具体使用方法可以自行学习 `gid`、`uid` 以及 `umask` 的用法。

另外 NTFS3 还支持 NTFS 的 `prealloc` 特性，可以大幅减少文件碎片的产生。

### 关于 NTFS3 驱动无人维护的问题

Paragon 于 2020 年在 GNU 通用许可证下发布了 NTFS3 驱动程序，在开源后的一年里，NTFS3 的驱动经过了多轮审查和修改，用来提高代码质量。直到 2021 年合并进入内核主线。

但是自从该驱动 2021 年在 Linux 5.15 中最终被主线化以来，至今为止，在接近一年的时间里，还没有任何重大的错误修复被送入驱动。

有人推测是该驱动的维护者 Konstantin Komarov 身处俄罗斯，受到俄乌战争影响的原因。

随后包括 Linus Torvalds 在内的诸多程序员都对此事表达了关切，并且愿意参与到贡献中来。

现在，我们看到 Paragon 软件公司的 Konstantin Komarov 在因休息和其他事务而离开后，又重新活跃在内核邮件列表中。Komarov 在 2022 年 6 月 3 日为 Linux 5.19 的合并窗口提交了一批 NTFS3 的修正。

我相信 ntfs3 未来会越来越好。并且目前，ntfs3 已经是 Linux 中最好用 NTFS 驱动了，我觉得你也不妨尝试一下。

---

作者简介：一个喜欢瞎鼓捣的医学生

---

via: <https://www.insidentally.com/articles/000029/>

作者：[insidentally](https://www.insidentally.com) 编辑：[wxy](https://github.com/wxy)

本文由贡献者投稿至 [Linux 中国公开投稿计划](https://github.com/LCTT/Articles/)，采用 [CC-BY-SA 协议](https://creativecommons.org/licenses/by-sa/4.0/deed.zh) 发布，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #692 新款支持 Pluton 的 ThinkPad 默认不能安装 Linux

Summary: • 新款支持 Pluton 的 ThinkPad 默认不能安装 Linux • Ubuntu 将 Firefox Snap 启动速度提升了一倍 • Web3 项目今年前半年因黑客攻击损失超过 20 亿美元

![](/data/attachment/album/202207/09/191633x06w38c3qqv05cil.jpg)

![](/data/attachment/album/202207/09/191653vpfjs9wfsddw33j3.jpg)

### 新款支持 Pluton 的 ThinkPad 默认不能安装 Linux

Pluton 是微软公司于 2020 年首次推出的 Windows PC 安全协处理器。与 TPM 一道，其旨在增强 Windows 操作系统的安全性。联想发布的新款 ThinkPad Z13 和 Z16 笔记本电脑就支持 Pluton。然而，有 Linux 专家发现，无法在 ThinkPad Z13 笔记本电脑上，通过 USB 来启动 Linux。这是因为 Pluton 默认只接受 Windows 引导加载和配套驱动程序，使用第三方 UEFI 证书的 Linux 发行版会被阻止启动。联想证实，从 2022 年起，该公司开始遵循微软给出的 PC 安全启动建议，并于默认情况下禁用第三方证书。

>
> **[消息来源：Phoronix](https://www.phoronix.com/scan.php?page=news_item&px=Lenovo-Pluton-Windows-Default)**
>
>
>

>
> 老王点评：所以，不为他们所用的 Linux 不是好 Linux，而要为他们所用，可以是子系统、可以是虚拟机，对吧。
>
>
>

![](/data/attachment/album/202207/09/191710yvnnlhq5ltifficl.jpg)

### Ubuntu 将 Firefox Snap 启动速度提升了一倍

Canonical 在一篇博文中披露，“与 Firefox 101 相比，全新安装版本的启动时间平均减少了 50%。”这是由于 Firefox 改成了在启动时一次只复制一个环境 / 语言包（而不是所有语言包），区域设置将遵循系统设置，因而大幅缩减了启动等待时间。以及将 Firefox 及其 GNOME 和 GTK 主题的 Snap 软件包从 XZ 切换到 LZO，加快了解压/启动速度。

>
> **[消息来源：Phoronix](https://www.phoronix.com/scan.php?page=news_item&px=Firefox-Snap-50p-Reduction)**
>
>
>

>
> 老王点评：总算是又进一步改善了 Snap，虽然还有一些缺陷。
>
>
>

![](/data/attachment/album/202207/09/191722wt66uz4pp7utnhdo.jpg)

### Web3 项目今年前半年因黑客攻击损失超过 20 亿美元

根据一项研究报告，Web3 领域仍然受到黑客、诈骗和网络钓鱼计划的困扰，同时还面临着相对较新的威胁，如闪电贷款攻击。在今年的前六个月，Web3 项目因黑客和漏洞而损失超过 20 亿美元，超过了去年全年。此外，研究还发现，Discord 是绝大多数网络钓鱼企图的载体，这是一个信号，表明它作为 Web3 的首选社交网络仍然很受欢迎，尽管安全问题不断。

>
> **[消息来源：The Verge](https://www.theverge.com/2022/7/7/23199148/web3-lost-2-billion-hacks-flash-loan-certik-cryptocurrency)**
>
>
>

>
> 老王点评：Web3 虽然以积木式金融为创新，但是其最大的问题可能也来自于这种积木式结构。
>
>
>


Meta 开源了语言翻译 AI 模型

Summary: Meta 的 “不落下任何语言No Language Left Behind” 是一个宏大的开源项目，旨在以最高准确度翻译语言。

个人觉得挺好的。虽然我不喜欢Meta公司，但是这个开源项目对于机器翻译以至于NLP领域的贡献很大。项目成熟后，对普通用户来说，就可以无需任何外语的学习浏览外文网站，结合模式识别技术，甚至可以做到十分精准的同声翻译，未来可期啊

“无人独语”好隐晦，看不太懂。

“无语不成译”会不会好些？

这对人工翻译来说将是灭顶之灾

>
> Meta 的 “<ruby> 不落下任何语言 <rt>  No Language Left Behind </rt></ruby>” 是一个宏大的开源项目，旨在以最高准确度翻译语言。
>
>
>

![meta](/data/attachment/album/202207/10/112255vdn6859fww83y294.jpg)

Meta（前身是 Facebook）在开源世界做出了不小的贡献。Meta 除了专注于<ruby> 元宇宙 <rt>  Metaverse </rt></ruby>和其社交媒体平台外，还致力于各种研究和创新工作，比如 React（一个 JaveScript 库）。

现在，Meta 的研究人员决定开源一个叫 “<ruby> 不落下任何语言 <rt>  No Language Left Behind </rt></ruby>” 项目。

（LCTT 校注：这个直译项目名称不够好听，我来抛砖引玉，似可称做“无人独语”，读者有什么建议吗？）

### Meta 试图不落下任何语言

目前，虽然世界上有大约 7000 个在使用中的语言，但大多数在线的内容都是以少数的流行语言来提供的，比如英语。这让许多不懂这些语言的人处于不利的地位。

虽然现存的许多翻译工具，但语法错误会让错误变得难以阅读和理解。另外，如果你想把内容翻译为一个不流行的语言（特别是非洲和亚洲的一些语言），翻译体验不会很好。

因此，Meta 正在开发有最高质量的翻译工具，可以帮助解决这一全球性的问题。

NLLB-200（<ruby> 不落下任何语言 <rt>  No Language Left Behind </rt></ruby>） 是一个人工智能翻译模型，其可以翻译 200 多种语言。该模型在每种语言中的翻译结果是通过一个名为 FLORES-200 复杂数据集来确定和评估的。

正如 Meta 所说，NLLB 的翻译结果比以前的人工智能研究方法好 40% 。对于一些最不常见的语言，其翻译准确率甚至超过 70%。了不起的工作！

为了帮助开发项目和提高模型的翻译质量，Meta 向所有感兴趣的研究人员开放了源代码，包括 NLLB-200 模型、FLORES-200 数据库、模型训练和重建训练数据库的代码。

你可以在 [GitHub](https://github.com/facebookresearch/fairseq/tree/nllb) 上找到源代码，并且可以在该项目的 [博客](https://ai.facebook.com/blog/nllb-200-high-quality-machine-translation/) 上了解它的更多信息。

### 对社会事业的鼓励

Meta 宣布向从事<ruby> 联合国可持续发展目标 <rt>  UN Sustainable Development Goals </rt></ruby>任何领域工作和翻译非洲语言的非营利组织和研究人员提供高达 20 万美元的捐赠，也鼓励其他学术领域如语言学和机器翻译的研究人员申请。

### 项目的影响

尽管 Meta 主要打算在其数字平台上，特别是在“元宇宙”上使用 NLLB，但 NLLB 也有可能在其他领域产生巨大影响。

许多用户可以用他们的母语轻松地访问和阅读在线资源。项目开源后，社区应该能够帮助实现这个目标。

*你对 Meta 的这个项目有什么看法？*

---

via: <https://news.itsfoss.com/meta-open-source-ai-model/>

作者：[Rishabh Moharir](https://news.itsfoss.com/author/rishabh/) 选题：[lkxed](https://github.com/lkxed) 译者：[fenglyulin](https://github.com/fenglyulin) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


如何在 Linux 上动态链接模块库

Summary: 学习如何用动态链接库将多个 C 目标文件结合到一个单个的可执行文件之中。

学习如何用动态链接库将多个 C 目标文件结合到一个单个的可执行文件之中。

>
> 学习如何用动态链接库将多个 C 目标文件结合到一个单个的可执行文件之中。
>
>
>

![](/data/attachment/album/202207/10/182540caie7ldrefflffah.jpg)

当使用 C 编程语言编写一个应用程序时，你的代码通常有多个源文件代码。

最终，这些文件必须被编译到一个单个的可执行文件之中。你可以通过创建静态或动态库（后者也被称为 <ruby> 共享 <rt>  shared </rt></ruby> 库）来实现这一点。这两种类型的库在创建和链接的方式上有所不同。两者都有缺点和优点，这取决于你的使用情况。

动态链接是最常见的方法，尤其是在 Linux 系统上。动态链接会保持库模块化，因此，很多应用程序可以共享一个库。应用程序的模块化也允许单独更新其依赖的共享库。

在这篇文章中，我将演示动态链接是如何工作的。在后期的文章中，我将演示静态链接。

### 链接器

<ruby> 链接器 <rt>  linker </rt></ruby>是一个命令，它将一个程序的数个部分结合在一起，并为它们重新组织内存分配。

链接器的功能包括：

* 整合一个程序的所有的部分
* 计算出一个新的内存组织结构，以便所有的部分组合在一起
* 恢复内存地址，以便程序可以在新的内存组织结构下运行
* 解析符号引用

链接器通过这些功能，创建了一个名为<ruby> 可执行文件 <rt>  executable </rt></ruby>的可以运行的程序。在你创建一个动态链接的可执行文件前，你需要一些用来链接的库，和一个用来编译的应用程序。准备好你 [最喜欢的文本编辑器](https://opensource.com/article/21/2/open-source-text-editors) 并继续。

### 创建目标文件

首先，创建带有这些函数签名的头文件 `mymath.h` ：

```
int add(int a, int b);
int sub(int a, int b);
int mult(int a, int b);
int divi(int a, int b);

```

使用这些函数定义来创建 `add.c` 、`sub.c` 、`mult.c` 和 `divi.c` 文件。我将把所有的代码都放置到一个代码块中，请将其分为四个文件，如注释所示：

```
// add.c
int add(int a, int b){
return (a+b);
}

//sub.c
int sub(int a, int b){
return (a-b);
}

//mult.c
int mult(int a, int b){
return (a*b);
}

//divi.c
int divi(int a, int b){
return (a/b);
}

```

现在，使用 GCC 来创建目标文件 `add.o`、`sub.o`、`mult.o` 和 `divi.o` ：

（LCTT 校注：关于“<ruby> 目标文件 <rt>  object file </rt></ruby>”，有时候也被称作“对象文件”，对此，存在一些译法混乱情形，称之为“目标文件”的译法比较流行，本文采用此译法。）

```
$ gcc -c add.c sub.c mult.c divi.c

```

`-c` 选项跳过链接步骤，并且只创建目标文件。

### 创建一个共享的目标文件

在最终的可执行文件的执行过程中将链接动态库。在最终的可执行文件中仅放置动态库的名称。实际上的链接过程发生在运行时，在此期间，可执行文件和库都被放置到了主内存中。

除了可共享外，动态库的另外一个优点是它减少了最终的可执行文件的大小。在一个应用程序最终的可执行文件生成时，其使用的库只包括该库的名称，而不是该库的一个多余的副本。

你可以从你现有的示例代码中创建动态库：

```
$ gcc -Wall -fPIC -c add.c sub.c mult.c divi.c

```

选项 `-fPIC` 告诉 GCC 来生成<ruby> 位置无关的代码 <rt>  position-independent code </rt></ruby>（PIC）。`-Wall` 选项不是必需的，并且与代码的编译方式是无关的。不过，它却是一个有价值的选项，因为它会启用编译器警告，这在排除故障时是很有帮助的。

使用 GCC ，创建共享库 `libmymath.so` ：

```
$ gcc -shared -o libmymath.so add.o sub.o mult.o divi.o

```

现在，你已经创建了一个简单的示例数学库 `libmymath.so` ，你可以在 C 代码中使用它。当然，也有非常复杂的 C 库，这就是他们这些开发者来生成最终产品的工艺流程，你和我可以安装这些库并在 C 代码中使用。

接下来，你可以在一些自定义代码中使用你的新数学库，然后链接它。

### 创建一个动态链接的可执行文件

假设你已经为数学运算编写了一个命令。创建一个名称为 `mathDemo.c` 的文件，并将这些代码复制粘贴至其中：

```
#include <mymath.h>
#include <stdio.h>
#include <stdlib.h>

int main()
{
  int x, y;
  printf("Enter two numbers\n");
  scanf("%d%d",&x,&y);

  printf("\n%d + %d = %d", x, y, add(x, y));
  printf("\n%d - %d = %d", x, y, sub(x, y));
  printf("\n%d * %d = %d", x, y, mult(x, y));

  if(y==0){
    printf("\nDenominator is zero so can't perform division\n");
      exit(0);
  }else{
      printf("\n%d / %d = %d\n", x, y, divi(x, y));
      return 0;
  }
}

```

注意：第一行是一个 `include` 语句，通过名称来引用你自己的 `libmymath` 库。要使用一个共享库，你必须已经安装了它，如果你没有安装你将要使用的库，那么当你的可执行文件在运行并搜索其包含的库时，将找不到该共享库。如果你需要在不安装库到已知目录的情况下编译代码，这里有 [一些方法可以覆盖默认设置](https://opensource.com/article/22/5/compile-code-ldlibrarypath)。不过，对于一般使用来说，我们希望库存在于已知的位置，因此，这就是我在这里演示的东西。

复制文件 `libmymath.so` 到一个标准的系统目录，例如：`/usr/lib64`， 然后运行 `ldconfig` 。`ldconfig` 命令创建所需的链接，并缓存到标准库目录中发现的最新共享库。

```
$ sudo cp libmymath.so /usr/lib64/
$ sudo ldconfig

```

### 编译应用程序

从你的应用程序源文件代码（`mathDemo.c`）中创建一个名称为 `mathDemo.o` 的目标文件：

```
$ gcc -I . -c mathDemo.c

```

`-I` 选项告诉 GCC 来在其后所列出的目录中搜索头文件（在这个示例中是 `mymath.h`）。在这个示例中，你指定的是当前目录，通过一个单点（`.`）来表示。创建一个可执行文件，使用 `-l` 选项来通过名称来引用你的共享数学库：

```
$ gcc -o mathDynamic mathDemo.o -lmymath

```

GCC 会找到 `libmymath.so` ，因为它存在于一个默认的系统库目录中。使用 `ldd` 来查证所使用的共享库：

```
$ ldd mathDemo
    linux-vdso.so.1 (0x00007fffe6a30000)
    libmymath.so => /usr/lib64/libmymath.so (0x00007fe4d4d33000)
    libc.so.6 => /lib64/libc.so.6 (0x00007fe4d4b29000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fe4d4d4e000)

```

看看 `mathDemo` 可执行文件的大小：

```
$ du ./mathDynamic
24   ./mathDynamic

```

当然，它是一个小的应用程序，它所占用的磁盘空间量也反映了这一点。相比之下，相同代码的一个静态链接版本（正如你将在我后期的文章所看到的一样）是 932K !

```
$ ./mathDynamic
Enter two numbers
25
5

25 + 5 = 30
25 - 5 = 20
25 * 5 = 125
25 / 5 = 5

```

你可以使用 `file` 命令来查证它是动态链接的：

```
$ file ./mathDynamic
./mathDynamic: ELF 64-bit LSB executable, x86-64,
dynamically linked,
interpreter /lib64/ld-linux-x86-64.so.2,
with debug_info, not stripped

```

成功！

### 动态链接

因为链接发生在运行时，所以，使用一个共享库会产生一个轻量型的可执行文件。因为它在运行时解析引用，所以它会花费更多的执行时间。不过，因为在日常使用的 Linux 系统上绝大多数的命令是动态链接的，并且在现代硬件上，所能节省的时间是可以忽略不计的。对开发者和用户来说，它的固有模块性是一种强大的功能。

在这篇文章中，我描述了如何创建动态库，并将其链接到一个最终可执行文件。在我的下一篇文章中，我将使用相同的源文件代码来创建一个静态链接的可执行文件。

---

via: <https://opensource.com/article/22/5/dynamic-linking-modular-libraries-linux>

作者：[Jayashree Huttanagoudar](https://opensource.com/users/jayashree-huttanagoudar) 选题：[lkxed](https://github.com/lkxed) 译者：[robsean](https://github.com/robsean) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #693 俄罗斯的 Debian 衍生发行版的开发商计划上市

Summary: • 俄罗斯的 Debian 衍生发行版的开发商计划上市 • KDE Plasma 5.26 有望使用 C++20 进行开发 • RISC-V 仅用 12 年达成百亿核心里程碑

真要能成 朝鲜的红星(Red Star)早就家喻户晓了，毕竟在闭门造系统方面领先十年。

社区版系统搞好了也不错啊

来自223.104.41.60的 Chrome Mobile 100.0|Android 12 用户

![](/data/attachment/album/202207/10/200421lq00lsbrzyrss6f5.jpg)

![](/data/attachment/album/202207/10/200429cbcjw77qrrrl1za8.jpg)

### 俄罗斯的 Debian 衍生发行版的开发商计划上市

来自俄罗斯的 Astra Linux 是 Debian 的下游发行版，它已经存在了一些年，除了 x86、Arm 等 CPU 架构外，它还支持 MIPS 架构。它是由 RusBITech 开发的，是专门为俄罗斯军队设计的。微软已经阻止了 Windows 在俄罗斯的使用，这似乎大大有助于推动替代操作系统的采用。路透社报道说，RosBITech 正计划在莫斯科证券交易所上市，估值约折合为 2.6 亿美元。

>
> **[消息来源：The Register](https://www.theregister.com/2022/07/09/russian_debianderivative_vendor_plans_ipo/)**
>
>
>

>
> 老王点评：我觉得他们比较谦虚，要是搞个根社区可能估值更高呢。
>
>
>

![](/data/attachment/album/202207/10/200438rw46y6n64agm0336.jpg)

### KDE Plasma 5.26 有望使用 C++20 进行开发

在即将到来的 KDE Plasma 5.26 桌面环境中，KDE 开发者正考虑使用 C++20 语言开发后续功能，尤其是使用 C++ 协同例程支持特性。随着时间的推移，这种较新的 C++ 语言也会用于其他 KDE 组件。将 C++ 要求提升到 C++20 意味着将 KDE 编译器要求提高到 GCC 10 或 Clang 11，而这些版本的编译器已经稳定发布两年了。

>
> **[消息来源：Phoronix](https://www.phoronix.com/scan.php?page=news_item&px=KDE-Plasma-5.26-CPP20)**
>
>
>

>
> 老王点评：看来最近各个开源项目都在逐渐迁移到新的语言标准和新的编译器了，这种稳健而进步的态度是开源的生命力。
>
>
>

![](/data/attachment/album/202207/10/200452dmennn82wxb6wn8b.jpg)

### RISC-V 仅用 12 年达成百亿核心里程碑

在近日召开的 Embedded World 大会上，RISC-V 国际的 CEO 宣布目前 RISC-V 市场上的核心数量已经突破 100 亿。CEO 认为开放标准是关键，“Linux 在为软件所做的事情，和我们为硬件所做的事情有异曲同工之妙。”RISC-V 是一种开放标准指令集架构（ISA），根据开源许可提供。据悉，ARM 架构经过 17 年，在 2008 年实现了这个里程碑。而 RISC-V 只用了 12 年就完成了这一目标。

>
> **[消息来源：WCCF Tech](https://wccftech.com/x86-arm-rival-risc-v-architecture-ships-10-billion-cores/)**
>
>
>

>
> 老王点评：看来 RISC-V 真能复制 Linux 在软件方面的成功啊。
>
>
>


修复 Ubuntu 中的 “cannot find signatures with metadata for snap” 错误

Summary: 这里其实不涉及签名。

![](/data/attachment/album/202207/11/112312l4y0jf3gag8sam4g.jpg)

前几天我试图安装 [massCode](https://masscode.io/) 应用。对于安装，它提供了一个 Snap 文件以供下载。

当我尝试从 Snap 文件安装应用程序时：

```
sudo snap install snap_file

```

它给了我以下错误：

```
error: cannot find signatures with metadata for snap "masscode_2.6.1_amd64.snap"

```

![cannot find signature with metadata for snap](/data/attachment/album/202207/11/112314us6tcw6hizwmqtcr.png)

这很奇怪。[在 Ubuntu 中添加外部仓库](https://itsfoss.com/adding-external-repositories-ubuntu/) 时，你必须添加 GPG 密钥。但是这里的开发人员没有提供这样的东西。

“修复”简单易行。让我给你解释一下。

### 处理 “cannot find signatures with metadata for snap” 错误

这里其实不涉及签名。

发生的情况是你从第三方下载了 Snap 安装程序。 Ubuntu 中的 Snap 机制希望你从官方 Snap 商店获取 Snap 包。

由于它不是来自 Snap 商店，因此你会看到 “cannot find signatures with metadata for snap” 的错误消息。与大多数错误消息一样，这个错误消息不是描述性的。

那么，这里的解决方案是什么？

任何未通过 Snap 商店分发的 Snap 包都必须使用 `--dangerous` 选项进行安装。这就是规则。

```
sudo snap install --dangerous path_to_snap_file

```

这样，你告诉 Snap 包管理器显式安装 Snap 包。

在这里，我使用了这个选项并且能够成功地从它的 Snap 包中安装 massCode。

![installing third party snap packages](/data/attachment/album/202207/11/112314ntj5v3k1kjtr8g5w.png)

以这种方式安装 Snap 包有多“危险”？几乎和下载并 [安装 deb 格式安装包](https://itsfoss.com/install-deb-files-ubuntu/) 相同。

在我看来，如果你是从项目开发者的网站上下载 Snap 包，你已经在信任该项目了。在这种情况下，你可以使用 `--dangerous` 选项安装它。

当然，你应该首先搜索该软件包是否在 Snap 商店中可用：

```
snap find package_name

```

我希望这个快速的小技巧可以帮助你修复 Snap 错误。如果你有任何问题或建议，请告诉我。如果你想了解更多信息，请参阅 [这个使用 Snap 命令指南](https://itsfoss.com/use-snap-packages-ubuntu-16-04/)。

---

via: <https://itsfoss.com/snap-metadata-signature-error/>

作者：[Abhishek Prakash](https://itsfoss.com/author/abhishek/) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


10 大必备 Ubuntu 应用：优选篇

Summary: 本文列出了 2022 年可以用于不同情况的 10 个 Ubuntu 优选应用。

本文列出了 2022 年可以用于不同情况的 10 个 Ubuntu 优选应用。

![](/data/attachment/album/202207/11/180521obse00404niahjof.jpg)

>
> 本文列出了 2022 年可以用于不同情况的 10 个 Ubuntu 优选应用。
>
>
>

如果你计划永久的转移到 Linux 系统上，你应该会很高兴地知道在 Linux 上有数以千计的能与商业或付费应用媲美的应用。如果你是第一次使用 Linux 的 Windows 用户，你可能都没有听说过这些应用。

因此，在这一系列文章中，我们每一篇重点介绍一组 Ubuntu 应用，以增加 Linux 用户们的协作和认识。

这是 Ubuntu 应用程序系列的第二篇文章，如果你错过了其他部分，可以在这里阅读：

* [第一篇](https://www.debugpoint.com/essential-ubuntu-apps-2022-part-1/)

### 1、OBS Studio

第一个应用是著名的 [流媒体应用](https://www.debugpoint.com/2022/02/live-streaming-applications-linux-2022/) —— OBS Studio 。这是一款自由开源的应用，主要用于互联网上的流媒体应用。此外，你可以使用该应用创建一个复杂的流媒体项目，包括多源、覆盖式横幅等功能。

而且，由于它能够支持“<ruby> 实时消息传输协议 <rt>  Real-Time Messaging Protocol </rt></ruby>”（RTMP），你可以使用它在 Facebook、Youtube、Twitch 以及其他支持的平台上进行流式传输。

这个有十年历史的应用程序是 Linux 上最好的应用程序之一。

![OBS Studio](/data/attachment/album/202207/11/180525tfas2kz3pfp2spgz.jpg)

你可以在 [OBS Studio 官网](https://obsproject.com/) 了解更多的信息并下载，或者通过以下方式安装。

通过 PPA 在 Ubuntu 和相关发行版上安装：

```
sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt update
sudo apt install obs-studio

```

如果你希望通过 Flatpak 安装 ，首先 [为 Flatpak 设置系统](https://www.debugpoint.com/2018/07/how-to-install-flatpak-apps-ubuntu-linux/) 然后 [通过这个页面安装](https://flathub.org/apps/details/com.obsproject.Studio) 。

在 Arch Linux 或者其他 Linux 版本，访问 [此页面](https://obsproject.com/wiki/unofficial-linux-builds) 了解。

#### 2、Inkscape

这里介绍的第二款应用是流行的 Inkscape。 Inkscape 是一个自由开源的矢量图形编辑软件。它主要用于创建可缩放的矢量图形（SVG）。此外，它是一款一流的应用，可以使用基本的矢量形状如矩形、多边形、螺旋形等。你可以使用这些基本图形以及辅助工具（见下文）创作一流的绘图。

此外，只要你有足够的技能，就可以使用 Inkscape 创作出 [绝妙的动画](https://inkscape.org/gallery/) 。这是艺术家必备的一款应用。

![Sample Image – credit-Inkscape](/data/attachment/album/202207/11/180525dtnzmzua5wfbat5h.jpg)

![Inkscape](/data/attachment/album/202207/11/180526wuw83pvj3pssvhsd.png)

你可以在 [Inkscape 官网](https://inkscape.org/) 下载并了解更多相关信息，或者通过以下方式下载。

通过 PPA 在 Ubuntu 和相关发行版上安装：

```
sudo add-apt-repository ppa:inkscape.dev/stable
sudo apt update
sudo apt install inkscape

```

更多下载方式可以查看 [此页面](https://inkscape.org/release/) 。

#### 3、GIMP

GIMP 是 “<ruby> GNU 图像操作程序 <rt>  GNU Image Manipulation Program </rt></ruby>”的缩写，它是一个光栅图形编辑器，它有时候被视作 Linux 平台上的 [Photoshop 替代品](https://www.debugpoint.com/2018/09/3-best-free-photoshop-alternatives-ubuntu-linux/)（值得商榷）。这款拥有 20 年历史的应用适合于从基础到高级的图像编辑。此外，它支持图层、滤镜、装饰和其它对摄影工作必不可少的高级图像编辑功能。

![GIMP Image Editor](/data/attachment/album/202207/11/180527dmj44oz54pb2l6zq.png)

[官方主页](https://www.gimp.org/) 是你了解更多关于 GIMP 的知识的最好的途径，可以在官网下载或者通过以下方式安装。

我推荐的方式是通过 Flatpak 下载最新版本 GIMP 。你可以为 Flatpak 设置 [你的系统](https://www.debugpoint.com/2018/07/how-to-install-flatpak-apps-ubuntu-linux/) 然后 [通过该页面安装](https://flathub.org/repo/appstream/org.gimp.GIMP.flatpakref) 。

[该页面](https://www.gimp.org/downloads/) 提供了更多下载选项。

#### 4、Spotify

Spotify 是一家专业提供音频流媒体和媒体服务的提供商。它是最广泛的音乐流媒体服务之一，有超过 400 万的月活用户。

首先，你需要安装客户端才能获取 Spotify 流媒体服务。其次，如果你是移动用户，你可以通过 Google Play 商店或者苹果应用商店获取 Spotify 应用。

在 Linux 上安装桌面客户端后你可以收听上百万首歌曲。你可以为不同的 Linux 发行版通过不同的方式安装 Spotify 。

![Spotify Client in Ubuntu](/data/attachment/album/202207/11/180704ofooro6ovomtlxwo.jpg)

推荐你在 Ubuntu 或者其他 Linux 上使用 Snap 来安装，你可以通过以下命令安装：

```
snap install spotify

```

如果你偏爱原始的 deb 包，你可以通过以下命令安装：

```
curl -sS https://download.spotify.com/debian/pubkey_5E3C45D7B312C643.gpg | sudo apt-key add -echo "deb http://repository.spotify.com stable non-free" | sudo tee /etc/apt/sources.list.d/spotify.list

```

你也可以使用非官方 [Flatpak 包](https://flathub.org/apps/details/com.spotify.Client) 进行安装。

#### 5、SimpleScreenRecorder

SimpleScreenRecorder 可能是最好的开源截屏工具。该应用程序易于使用并提供了各种功能。并且，其独特的 3 步录制屏幕的方法完全不需要学习。此外，你可以选择整个屏幕、窗口或自定义形状来记录屏幕。

此外，你还可以指定音频/视频比特率、音频源选项和不同的输出选项。最后，它可以安装在所有 Linux 发行版中。

![SimpleScreenRecorder](/data/attachment/album/202207/11/180528bp5z0f0pg7gdt7fu.jpg)

[官方页面](https://www.maartenbaert.be/simplescreenrecorder/) 囊括了更多的 SimpleScreenRecorder 信息，你也可以使用如下方式下载。

在 Ubuntu 或其他相关发行版中使用下面的 PPA 命令安装该应用：

```
sudo apt-get updatesudo apt-get install simplescreenrecorder

```

访问 [此页](https://www.maartenbaert.be/simplescreenrecorder/#download) 获取更多下载版本。

#### 6、Calibre

Calibre 是一款可以在 Ubuntu、Linux Mint 以及其他 Linux 平台使用的自由开源的电子书库管理应用程序。它拥有书库管理、电子书格式转换、同步你的电子书设备以及其他独特的功能。你可以下载新闻和其他互联网上的文章，并可以使用 Calibre 转换成电子书格式。同时，它支持多种电子书格式进行管理。Calibre 是一款具有这些功能最好的电子书管理应用程序之一。

![Calibre](/data/attachment/album/202207/11/180529dsyvbvmyvcfb1qag.png)

[Calibre 主页](https://calibre-ebook.com/) 提供了很多文件以及指导手册，你也可以使用以下方式下载。

* [下载 Linux 版本](https://calibre-ebook.com/download_linux)
* [下载其他系统版本](https://calibre-ebook.com/download)

#### 7、Scribus

多年来，桌面出版已经发生了变化。现今，仍有一些桌面出版的应用程序和基于网页的服务。Scribus 是早期的一款自由开源的桌面出版应用程序，可以在 Linux 发行版和其他操作系统中使用。此外，它基于 Qt，并带来了吸引人的用户界面，让你可以马上投入学习。此外，初学者和专业人士都可以使用它来创建令人惊叹的 DTP 页面。

并且它仍然在积极开发中。

![Scribus](/data/attachment/album/202207/11/180723v6dfd0e3lljl3l0l.jpg)

你可以在 Scribus 的 [官方页面](https://www.scribus.net/) 了解更多信息并下载，或者通过以下方式安装。

Scribus 位于 Ubuntu 和其他相关发行版的主要存储库中。你可以运行以下命令进行安装：

```
sudo apt install scribus

```

[该页面](https://www.scribus.net/downloads/stable-branch/) 提供了其他下载选项。

#### 8、MyPaint

第八个应用程序是 MyPaint 。MyPaint 是一个自由开源的绘图程序，适用于数字艺术家。MyPaint 支持并可用于压感平板电脑和设备。其独特的无干扰设计可以让你专注于绘图而不是应用程序。此外，它还带来了真实铅笔和画笔的仿真，提供了各种画笔、颜色和图层。

![MyPaint 2.0.1](/data/attachment/album/202207/11/180734n2sup5zsytrscsuv.jpg)

浏览 MyPaint 的 [官方页面](http://mypaint.org/) 获取更多信息，可以使用以下方式下载。

推荐使用 Flatpak 安装 。你可以为 Flatpak 设置 [系统](https://www.debugpoint.com/2018/07/how-to-install-flatpak-apps-ubuntu-linux/) 然后 [通过该页面安装](https://flathub.org/repo/appstream/org.mypaint.MyPaint.flatpakref) 。

[该页面](http://mypaint.org/downloads/) 提供了其他下载选项。

#### 9、LibreOffice

如果有任何专业的办公套件可以和市场领导者微软 Office 相媲美，那一定是文档基金会的 LibreOffice 了 。它是所有 Linux 发行版的默认办公套件。它带有电子表格程序（Calc）、文字处理器（Writer）、演示文稿（Impress）和用来绘图的 Draw。此外，它还带来了一个数据库系统 （Base）和用来撰写数学公式的 Math。

除此之外， LibreOffice 提供两个版本。其一是社区版，用于社区和一般用途，并带有最新的功能和更新。第二是商务版，也称企业版，更稳定，更适合专业工作。

LibreOffice 办公套件已默认安装在 Ubuntu 上。

![LibreOffice 7.3.x Community Edition in Ubuntu 22.04 LTS Jammy Jellyfish](/data/attachment/album/202207/11/180743l7h69gthwpoz3php.jpg)

[LibreOffice 的官方文档](https://help.libreoffice.org/latest/index.html) 很庞大，你可以通过各种方式浏览它们，包括在它 [友好的论坛](https://ask.libreoffice.org/) 。你可以 [从此处](https://www.libreoffice.org/download/download/) 下载 LibreOffice。

如果你也想升级 LibreOffice ，你可以访问 [这里](https://www.debugpoint.com/2022/06/libreoffice-upgrade-update-latest/) 。

#### 10、Cawbird

如果你是重度 Twitter 用户，你或许应考虑一款桌面应用。 Cawbird 是一款 Linux 发行版上的 Twitter 桌面程序。它是 Corebird 应用（已停止维护）的复刻，Cawbird 带来了内嵌图片、视频预览、列表支持等。此外，它可以在 Twitter 上进行全文搜索，并支持多个 Twitter 帐户。

但是，由于 Twitter API 的限制，它只能每两分钟刷新一次，此外，还有一些其他限制，例如没有关注和取消关注的通知、阻止、静音和其他功能。Twitter 强加了这些限制。

![Cawbird](/data/attachment/album/202207/11/180530ehb1kss0zselrc1r.jpg)

最后，你可以通过 [该链接](https://software.opensuse.org//download.html?project=home%3AIBBoard%3Acawbird&package=cawbird) 在任何 Linux 发行版上下载 Cawbird 。

### 结语

这是 2022 年 5 篇系列的必备 Ubuntu 应用程序的第 2 篇。通过以上信息，我希望你可以选择一些应用供你的日常使用。在下面的评论框中告诉我你更喜欢此列表中的哪些应用程序。

最后，请继续关注本 Ubuntu 应用程序系列的第 3 部分。

---

via: <https://www.debugpoint.com/best-ubuntu-apps-2022-part2/>

作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[lkxed](https://github.com/lkxed) 译者：[Donkey](https://github.com/Donkey-Hao) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #694 马斯克称推特的 API 速率限制是他决定放弃收购的核心原因

Summary: • 马斯克称推特的 API 速率限制是他决定放弃收购的核心原因 • 许多老的 X.Org 组件在本周末有新的发布 • Linode 现在提供 Kali Linux 实例

![](/data/attachment/album/202207/11/212358vn6lruxoss67s763.jpg)

![](/data/attachment/album/202207/11/212431w04yn4yxkd7qy3gx.jpg)

### 马斯克称推特的 API 速率限制是他决定放弃收购的核心原因

马斯克曾多次公开表示，他希望知道有多少推特账户是由机器人运营的，因为他觉得可疑账户的数量影响了公司的价值。因此他寻求检测和处理虚假账户的方法。当推特最终提供了马斯克明确要求的 8 个开发者 API 的访问权时，这些 API 的速率限制低于推特向其最大企业客户提供的速率限制。马斯克称，这使得他们无法在任何合理的时间内完成数据分析。

>
> **[消息来源：The Register](https://www.theregister.com/2022/07/11/twitter_apis_elon_musk_acquisition/)**
>
>
>

>
> 老王点评：看看，对 API 访问提供速率限制有多严重。: D
>
>
>

![](/data/attachment/album/202207/11/212445gddqc9b4di7fjcvt.jpg)

### 许多老的 X.Org 组件在本周末有新的发布

上周末，Oracle 的长期 X.Org 贡献者 Alan Coopersmith 对各种旧的、很少维护的 X.Org 项目发布了许多新的更新。这些软件多年来没有任何更新，新的版本大多只是收集了过去几年中的一些随机修复。总的来说，这些更新并没有什么值得兴奋的改进。

>
> **[消息来源：Phoronix](https://www.phoronix.com/scan.php?page=news_item&px=Xorg-July-2022-Update)**
>
>
>

>
> 老王点评：这是觉得 X.org 快被放弃了才最后抢救一次？从另外一方面看，可见 X.org 社区有多冷清了。连随手收到的一些修复都懒得发布个新版本。
>
>
>

![](/data/attachment/album/202207/11/212520uet2trznuivtrriv.jpg)

### Linode 现在提供 Kali Linux 实例

Kali Linux 是一个为渗透测试或黑客而设计的 Linux 发行版。这个基于 Debian 的 Linux 是安全研究人员最喜欢的发行版。它现在可以在 Linode 云上使用了，你可以用它来测试和保护你的生产系统。Linode 云是第一个与 Kali Linux 合作的替代云提供商。

>
> **[消息来源：ZDNet](https://www.zdnet.com/article/akamai-linode-now-offers-kali-linux-instances/)**
>
>
>

>
> 老王点评：这是一个跑在公有云上的黑客套装？总觉得哪里不对。
>
>
>


谷歌编程之夏与 Zephyr RTOS 项目介绍

Summary: 今年，该项目向 18 岁或以上的任何人开放 —— 不仅限于学生和应届毕业生了。

今年，该项目向 18 岁或以上的任何人开放 —— 不仅限于学生和应届毕业生了。

![](/data/attachment/album/202207/12/102306u5vlj0ek5llhlkph.jpg)

**谷歌编程之夏**（GSoC）是一个谷歌举办的国际年度项目，每年都在夏季举办。当贡献者们参与并完成一个 [自由开源软件](https://en.wikipedia.org/wiki/Free_and_open-source_software) 的编码项目，[谷歌](https://en.wikipedia.org/wiki/Google) 就会给他们发放 [津贴](https://en.wikipedia.org/wiki/Stipend)。谷歌编程之夏于 2005 年推出，于每年 5 月至 8 月举行。项目创意由参与开源软件开发的主办组织提交，但学生也可以提出自己的项目创意。

今年，该项目向 18 岁或以上的任何人开放 —— 不仅限于学生和应届毕业生了。参与者通过编写软件获得报酬，其 [津贴](https://en.wikipedia.org/wiki/Stipend) 的金额取决于他们所在国家/地区的 [购买力平价](https://en.wikipedia.org/wiki/Purchasing_power_parity)。

**LCTT 译注：以往，这个活动只允许在校学生参与，今年条件放开，只需年龄 18+ 即可，对参与者的贡献时长要求也降低了，尽可能地让更多人参与进来。不过，今年的报名通道在 4 月 19 日就截止了，大家有兴趣的话明年可以关注一下。**

这也是 Zephyr 项目第一次作为 Linux 基金会的项目，参与到谷歌编程之夏中。让我们一起欢迎这些贡献者及其项目吧！

### 项目一：基于 Zephyr 的 Arduino 模块

1 个贡献者（350 小时）。

[Arduino](https://www.arduino.cc/) 是一个流行的框架，它为嵌入式设备编程提供了一个简化的接口。最近，Arduino 采用 mbed OS 作为其一些新设备的基础 RTOS。通过这项工作，他们将 [Arduino Core](https://github.com/arduino/ArduinoCore-API) 作为独立的抽象层，从 [Arduino Core for mbed](https://github.com/arduino/ArduinoCore-mbed) 中分离出来。这为在其他操作系统上利用 Arduino Core 开辟了可能性。

该项目的想法就是创建一个利用 Arduino Core 的 Zephyr 模块，以便开发人员在与 Arduino 兼容的设备上使用 Arduino 框架时，可以使用 Zephyr 作为底层操作系统。对用户的好处包括：

* 可以访问 Arduino API 以及高级 Zephyr 功能
* 得益于 Zephyrs 的设备支持，用户可以选择标准 Arduino 生态系统更广泛的设备
* 能够重复使用 Arduino 工具，如 Arduino IDE 和丰富的库

Arduino Core 使用 LGPL 许可证，Zephyr 使用 Apache 2 许可证。这意味着该项目的开发很可能需要脱离主分支，并在单独的仓库中进行，以保持代码和许可证分离。有关这方面的历史讨论，请参阅 [#22247](https://github.com/zephyrproject-rtos/zephyr/issues/22247)，有关 Arduino 核心架构之前的早期尝试，请参阅 [soburi/arduino-on-zephyr](https://github.com/soburi/arduino-on-zephyr)。

**贡献者的任务是：**

* 实现一个基于 Arduino Core 的准系统模块，可以为任何目标编译（不具备功能性，可能在 QEMU 中）
* 基于 Zephyr，使用 Arduino API 实现一个通用外围设备，例如 [Serial](https://www.arduino.cc/reference/en/language/functions/communication/serial/)
* 以一个物理板为目标，例如 Arduino Zero

**导师：**

[Jonathan Beri](https://www.linkedin.com/in/jonathanberi/) – Golioth 和 Zephyr TSC 的首席执行官 [Alvaro Viebrantz](https://www.linkedin.com/in/alvaro-viebrantz-55119048/) – Golioth 和 Google GDE 的创始工程师

**代码许可证：** LGPL

**贡献者详细信息：**

* 姓名：Dhruva Gole
* 项目博客：<https://dhruvag2000.github.io/Blog-GSoC22/>
* 项目海报：（题图）

**关于贡献者：**

![](/data/attachment/album/202207/12/102234y0kdkkki9j83nk99.jpg)

Dhruva 是一名电气工程专业的本科生。他的兴趣广泛，从嵌入式软件开发到硬件设计，在 SBC、微控制器和嵌入式 Linux 平台方面拥有丰富的工作经验。

### 项目二：Zephyr 的 Apache Thrift 模块

一个贡献者（350 小时）。

[Apache Thrift](https://github.com/apache/thrift) 是一个 [IDL](https://en.wikipedia.org/wiki/Interface_description_language) 规范、[RPC](https://en.wikipedia.org/wiki/Remote_procedure_call) 框架和代码生成器，它抽象出传输和协议细节，让开发者专注于应用逻辑。它适用于所有主流操作系统，支持超过 27 种编程语言、7 种协议和 6 种底层传输方式。最初，它于 [2007 年在 Facebook 开发](https://thrift.apache.org/static/files/thrift-20070401.pdf)，随后与 Apache 软件基金会共享。

![](/data/attachment/album/202207/12/102235wxg17ohiw8wko1kb.png)

![](/data/attachment/album/202207/12/102235ls9vxvcxsxrrr6b9.png)

在 Zephyr RTOS 中支持 Thrift 将使社区受益匪浅。它将带来新的软件和硬件技术、新产品以及云集成的其他方式。 Thrift 也可以用于几乎任何传输，因此，它是 Zephyr 支持的许多不同物理通信层的自然选择。该项目的想法是使概念验证 [Thrift for Zephyr 模块](https://github.com/cfriedt/thrift-for-zephyr) 形成以供上游使用。为此，贡献者必须：

* 对 Thrift 功能（协议、传输）执行额外的集成
* 使用 [supported board](https://docs.zephyrproject.org/latest/boards/index.html) 或 [Qemu](https://docs.zephyrproject.org/latest/guides/networking/qemu_user_setup.html) 编写其他示例应用程序
* 使用 [Zephyr 测试框架](https://docs.zephyrproject.org/latest/guides/test/ztest.html) 编写其他测试并生成覆盖率报告
* 确保模块遵循适当的 [编码指南](https://docs.zephyrproject.org/latest/contribute/coding_guidelines/index.html) 并满足 [模块要求](https://docs.zephyrproject.org/latest/guides/modules.html)
* 将任何必要的改进贡献回 Apache Thrift 项目
* 将任何必要的改进贡献回 Zephyr 项目

**导师：**

* [Christopher Friedt](https://www.linkedin.com/in/christopher-friedt/) – Meta 的 SWE / ASIC FW 和 Zephyr TSC 成员
* [Stephanos Ioannidis](https://www.linkedin.com/in/stephanosio/) – Zephyr CXX 子系统维护者

**代码许可证：** Apache 2.0

**贡献者详细信息：**

* 姓名：Young

**关于贡献者：** Young 是一名通信工程专业的学生，他将攻读计算机工程硕士学位。他兴趣广泛，从前端开发到硬件设计，在 Web、IoT 和嵌入式平台方面拥有丰富的工作经验。2021 年他设计的一款搭载 RISC-V 64 处理器的低成本单板机被多家极客媒体报道。

本文 [Google Summer of Code + Zephyr RTOS](https://www.linuxfoundation.org/blog/google-summer-of-code-zephyr-rtos/) 首发于 [Linux 基金会](https://www.linuxfoundation.org/)。

---

via: <https://www.linux.com/news/google-summer-of-code-zephyr-rtos/>

作者：[The Linux Foundation](https://www.linuxfoundation.org/blog/google-summer-of-code-zephyr-rtos/) 选题：[lkxed](https://github.com/lkxed) 译者：[lkxed](https://github.com/lkxed) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


Linux 上静态链接库工作原理

Summary: 学习如何用静态链接库将多个 C 目标文件结合到一个单个的可执行文件之中。

学习如何用静态链接库将多个 C 目标文件结合到一个单个的可执行文件之中。

![](/data/attachment/album/202207/12/120441y0q5a5abfyjyy7ug.jpg)

>
> 学习如何用静态链接库将多个 C 目标文件结合到一个单个的可执行文件之中。
>
>
>

使用 C 编写的应用程序时，通常有多个源码文件，但最终你需要编译成单个的可执行文件。

你可以通过两种方式来完成这项工作：通过创建一个 <ruby> 静态 <rt>  static </rt></ruby> 库 或 一个 <ruby> 动态 <rt>  dynamic </rt></ruby> 库（也被称为 <ruby> 共享 <rt>  shared </rt></ruby> 库）。从创建和链接的方式来看，它们是两种不同类型的库。选择使用哪种方式取决于你的的具体场景。

在 [上一篇文章](/article-14813-1.html) 中，我演示了如何创建一个动态链接的可执行文件，这是一种更通用的方法。在这篇文章中，我将说明如何创建一个静态链接的可执行文件。

### 使用静态库链接器

<ruby> 链接器 <rt>  linker </rt></ruby>是一个命令，它将一个程序的多个部分结合在一起，并为它们重新组织内存分配。

链接器的功能包括：

* 整合一个程序的所有的部分
* 计算出一个新的内存组织结构，以便所有的部分组合在一起
* 恢复内存地址，以便程序可以在新的内存组织结构下运行
* 解析符号引用

链接器通过这些功能，创建了一个名称为可执行文件的一个可运行程序。

静态库是通过复制一个程序中的所有依赖库模块到最终的可执行镜像来创建的。链接器将链接静态库作为编译过程的最后一步。可执行文件是通过解析外部引用、将库例程与程序代码结合在一起来创建的。

### 创建目标文件

这里是一个静态库的示例以及其链接过程。首先，创建带有这些函数识别标志的头文件 `mymath.h` :

```
int add(int a, int b);
int sub(int a, int b);
int mult(int a, int b);
int divi(int a, int b);

```

使用这些函数定义来创建 `add.c` 、`sub.c` 、`mult.c` 和 `divi.c` 文件。我将把所有的代码都放置到一个代码块中，请将其分为四个文件，如注释所示：

```
// add.c
int add(int a, int b){
return (a+b);
}

//sub.c
int sub(int a, int b){
return (a-b);
}

//mult.c
int mult(int a, int b){
return (a*b);
}

//divi.c
int divi(int a, int b){
return (a/b);
}

```

现在，使用 GCC 来生成目标文件 `add.o` 、`sub.o` 、`mult.o` 和 `divi.o`：

（LCTT 校注：关于“<ruby> 目标文件 <rt>  object file </rt></ruby>”，有时候也被称作“对象文件”，对此，存在一些译法混乱情形，称之为“目标文件”的译法比较流行，本文采用此译法。）

```
$ gcc -c add.c sub.c mult.c divi.c

```

`-c` 选项跳过链接步骤，而只创建目标文件。

创建一个名称为 `libmymath.a` 的静态库，接下来，移除目标文件，因为它们不再被需要。（注意，使用一个 `trash` 命令比使用一个 `rm` 命令更安全。）

```
$ ar rs libmymath.a add.o sub.o mult.o divi.o
$ trash *.o
$ ls
add.c  divi.c  libmymath.a  mult.c  mymath.h  sub.c

```

现在，你已经创建了一个名称为 `libmymath` 的简单数学示例库，你可以在 C 代码中使用它。当然，也有非常复杂的 C 库，这就是他们这些开发者来生成最终产品的工艺流程，你和我可以安装这些库并在 C 代码中使用。

接下来，在一些自定义代码中使用你的数学库，然后链接它。

### 创建一个静态链接的应用程序

假设你已经为数学运算编写了一个命令。创建一个名称为 `mathDemo.c` 的文件，并将这些代码复制粘贴至其中：

```
#include <mymath.h>
#include <stdio.h>
#include <stdlib.h>

int main()
{
  int x, y;
  printf("Enter two numbers\n");
  scanf("%d%d",&x,&y);

  printf("\n%d + %d = %d", x, y, add(x, y));
  printf("\n%d - %d = %d", x, y, sub(x, y));
  printf("\n%d * %d = %d", x, y, mult(x, y));

  if(y==0){
    printf("\nDenominator is zero so can't perform division\n");
      exit(0);
  }else{
      printf("\n%d / %d = %d\n", x, y, divi(x, y));
      return 0;
  }
}

```

注意：第一行是一个 `include` 语句，通过名称来引用你自己的 `libmymath` 库。

针对 `mathDemo.c` 创建一个名称为 `mathDemo.o` 的对象文件:

```
$ gcc -I . -c mathDemo.c

```

`-I` 选项告诉 GCC 搜索在其后列出的头文件。在这个实例中，你通过单个点（`.`）来指定当前目录。

链接 `mathDemo.o` 和 `libmymath.a` 来生成最终的可执行文件。这里有两种方法来向 GCC 告知这一点。

你可以指向文件：

```
$ gcc -static -o mathDemo mathDemo.o libmymath.a

```

或者，你可以具体指定库的路径及名称：

```
$ gcc -static -o mathDemo -L . mathDemo.o -lmymath

```

在后面的那个示例中，`-lmymath` 选项告诉链接器来链接对象文件 `mathDemo.o` 和对象文件 `libmymath.a` 来生成最终的可执行文件。`-L` 选项指示链接器在下面的参数中查找库（类似于你使用 `-I` 所做的工作）。

### 分析结果

使用 `file` 命令来验证它是静态链接的：

```
$ file mathDemo
mathDemo: ELF 64-bit LSB executable, x86-64...
statically linked, with debug_info, not stripped

```

使用 `ldd` 命令，你将会看到该可执行文件不是动态链接的：

```
$ ldd ./mathDemo
        not a dynamic executable

```

你也可以查看 `mathDemo` 可执行文件的大小：

```
$ du -h ./mathDemo
932K    ./mathDemo

```

在我 [前一篇文章](/article-14813-1.html) 的示例中，动态链接的可执行文件只占有 24K 大小。

运行该命令来看看它的工作内容：

```
$ ./mathDemo
Enter two numbers
10
5

10 + 5 = 15
10 - 5 = 5
10 * 5 = 50
10 / 5 = 2

```

看起来令人满意！

### 何时使用静态链接

动态链接可执行文件通常优于静态链接可执行文件，因为动态链接会保持应用程序的组件模块化。假如一个库接收到一次关键安全更新，那么它可以很容易地修补，因为它存在于应用程序的外部。

当你使用静态链接时，库的代码会“隐藏”在你创建的可执行文件之中，意味着在库每次更新时（相信我，你会有更好的东西），仅有的一种修补方法是重新编译和发布一个新的可执行文件。

不过，如果一个库的代码，要么存在于它正在使用的具有相同代码的可执行文件中，要么存在于不会接收到任何更新的专用嵌入式设备中，那么静态连接将是一种可接受的选项。

---

via: <https://opensource.com/article/22/6/static-linking-linux>

作者：[Jayashree Huttanagoudar](https://opensource.com/users/jayashree-huttanagoudar) 选题：[lkxed](https://github.com/lkxed) 译者：[robsean](https://github.com/robsean) 校对：[turbokernel](https://github.com/turbokernel)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


Ubuntu 22.04 LTS 是目前最安全的版本的七大原因

我不信。

>
> Ubuntu 22.04 LTS 是迄今为止最好的 Ubuntu 版本之一。是什么让它如此安全？
>
>
>

![ubuntu 22.04](/data/attachment/album/202207/12/165653xr4n3qyy3zsz1egl.jpg)

早在今年 4 月就发布了的 [Ubuntu 22.04 LTS](https://news.itsfoss.com/ubuntu-22-04-release/)，是迄今为止最安全的 Ubuntu 版本。

其安全更新的延长支持、新的硬件支持和其他林林总总的改进，使它在安全方面远远超过了之前的所有版本。

但它是如何做到这一点的呢？还有，是什么让这个版本与以前的版本不同的呢？

嗯，有几个原因，Canonical 在一篇新的博客文章中为我们重点指出了这些。在这里，让我总结一下，以帮助你了解更多。

### 是什么让 Ubuntu 22.04 LTS 变得安全？

在这个版本中，Ubuntu 团队似乎投入了大量的工作来确保其长期的安全性和可靠性。尽管多年来他们以难以想象的方式做到了这一点，但我将强调其中的几件事：

* 改进的硬件安全措施支持
* 更新了安全包
* 私有家目录
* OpenSSL 3
* GCC 11
* nftables 作为默认的防火墙后端
* Linux 内核改进

#### 1、改进的硬件安全措施支持

![](/data/attachment/album/202207/12/165655tfvfmhsh1flma7ff.jpg)

随着英特尔、AMD 和 ARM 的 CPU/SoC 开始推出更多的安全措施，拥有足够的软件来让这些功能发挥作用就变得越来越重要。

截至目前，Ubuntu 22.04 支持三种主要的硬件安全措施。

英特尔的 “<ruby> 软件保护扩展 <rt>  Software Guard eXtensions </rt></ruby>”（SGX）提供了一个安全独立的区域来进行敏感计算。例如，理想情况下，密码处理将在这里进行，因为它确保没有其他应用程序可以访问这些数据。

还有 AMD 的“<ruby> 安全加密虚拟化 <rt>  Secure Encrypted Virtualization </rt></ruby>”（SEV）。这项技术旨在防止主机操作系统干扰正在运行的虚拟机。

尽管这与桌面用户的相关性不如其他技术，但要知道，很多数据中心的基础设施都依赖虚拟机来实现应用的容器化。总的来说，此类针对硬件的安全措施应该会加强对桌面和服务器用户的保护。

#### 2、Linux 内核安全的改进

随着 Ubuntu 的每一次发布，Linux 内核都会得到升级，提供了许多有用的功能和支持。

但是，这一次，Canonical 推出了针对不同的平台的优化内核版本。对于 OEM 认证的桌面设备，它提供了 [Linux 内核 5.17](https://news.itsfoss.com/linux-kernel-5-17-release/)。

而对于所有的桌面和服务器用户，可以使用 [Linux 内核 5.15 LTS](https://news.itsfoss.com/linux-kernel-5-15-release/)。

不仅仅限于这个概念，在 [博文](https://ubuntu.com/blog/whats-new-in-security-for-ubuntu-22-04-lts) 中提到的一些基本内核安全增强措施包括：

* 支持 [核心调度](https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/core-scheduling.html)，它允许进程控制哪些线程可以在 SMT 同级之间调度，以便让它们保护敏感信息，而不泄露给系统中其他不受信任的进程。
* 内核堆栈随机化提供了一种加固措施，以挫败希望在内核内进行内存破坏攻击的攻击者。
* BPF 子系统也有一些安全方面的增强，包括默认情况下限制为只有特权进程可以使用，以及对签名的 BPF 程序的初步支持。
* 新的 Landlock Linux 安全模块的加入为应用程序沙箱提供了另一种机制，可以通过 AppArmor 或 SELinux 与更传统的方式结合使用。

总之，所有这些改进使 Ubuntu 22.04 LTS 成为开发者、用户和系统管理员的更安全的选择。

#### 3、更新的安全软件包

![](/data/attachment/album/202207/12/165657z97ft5hzppmesthd.png)

让我们从技术性的安全概念退后一步，回到每个 Ubuntu 用户都应该已经熟悉的概念：软件包。每一个新的 Ubuntu 版本，软件库中的大多数软件包都会更新，以带来更好的安全性和新功能。

尽管对于 Ubuntu 22.04 来说，这并不完全是新的东西，但这确实包括了很多安全方面的更新。这方面的例子包括 openSSL 3 和 GCC 11。

#### 4、OpenSSL 3

OpenSSL 是所有安全通信的支柱。

考虑到包括 MD2 和 DES 在内的许多传统算法已经被废弃并默认禁用，OpenSSL 3 作为一个重大的升级特别值得关注。

因此，除非用户特别想使用不太安全的算法，否则你将在默认情况下获得最好的安全性。

#### 5、GCC 11

另一方面，GCC 是许多开发者用来将他们的代码变成可以在你的计算机上运行的程序的编译器。

它带来了许多改进，但有一项特别显著地提高了安全性。静态分析得到了极大的加强，使开发人员能够更快地发现软件的漏洞，在第一步就防止有漏洞的代码被发布。

这可能不会直接影响到用户，许多开发人员使用 Ubuntu 来开发他们的应用程序。因此，你下载的很多程序，即使在非 Ubuntu 系统上，也应该比以前更安全。

#### 6、私有家目录

![](/data/attachment/album/202207/12/165659yl07fdqqetvltkkt.png)

作为一个传统上以桌面为重点的发行版，Ubuntu 经常选择方便而不是安全。然而，随着他们越来越努力地推动云计算的采用，这种情况必须改变。

以前，任何有权限进入电脑的人都可以打开并查看任何用户的家目录。然而，你可以想象，这给非桌面用户带来了很多问题。因此，需要改变为私有家目录。

对于多用户系统来说，这可能稍显不方便，但这可以相对容易地改变。而且，对于那些不太熟悉技术的人来说，他们不需要做任何事情就可以得到更好的安全保障。

#### 7、nftables 作为默认防火墙后端

![](/data/attachment/album/202207/12/165704cpmm8wruzbbz1fwf.jpg)

25 年来，防火墙一直是将你的计算机与更广泛的互联网隔离开来的一个关键部分。这些年来，Linux 发行版通常使用两种不同的防火墙解决方案：iptables 和 xtables。

然而，近些年来，一种不同的解决方案进入了人们的视野：nftables。它提供了显著的性能和灵活性的改进，使网络管理员能够更好地保护你的设备。

### 总结

毋庸置疑，Ubuntu 22.04 LTS 做了很多不错的升级。不仅仅是用户体验，它在安全方面也是一个重大的飞跃。

当然，还有更多，但上面提到的改进是很好的成就！

关于更多的技术细节，你可以查看这篇 [Ubuntu 的官方博客文章](https://ubuntu.com/blog/whats-new-in-security-for-ubuntu-22-04-lts)。

---

via: <https://news.itsfoss.com/reasons-ubuntu-22-04-secure/>

作者：[Jacob Crume](https://news.itsfoss.com/author/jacob/) 选题：[lkxed](https://github.com/lkxed) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #695 越来越多的网站不支持 Firefox

Summary: • 越来越多的网站不支持 Firefox • 科学家找到了一类量子算法可以解决的新问题 • 过去十年的本田车型都可能受到网络攻击

Chrome内核的浏览器迟早会从屠龙英雄变成那头恶龙。

只用Safari. Chrome太笨重了！

只用Safari. Chrome太笨重了！

![](/data/attachment/album/202207/12/202507enawybvwe5jeemq8.jpg)

![](/data/attachment/album/202207/12/202518jma8z85hasm88i1f.jpg)

### 越来越多的网站不支持 Firefox

日本 NHK 宣布在其视频平台 NHK+ 上将不支持 Firefox，而推荐用户使用 Chrome、Edge 或 Safari 的最新版本。苹果的商业网站 [business.apple.com](http://business.apple.com/) 也把 Firefox 排除在支持范围之外，使用任何版本的 Firefox 打开该网站就会显示“你的浏览器不受支持”，它也推荐用户使用 Firefox 外的浏览器。

>
> **[消息来源：Solidot](https://www.solidot.org/story?sid=72096)**
>
>
>

>
> 老王点评：虽然 Firefox 的标准遵从性还不错，但是随着 Chrome 的市场占据了大部分份额，网站也会越来越依赖 Chrome 独有的一些特性。Firefox 的日子会越来越难过。
>
>
>

![](/data/attachment/album/202207/12/202529lvzs50cmljsdzvss.jpg)

### 科学家找到了一类量子算法可以解决的新问题

1994 年数学家 Peter Shor 想出了如何让量子计算机完成普通经典计算机无法做到的事情。原则上，一台基于量子规则的机器可有效地将大数分解为质因数，这对于经典计算机来说，这是一项非常困难的任务。但三十年来，科学家们仅在一个被称为 NP 的标准集中发现了一个单一的、狭窄的问题类别可以显著加速。今年四月，科学家们又发现了一类量子计算可以以指数级速度解决的问题：它涉及仅根据混乱的输出来计算复杂数学过程的输入。

>
> **[消息来源：Solidot](https://www.solidot.org/story?sid=72102)**
>
>
>

>
> 老王点评：目前看起来量子计算还只能用在很狭窄的领域，什么时候可以进行通用计算，或许带来的是颠覆性的变化，对这一天，我是又期盼，又恐惧。
>
>
>

![](/data/attachment/album/202207/12/202542n9tfkj8b6unfwnnu.jpg)

### 过去十年的本田车型都可能受到网络攻击

安全研究人员发布了他们使用手持无线电解锁和远程启动几辆本田汽车的视频，他们称，这是因为 2012 年至今 10 年间生产的许多本田汽车的无钥匙进入系统存在漏洞。这种攻击使用无线电设备记录来自钥匙扣的合法无线电信号，然后将其传送到汽车上。这被称为重放攻击。理论上，每个信号应该只起一次作用；当按下按钮解锁汽车时，车就会解锁并且这个信号不应该再次用于解锁。但安全研究人员发现，这种攻击之所以奏效是因为它能够重新同步汽车的计数器，使之可以接受旧的代码。但本田否认了这一漏洞。

>
> **[消息来源：The Drive](https://www.thedrive.com/news/i-tried-the-honda-keyfob-hack-on-my-own-car-it-totally-worked)**
>
>
>

>
> 老王点评：目前看起来汽车的电子钥匙其实挺危险的。
>
>
>


怀念 Firefox Send 吗？不妨试试 Internxt Send 吧

Firefox send 有一个开源的替代品，是从firefox fork出来的，可以自己架设

>
> Internxt 发布了一个新产品，它可以让你快速地将加密文件发送给任何人，同时保持你的隐私。嗯，我们只能希望它不会像 Firefox Send 那样关闭吧……
>
>
>

![Internxt](/data/attachment/album/202207/13/104548h6emtze8tjft9meq.jpg)

[Internxt](https://itsfoss.com/internxt-cloud-service/) 是一个相当新的开源加密云服务，旨在取代大型科技公司的产品。例如，你可以把它作为谷歌的相册和云端硬盘的替代品。

它免费提供 10 GB 的容量。所以，如果感兴趣的话，你可以注册个账号试一试。

最近，他们还新增了另一个产品 “Internxt Send”，作为 Firefox Send 的替代品，填补这个空缺。

唉，说到这里还挺遗憾的，Firefox Send 已停止服务了，不得不说它是一个很好的工具！

不过，[Internxt Send](https://send.internxt.com/) 让你可以像 Firefox Send 一样安全地发送/共享图像、视频、文档和其他文件。

### Internxt Send：一个安全的文件共享服务

![](/data/attachment/album/202207/13/104549a5jirw30mt6zq2b5.png)

我在 GitHub 上找不到 Internxt Send 的存储库，但我已经要求他们澄清了。

（LCTT 译注：虽然 Internxt 是在 GitHub 上开源的，但是 GitHub 上没有 Internxt Send 这个产品的存储库，产品的介绍里也没有声称它是开源的。）

正如你所期望的那样，你无需创建帐户即可将文件上传到 Internxt Send。

文件上传限制为 5 GB。而且，你不能以任何方式提高这个限制。

你可以选择文件，上传并生成共享链接。或者，你也可以直接向收件人发送电子邮件，那样的话，你需要在邮件里分享你的电子邮件地址。

![](/data/attachment/album/202207/13/104549ezim7zsaxs20bmlx.png)

有趣的是，它还允许你在这个电子邮件中添加自定义文本。

与 Firefox Send 不同的是，你无法修改文件共享链接的到期时间，或者是让它在多次下载后失效。默认情况下，链接会在 15 天后过期，你无法更改这个时间。嗯，这还挺扫兴的。

但是，对于那些正在苦苦等待一个加密的共享文件服务的人来说，这可能是一种替代方案。

*我认为有更多的 Firefox Send 替代品是件好事！你对 Internxt Send 有何看法？欢迎在下方评论区里和大家分享。*

---

via: <https://news.itsfoss.com/internxt-send/>

作者：[Ankush Das](https://news.itsfoss.com/author/ankush/) 选题：[lkxed](https://github.com/lkxed) 译者：[lkxed](https://github.com/lkxed) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


检查 Linux 磁盘使用情况

>
> du 和 ncdu 两个命令提供了相同信息的两种不同视图，便于我们跟踪存储在计算机上的内容。
>
>
>

![](/data/attachment/album/202207/13/111729faleyal2gmappykc.jpg)

无论你有多少存储空间，了解文件占用了多少磁盘空间都是一个重要的考虑事项。我的笔记本有一个相对较小的 250GB NVME 驱动器，大多数时候都没什么问题，但几年前我开始探索 Linux 上的游戏，情况变得有所不同，安装 Steam 和其他游戏使存储管理更加重要。

### du 命令

检查磁盘驱动器上剩余存储空间最简单的方法是 [du 命令](https://opensource.com/article/21/7/check-disk-space-linux-du)。它会估计文件空间使用情况，像其他所有 Linux 工具一样，`du` 非常强大，但学会如何根据你的特定需求使用它会很有帮助。我总是查阅手册页来掌握实用程序的用法。`du` 有几个选项，可以为你提供文件存储的最佳快照，以及它们在系统上消耗多少空间。

`du` 命令有很多选项，以下是一些常见的：

* `-a` - 包括文件夹和文件在内的存储信息
* `--apparent-size` - 打印自身大小而不是占用磁盘量
* `-h` - 人类可读的格式
* `-b` - 以字节为单位
* `-c` - 总计
* `-k` - 以块为单位
* `-m` - 以兆字节为单位的大小

务必查看 `du` 手册页获取完整帮助列表。

#### 显示所有文件

你可以选择的第一个选项是 `du -a`，它可以显示系统上所有文件及其存储目录的大小。这个命令让我知道了我的主目录中存储了 11555168 个字节。使用 `du -a` 可以快速递归地查看我的存储系统。如果我想要一个更有意义的数字，并且我想深入到目录中查看大文件的位置，该怎么办？

我认为在 `Downloads` 目录下有一些大文件，所以我输入 `du -a /home/don/Downloads` 来查看。

```
$ du -a ~/Downloads
4923    ./UNIX_Driver_5-0/UNIX Driver 50
4923    ./UNIX_Driver_5-0
20      ./epel-release-latest-9.noarch.rpm
12      ./rpmfusion-free-release-9.noarch.rpm
2256    ./PZO9297 000 Cover.pdf
8       ./pc.md
2644    ./geckodriver-v0.31.0-linux64.tar.gz
466468

```

最左边的数字是以字节为单位的文件大小。我想要一些对我更有帮助的东西，所以我将人类可读格式的选项添加到命令中，结果是 456M（兆字节），这对我来说是一种更有用的数字格式。

```
$ du -ah ~/Downloads
4.9M    ./UNIX_Driver_5-0/UNIX Driver 50
4.9M    ./UNIX_Driver_5-0
20K    ./epel-release-latest-9.noarch.rpm
12K    ./rpmfusion-free-release-9.noarch.rpm
2.2M    ./PZO9297 000 Cover.pdf
8.0K    ./pc.md
2.6M    ./geckodriver-v0.31.0-linux64.tar.gz
456M    .

```

与大多数 Linux 命令一样，你可以组合选项，要以人类可读的格式查看 `Downloads` 目录，使用 `du -ah ~/Downloads` 命令。

#### 总和

`-c` 选项在最后一行提供了磁盘使用总和。我可以使用 `du -ch /home/don` 来显示主目录中的每个文件和目录。这里有很多信息，我只想知道最后一行的信息，所以我将 `du` 命令通过管道传输给 `tail` 来显示最后几行。命令是 `du -ch /home/don | tail`。（LCTT 校注：可以使用 `tail -1` 来仅显示最后一行汇总行。）

![将 du 命令输出通过管道传输到 tail](/data/attachment/album/202207/13/111323rfen3w3mwcyw7xfe.png)

### ncdu 命令

对存储在驱动器上内容感兴趣的 Linux 用户，另一个选择是 [ncdu 命令](https://opensource.com/article/21/8/ncdu-check-free-disk-space-linux)，它代表 “NCurses 磁盘使用情况”。基于你的 Linux 发行版，你可能需要下载并安装它。

在 Linux Mint、Elementary、Pop\_OS! 或其它基于 Debian 的发行版上：

```
$ sudo apt install ncdu

```

在 Fedora、Mageia 或 CentOS 上：

```
$ sudo dnf install ncdu

```

在 Arch、Manjar 或者类似发行版上：

```
$ sudo pacman -S ncdu

```

安装后，你可以使用 `ncdu` 来分析你的文件系统。以下是在我的主目录中发出 `ncdu` 后的示例输出。`ncdu` 的手册页指出 “ncdu（NCurses Disk Usage）是众所周知的 `du` 基于 curses 的版本，它提供了一种快速查看哪些目录正在使用磁盘空间的方法。”

![du 命令输出](/data/attachment/album/202207/13/111323a22uo7k0tikoyskk.png)

我可以使用方向键上下导航，按下回车键进入目录。有趣的是，`du` 报告我的主目录中的总磁盘使用量为 12GB，而 `ncdu` 显示为 11GB。你可以在 `ncdu` 手册页中找到更多信息。

你可以将 `ncdu` 指向某个目录来探索特定目录。例如，`ncdu /home/don/Downloads`。

![ncdu 命令输出](/data/attachment/album/202207/13/111323ao1o56o6vl031nuv.png)

按 `?` 键显示帮助菜单。

![ncdu 帮助](/data/attachment/album/202207/13/111323jt3tff2ta4mtfquq.png)

### 总结

`du` 和 `ncdu` 两个命令提供了相同信息的两种不同视图，便于我们跟踪存储在计算机上的内容。

如果你不习惯使用终端，或者想寻找此类信息的另一种查看方式，可以看看 [GNOME 磁盘使用分析器](https://help.gnome.org/users/baobab/stable/)。如果你的系统上还没有它，你可以轻松安装和使用它。检查你的发行版是否有 baobab 开发的这个软件，如果你想试试，那就去安装它吧。

（文内图片来自于 Don Watkins, CC BY-SA 4.0）

---

via: <https://opensource.com/article/22/7/check-disk-usage-linux>

作者：[Don Watkins](https://opensource.com/users/don-watkins) 选题：[lkxed](https://github.com/lkxed) 译者：[MjSeven](https://github.com/MjSeven) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #696 微软仍计划默认屏蔽下载的 Office 文件中的宏

Summary: • 微软仍计划默认屏蔽下载的 Office 文件中的宏 • PyPI 将向关键项目赠送 4000 个安全密钥 • 美国企业领导人敦促加强计算机科学教育

![](/data/attachment/album/202207/13/140018xtetuegxtd8kry51.jpg)

![](/data/attachment/album/202207/13/140026awzin9infhiqpspr.jpg)

### 微软仍计划默认屏蔽下载的 Office 文件中的宏

多年来，黑客们经常用恶意的宏来攻击 Office 文件。微软原本计划要求 Office 用户在打开从互联网下载的 Office 文件时，通过在文件属性中专门勾选一个解禁选项来启用宏程序。之前计划在 6 月份实施。但微软在 6 月 30 日突然撤销了这一阻止。微软解释称，“根据用户的反馈，我们暂时回退了这一变化，同时我们做了一些额外的改变以提高可用性。”目前，Office 用户可以简单地在文件顶部的横幅上点击一个启用按钮。微软称，“这是一个临时的变化，我们完全致力于为所有用户进行默认的改变。”

>
> **[消息来源：The Verge](https://www.theverge.com/2022/7/11/23203554/microsoft-block-office-vba-macros-changes-temporary-statement)**
>
>
>

>
> 老王点评：宏给 Office 带来的好处不如它带来的问题更多，这一举措确实有助于微软提供更好的产品体验。
>
>
>

![](/data/attachment/album/202207/13/140055gipj7k9ibjzooodk.jpg)

### PyPI 将向关键项目赠送 4000 个安全密钥

PyPI 由 Python 软件基金会（PSF）管理，是 Python 开发人员获得第三方开发的开源包的主要仓库。这些库的安全影响到了整个 Python 生态的安全，PSF 现在强制要求“关键项目”的开发人员在未来几个月内使用双因素认证（2FA），这使得开发人员可以保护自己难于盗取凭证。任何在过去六个月里下载量排名前 1% 的项目将被视作关键项目，有超过 3800 个项目被评为“关键”，这涉及到 8241 个 PyPI 用户。作为 PSF 的赞助商，谷歌开源安全团队提供了 4000 个谷歌泰坦安全密钥，以分发给这些维护者。PyPI 数据显示，目前有 28336 个用户启用了 2FA，其中近 27000 个用户使用的是像“微软验证器”这样的 2FA 应用。

>
> **[消息来源：ZDNet](https://www.zdnet.com/article/python-programming-pypl-is-rolling-out-2fa-for-critical-projects-giving-away-4000-security-keys/)**
>
>
>

>
> 老王点评：虽然 2FA 密钥不能完全避免被盗取凭证，但是却可提供大部分保护。
>
>
>

![](/data/attachment/album/202207/13/140038why4ytkstwdrryss.jpg)

### 美国企业领导人敦促加强计算机科学教育

超过 500 名美国的商业、教育和非营利组织领导人发表了一封公开信，呼吁美国各州政府和教育负责人为全美的 K-12 学生提供更多的计算机科学教育。他们称，“美国在技术方面领先世界，但我们的高中生中只有 5% 学习计算机科学。这怎么能接受呢？……近三分之二的高技能移民是计算机科学家，每个州都是这种战略人才的进口商。美国有超过 70 万个开放的计算机职位，但每年只有 8 万名计算机科学毕业生。”

>
> **[消息来源：Geek Wire](https://www.geekwire.com/2022/hundreds-of-tech-business-and-nonprofit-leaders-urge-states-to-boost-computer-science-education/)**
>
>
>

>
> 老王点评：从这个风向标来看，学计算机还是挺有前景的，当然，我建议你留着国内发展。
>
>
>


当 AI 学会编程，程序员的未来真的只能写 Bug了嘛？

Summary: 只有一条路，做人工智能做不了的事情，掌握人工智能，让它为你所用。

ai现在能区分版权不

亚马逊新预览的可以区分，但是微软的这个还不支持。

只有一条路，做人工智能做不了的事情，掌握人工智能，让它为你所用。

![](/data/attachment/album/202207/14/110733hydct1tz2o0h5uaj.jpg)

二十多年前，我刚刚接触计算机时，那时候觉得编程真是一件神奇的事情，居然可以操作屏幕上神奇的字符！要说我自己的第一个编程“作品”，那可能是试图在 286 PC 的黑白显示器绘制一个钢琴键盘，并可以响应按键发出不同频率的蜂鸣声 —— 是的，那时候还没有声卡，只有开机时会“滴”一下的扬声器。虽然这个简陋的尝试并没有完成，但却给了我极大的乐趣，也开启了我的编程生涯。

### 从《代码大全》 到 StackOverflow 大师

后来，当我在北京找到第一份工作时，学会了 Perl 语言，编写了我的第一个 CGI 程序（互动网页），编程于是成为了我吃饭的本领。

上世纪末，互联网刚刚在国内兴起，人们编程时所能求助的外援，大多是各种语言手册、类库大全等书籍。这其中有一本著名的大部头被很多程序员置于案头，它就是《**代码大全**》，这本书里面提供了很多有用的、精妙的编程示例和技巧。往往在遇到编程难点时，程序员们可以“复制”书中的一些最佳实践来解决。

![](/data/attachment/album/202207/14/110838mg4i1v61wggd6g61.jpg)

随着互联网的普及，逐渐出现了 Stack Overflow 之类的编程类问答网站。程序员们惊喜的发现，原来很多困扰自己的编程难题都可以在网上找到答案，且点赞数较高的代码示例比自己写的还要好。于是乎，很多“程序员”变成了“谷歌程序员”/“百度程序员”，搜索、复制，然后粘贴就好了。以至于，StackOverflow 在某年愚人节的 [恶作剧](/article-13835-1.html) 说，它将限制对其网站的免费访问，除非人们购买“钥匙”：一个带有“打开 Stack Overflow”、“复制”和“粘贴”的按钮的设备，算是对这种直接复制、粘贴的做法表达了一种冷幽默。最有趣的是，居然有热心网友联合键盘定制厂商，真将这块特别的键盘定制出来了，并以 29 美元出售。

![](/data/attachment/album/202207/14/111210rhz9hc5vbclh9vxa.jpg)

### 程序员们是否越来越成为一种熟练工？

随着写的代码越来越多，这种有趣但有时候又很枯燥的重复工作，让我想过什么时候可以有个会编程的程序就好了。

在做过很多编程工作之后，我发现，编程很多时候就是一种例程和模式的重复应用。无论是 C 或 Java 语言，还是 JavaScript、Python 语言，都有庞大无比的类库、例程库。很多时候，你花费了很长的时间，只是为了找到合适的类库和它的用法罢了。至于说自己创造的代码，不过是将其粘合起来的胶水而已。

似乎程序员的“创造性工作”，越来越沦落为快餐店配餐员工一样的地步：根据“下单”，去选择合适的“餐品”，组合搭配之后，放上“餐盘”，送给“顾客”，然后时不时还会被“顾客”讨要一些忘记附送的“餐巾纸”之类的。当这种熟练工的工作逐渐被产品经理等非技术人员识破后，程序员们经常会被嘲笑为“**写 Bug的**”。

### 人工智能编程步入实用

这还不够，程序员们甚至连这种复制、粘贴的熟练工作都嫌麻烦，于是一些聪明的程序员们就将眼光放在了近些年大热的人工智能上了。既然现在人工智能已经“无所不能”了，何不请人工智能来编程呢？

对于这一倡议，“光头老板们”表示非常欢迎，这样就再也不用招聘昂贵的程序员了，也不用伺候那些程序员们的怪癖了 —— 比如要么键盘敲得飞起，要么半小时才按几个按键；比如晴天不编程，雨天不编程，心情不好不编程，心情好也不编程 …… 玩笑之余，程序员们看起来已经快没有这种好日子了。

GitHub，对，就是那个被微软收购了的“全球最大的同性交友社区”，他们手握世界上最大的编程代码库，于是就用它训练出来了一个会编程的人工智能 —— Copilot。不要误会，Copilot 不是 “Copy Lot” 的意思，是指“副驾驶”。

![](/data/attachment/album/202207/14/111447m7a75tahhhta2trt.jpg)

在 Copilot 横空出世后，抛开业界对它的许可证问题等道德批评之外，据使用过的人说，“**真乃神器也**”。你可以简单地描述你要做的事情，它就可以从它庞大的代码库中给出一段你需要的代码，稍加修改甚至无需修改就能直接使用。于是，你看到了，一群程序员，在输入几行字之后，他的 IDE 就马上给出一大段的代码，然后他再这里点点那里按按，假模假式地修改一番，就完成了一个功能。

甚至，聪明的程序员们发现，他们不但可以让人工智能写代码，而且开发规范所要求的代码注释也是现成的。如果不是用那段写给人工智能的文字做注释的话，你还可以让人工智能帮你注释那些蹩脚的代码。

好吧，程序员还需要干什么？只需要按按钮吗？

不止如此，现在的人工智能，除了替你编程之外，还能自己训练模型了。对，你没看错，人工智能可以自己训练 AI 模型了，这是要进化了嘛？

### 程序员怎么办？写 Bug 吗？

怎么样，是不是感觉自己当年选计算机专业有点明珠暗投的意思了？现在人工智能这么厉害，不仅仅一些传统的依赖人工完成的工作会被人工智能取代，连我们程序员们都面临着失业的风险了。

当然不，其实，至少在目前来看，人工智能还只能是“人工”智能，远没有到全面取代程序员的程度。但是，一些比较简单的、形成模式的编程工作，肯定会被逐渐优化，这一点可以从“低代码”再次流行起来可见一斑。

作为创造程序的人，如果你不想被另外一段程序取代你的工作，只有掌握创造的能力，才不会被淘汰。反而，你可以利用人工智能提升自己的编程水平和效率。

所以，道路很清楚了，在这个人工智能大行其道的时代，你想继续呆在空调房，坐在人体工学的椅子上，手拥若干大显示屏，挥斥方遒吗？只有一条路，做人工智能做不了的事情，掌握人工智能，让它为你所用。

好了，图穷匕见了，这篇文章就是一篇软文，是来劝你**抓紧投身人工智能**的！

如何，感兴趣吗？

.

.

.

好，我看到你的兴趣了。不过我知道你还有点疑虑，比如学习人工智能技术是不是很难？是不是需要很多资源（比如训练模型时）？是否有人可以指导你？是否有更多同好可以一起前进呢？

正好，现在有个绝佳的机会。华为最近在全国举办“**2022** **年昇腾 AI 创新大赛**”，除了**高达千万元**的丰厚奖金（为什么我要先说这个），还有遍布全国的各个分赛点，以及参赛过程的全程辅导。当然，你需要做好迈上人工智能这条赛道的充分准备了。

>
> **这场大赛是面向人工智能开发者打造的顶级赛事，旨在鼓励全产业开发者基于昇腾计算技术，共同打造软/硬件解决方案、探索模型算法，加速人工智能与行业融合，促进开发者能力提升。**
>
>
>

整个赛程长达半年，在我看来，无论你是初窥人工智能门径的初学者，亦或是具有丰富经验的编程大佬，这段时间都足够你打磨出一款不错的作品。说不定这次大赛的几十万大奖就是你的啦！

整个比赛分为应用赛道与昇思赛道两个部分，大家可以“组队打怪”：

* 对于企业、高校或科研机构的团队，可以开发基于昇腾软硬件平台的解决方案。基于昇腾全栈 AI 软硬件平台（包含 Atlas 系列硬件、异构计算架构 CANN、AI 框架昇思 MindSpore、应用使能 MindX 等）开放命题，围绕人工智能深度学习技术，探索有具体落地的创新方案。从区域赛晋级的队伍还能参与全国赛奖金的角逐，全国赛最高奖金可达 20 万，赢取双份奖金！
* 对于个人开发者（或团队）可以参与昇思赛道的比赛。赛题包括 20 道论文复现赛题与 10 道前沿课题任务。选手完成论文复现或者创新挑战的成果将在昇思社区与启智社区进行开源，赋能更多开发者。

具体的情况，请参考 《[昇腾 AI 创新大赛](https://www.hiascend.com/app/AAIC2022)》官网或以下海报：

![](/data/attachment/album/202207/14/112201u8dkrc77c5icpd7c.jpg)


如何从 Linux 终端发送桌面通知与提醒

Summary: 这篇教程演示如何使用脚本命令来发送自己的桌面通知与提醒。

这篇教程演示如何使用脚本命令来发送自己的桌面通知与提醒。

>
> 这篇教程演示如何使用脚本命令来发送自己的桌面通知与提醒。
>
>
>

![](/data/attachment/album/202207/14/145103vawkhy6w506thy6h.jpg "Person using a laptop")

有时候，来自脚本的视觉回馈是很有用的。例如，当一个脚本或计划任务完成时，一个长期运行的构建任务失败时，或者当脚本执行中出现了紧急问题时。桌面应用程序可以通过弹出通知来做到这一点，但脚本也可以做到这一点！你可以使用脚本命令来给自己发送桌面通知与提醒。

![Example notification](/data/attachment/album/202207/14/145149orngsvxddhdlgsd7.png "Example notification")

下面的代码是在 Linux 上编写和测试的。它也可以在 macOS 上运行，只需花点功夫。请参见最后一节 [提示与技巧](https://opensource.com/article/22/1/linux-desktop-notifications/#script-notifications-on-macOS)。

### 从 Linux 终端发送通知

要从 Linux 终端发送通知，请使用 [notify-send](https://manpages.ubuntu.com/manpages/xenial/man1/notify-send.1.html) 命令。运行 `which notify-send` 命令来查看它是否在于你的系统中。如果没有，请使用包管理器来安装它。

在 Fedora 上，输入：

```
$ sudo dnf install notify-send

```

在基于 Debian 的发行版上，输入：

```
$ sudo apt install notify-send

```

几个简单的通知示例：

```
$ notify-send "Dinner ready!"
$ notify-send "Tip of the Day" "How about a nap?"

```

你可以用紧急程度、自定义图标等选项来自定义通知。过 `man notify-send` 了解更多。你也可以在通知正文中使用一小组 HTML 标记，以使消息有一个棒的视觉感受。最重要的是，URL 被呈现为可点击的。例如：

```
$ notify-send -u critical \
  "Build failed!" \
  "There were <b>123</b> errors. Click here to see the results: http://buildserver/latest"

```

![Build fail notification](/data/attachment/album/202207/14/145150lgduxdez72us8hku.png "Build fail notification")

发送的通知会被桌面环境接收，并像其他通知一样显示。它们将具有相同的外观、交互和行为。

### 将 notify-send 与 at 结合使用

计划任务通常被用来定期安排命令。`at` 命令安排在一个指定的时间执行一条命令。如果你像这样运行它，它会以交互模式启动，你可以在其中输入要在指定时间执行的命令：

```
$ at 12:00

```

这对脚本来说并不有用。幸运的是 `at` 接受来自标准输入的参数，所以我们可以这样使用它：

```
$ echo "npm run build" | at now + 1 minute
$ echo "backup-db" | at 13:00

```

有许多指定时间的方法。 从绝对时间，如 `10:00`，到相对时间，如 `now + 2 hours` ，再特殊时间，如`noon` 或 `midnight`。我们可以把它和 `notify-send` 结合起来，在未来的某个时间向自己发送提醒。例如：

```
$ echo "notify-send 'Stop it and go home now?' 'Enough work for today.' -u critical" | at now

```

![Stop for the day notification](/data/attachment/album/202207/14/145150o7i2q1ze70tzi08o.png "Stop for the day notification")

### 提醒的命令

现在，建立一个自定义的 Bash 命令来给自己发送提醒信息。像这样简单且人性化的命令：

```
$ remind "I'm still here" now
$ remind "Time to wake up!" in 5 minutes
$ remind "Dinner" in 1 hour
$ remind "Take a break" at noon
$ remind "It's Friday pints time!" at 17:00

```

这比 Alexa 更好！该怎样做？

请看下面的代码。它定义了一个名为 `remind` 的函数，它支持上述语法。实际工作是在最后两行完成的。其余的部分负责显示帮助信息、参数校验等，这与任何大型应用程序中有用的代码与必要的白噪声的比例大致相同。

把代码保存在某个地方，例如，在 `~/bin/remind` 文件中，并在你的 `.bashrc` 配置文件写入该函数，以便在你登录时加载它：

```
$ source ~/bin/remind

```

重新打开终端，然后输入 `remind` 来查看语法。尽情享受吧！

```
#!/usr/bin/env bash
function remind () {
  local COUNT="$#"
  local COMMAND="$1"
  local MESSAGE="$1"
  local OP="$2"
  shift 2
  local WHEN="$@"
  # Display help if no parameters or help command
  if [[ $COUNT -eq 0 || "$COMMAND" == "help" || "$COMMAND" == "--help" || "$COMMAND" == "-h" ]]; then
    echo "COMMAND"
    echo "    remind <message> <time>"
    echo "    remind <command>"
    echo
    echo "DESCRIPTION"
    echo "    Displays notification at specified time"
    echo
    echo "EXAMPLES"
    echo '    remind "Hi there" now'
    echo '    remind "Time to wake up" in 5 minutes'
    echo '    remind "Dinner" in 1 hour'
    echo '    remind "Take a break" at noon'
    echo '    remind "Are you ready?" at 13:00'
    echo '    remind list'
    echo '    remind clear'
    echo '    remind help'
    echo
    return
  fi
  # Check presence of AT command
  if ! which at >/dev/null; then
    echo "remind: AT utility is required but not installed on your system. Install it with your package manager of choice, for example 'sudo apt install at'."
    return
  fi
  # Run commands: list, clear
  if [[ $COUNT -eq 1 ]]; then
    if [[ "$COMMAND" == "list" ]]; then
      at -l
    elif [[ "$COMMAND" == "clear" ]]; then
      at -r $(atq | cut -f1)
    else
      echo "remind: unknown command $COMMAND. Type 'remind' without any parameters to see syntax."
    fi
    return
  fi
  # Determine time of notification
  if [[ "$OP" == "in" ]]; then
    local TIME="now + $WHEN"
  elif [[ "$OP" == "at" ]]; then
    local TIME="$WHEN"
  elif [[ "$OP" == "now" ]]; then
    local TIME="now"
  else
    echo "remind: invalid time operator $OP"
    return
  fi
  # Schedule the notification
  echo "notify-send '$MESSAGE' 'Reminder' -u critical" | at $TIME 2>/dev/null
  echo "Notification scheduled at $TIME"
}

```

### 简单的提醒

通过这几个简单的开源命令，你可以将你自己的脚本、应用程序和任务与你的桌面结合起来。试一试吧！

---

（文内图片来自 Tomasz Waraksa, CC BY-SA 4.0）

本文经作者许可改编自 [原文](https://letsdebug.it/post/30-linux-desktop-notifications/)。

---

via: <https://opensource.com/article/22/1/linux-desktop-notifications>

作者：[Tomasz Waraksa](https://opensource.com/users/tomasz) 选题：[lujun9972](https://github.com/lujun9972) 译者：[mcfd](https://github.com/mcfd) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


massCode：一个自由开源的代码片段管理器

>
> massCode 是一个开源的代码片段管理器，使你能够涉足代码，提高生产力，并节省时间。
>
>
>

![](/data/attachment/album/202207/14/151504ti9twf2u5kft2wh2.jpg)

如果一个工具能让事情变得更快、更有效率，那对许多开发者来说就是救命稻草。

虽然有各种服务和平台试图使编码体验更快，但你仍然有其他几个选择可以考虑。

例如，代码片段管理器。使用代码片段管理器，你的目的是保存你想快速访问的代码片段。它更像是指定快捷方式，在你的程序中添加所需的代码。

这不是一个新的概念，但可用于这项工作的工具可能不完全是开源的。

幸运的是，我偶然发现了一个不错的项目，它为你提供了一个自由开源的片段管理器，即 massCode。

### massCode：跨平台的开源片段管理器

![masscode](/data/attachment/album/202207/14/151511ceiu9e9i388olquo.png)

massCode 是一个有用的代码片段管理器，具有一些基本功能。

它支持广泛的编程语言，还包括对 Markdown 的支持。你可以使用文件夹组织你的代码片段，添加标签等。

massCode 可用于 Linux、Windows 或 macOS。让我们来看看一些主要功能。

### massCode 的特点

![masscode screenshot](/data/attachment/album/202207/14/151511jd3x5antccn7mzmy.png)

massCode 包括许多有用的功能。其中一些是：

* 多层次的文件夹结构
* 每个片段都可以存储在片段（标签）中
* 集成的编码编辑器 [Ace](https://github.com/ajaxorg/ace)
* 代码格式化或高亮显示
* 支持带预览的 Markdown
* 能够搜索片段
* 给你的代码段添加描述，以了解它的用途
* 各种深色/浅色主题可用
* 能够从 [SnippetsLab](https://apps.apple.com/us/app/snippetslab/id1006087419?mt=12) 迁移
* 自动保存以帮助你保留你的工作
* 将其与云同步文件夹整合
* 支持 VSCode、Raycast 和 Alfred 的扩展

除了上述所有功能外，你还可以轻松地复制保存代码片段，只需点击一下。

对于自定义，你可以调整字体大小和系列、切换自动换行、高亮显示行、使用单引号或添加尾随命令，这要归功于 [Prettier](https://prettier.io/)。

此外，一份片段可以有多个分片。因此，它使你有机会将其用于各种用例。

如前所述，你也可以通过改变同步文件夹的存储位置将其与你的任何云同步服务整合。

![masscode migrate preferences](/data/attachment/album/202207/14/151512nc0g8vch84hkihn8.jpg)

总的来说，它工作得很好，有一些局限性，比如缺乏将嵌套文件夹从 SnippetsLab 迁移到 masCode 的能力。

### 在 Linux 上安装 massCode

massCode 有 [Snap 包](https://itsfoss.com/install-snap-linux/)，但不在 Snap 商店中。你可以直接下载该软件包，并使用以下命令来安装它：

```
sudo snap install --dangerous ~/Downloads/masscode_2.6.1_amd64.snap

```

我们的一份故障排除指南可以帮助你了解 [snap 的 dangerous 选项](https://itsfoss.com/snap-metadata-signature-error/)。

你可以通过其 [官方网站](https://masscode.io/) 或 [GitHub 发布区](https://github.com/massCodeIO/massCode/releases/tag/v2.6.1) 下载 Windows/MacOS 版。

>
> **[massCode](https://masscode.io/)**
>
>
>

你试过 massCode 吗？还有其他可用于 Linux 的代码片段管理器吗？请在下面的评论中告诉我你的想法。

---

via: <https://itsfoss.com/masscode/>

作者：[Ankush Das](https://itsfoss.com/author/ankush/) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #697 谷歌披露其内部使用的 Linux 滚动发行版

Summary: • 谷歌披露其内部使用的 Linux 滚动发行版 • 谷歌云宣布采用 ARM 芯片 • 去年几乎整个工业行业都受到过攻击

arm哪里买到芯片

![](/data/attachment/album/202207/14/175418g0c0ijil8leccmgg.jpg)

![](/data/attachment/album/202207/14/175426bp82iq1hqh1mxj7q.jpg)

### 谷歌披露其内部使用的 Linux 滚动发行版

谷歌早期使用的内部 Linux 发行版是基于 Ubuntu LTS 的 Goobuntu。Ubuntu LTS 需要每隔两年更新一次，这对于需要升级几十万台计算机的谷歌来说并非易事。因此谷歌转向了滚动更新发行版，它没有使用著名的滚动更新发行版，如 Arch Linux，而是基于 Debian 测试分支构建了自己的滚动发行版。它将新发行版称为 gLinux Rodete（是 Rolling Debian Testing 的缩写）。Debian 测试分支是滚动更新的。谷歌引入了名为 Sieve 的工作流系统，使用虚拟化测试套装确保软件包新版本不会破坏核心组件和开发者的工作流程。谷歌于 2018 年底完成迁移，次年关闭了剩余的 Goobuntu。

>
> **[消息来源：谷歌](https://cloud.google.com/blog/topics/developers-practitioners/how-google-got-to-rolling-linux-releases-for-desktops)**
>
>
>

>
> 老王点评：谷歌的这个经验其实可以供其它的大型 IT 企业参考。
>
>
>

![](/data/attachment/album/202207/14/175441qgodo48zrnvmouoh.jpg)

### 谷歌云宣布采用 ARM 芯片

谷歌云周三宣布，他们将开始采用基于 ARM 技术的芯片。随着谷歌加入 ARM 阵营，几乎所有大型云服务提供商现在都已经开始提供基于 ARM 的云计算服务。谷歌云的新服务将基于 Ampere 公司的 Altra 芯片，该公司还向微软和甲骨文等企业出售芯片。另外一些云计算提供商，如甲骨文、阿里云则在设计自己的 ARM 架构芯片，并且已经委托工厂进行生产。

>
> **[消息来源：Tech Crunch](https://techcrunch.com/2022/07/13/google-cloud-launches-its-first-arm-based-vms/)**
>
>
>

>
> 老王点评：ARM 和 RISC-V 大行其道，我想英特尔和 AMD 感受到压力了吧。
>
>
>

![](/data/attachment/album/202207/14/175500xq2oeu5gczgobqwj.jpg)

### 去年几乎整个工业行业都受到过攻击

《2022 年工业安全状况报告》调查了 800 名负责这些工业系统的高级 IT 和安全负责人。报告发现，94% 的受访者在过去 12 个月里，其工业物联网（IIoT）或运营技术（OT）系统经历了某种形式的攻击。关键基础设施是网络犯罪分子的一个有吸引力的目标，但不幸的是，IIoT/OT 安全项目往往被其他安全举措所取代，或者由于成本或复杂性而失败，使组织处于风险之中。

>
> **[消息来源：CSO Online](https://www.csoonline.com/article/3666523/barracuda-report-almost-everyone-faced-an-industrial-attack-in-the-last-year.html)**
>
>
>

>
> 老王点评：其实工业互联网真没体验过互联网那么疯狂的攻击力度。至少互联网企业大多都有网络安全相关人员，工业互联网很少有专门配置的网络安全人员。
>
>
>


为何要使用树莓派为你的业务提供动力

Summary: 为何小小的单板机是智能工作以及小型办公室的未来。

为何小小的单板机是智能工作以及小型办公室的未来。

>
> 为何小小的单板机是智能工作以及小型办公室的未来。
>
>
>

![](/data/attachment/album/202207/15/152016pcjh4heez4q0oof6.jpg "A chair in a field.")

随着疫情的大流行，我们的工作方式也正在发生着改变。工作的分散化正在成为所有公司需要面临的一项重要挑战。

### 智能办公室

即使工厂认为智能办公仅仅是通过虚拟私有网络来对员工的笔记本电脑进行远程控制，再稍微增加一点进化也可以让一些基本的办公服务离人们更近一点，这些都能够极大降低数据中心的负载，并且提高人们的工作体验。这个方案还有一个额外的影响就是从信息和通信技术（ICT）上来说消除了许多单点故障。

与其在公司外部有成百上千的工作场地，不如在世界范围内有着成百上千的小型办公室/分支，这就是所谓的“智能办公室”。

这种表述可能会让许多 ICT 专家感到恐慌，因为这种文化使得每个办公室都与一台大机器（即服务器）联系在一起，即使分散计算资源的优势非常明显。

### 一个不同的角度

如果你能用一块 50 美元的小开发板提供一个大服务器的服务会怎么样？如果这个小板子只需要一张 SD 卡和一个普通的 USB 电源支持，那又会怎么样呢？这就是 [树莓派](https://opensource.com/resources/raspberry-pi) 是最灵活的解决方案的原因所在。

树莓派开发板是尺寸非常小的运行 Linux 的计算机。它有一个由树莓派基金会提供和维护的操作系统：<ruby> 树莓派操作系统 <rt>  Raspberry Pi OS </rt></ruby>。它基于 Debian，并与这个最知名的 Linux 发行版共享许多软件包。此外，许多树莓派的开发板能够完美运行最知名的 Ubuntu 服务器，它涵盖了 ARM 处理器支持，提供了对低功耗处理器的支持。

但树莓派开发板对小公司来说也是一个很好的机会，以能够承担得起的代价获得大量的（开源）服务。但这种情况下，你必须考虑数据丢失的风险，因为你把所有的服务运行在一个小的、消费级的硬件上。不过设置正确的备份/恢复程序能够降低这些风险。

### 你能从树莓派开发板上提供什么服务？

大多数服务通常由更昂贵的服务器提供。这里的“大多数”取决于一些限制：

* **ARM 处理器：** 一些软件包只支持 x86/x64 处理器。这是最难克服的挑战之一。但另一方面，ARM 处理器的市场份额不断增长，使得程序员为他们的软件开发了兼容 ARM 处理器的版本。
* **内存容量：** 这是一个仅限于在复杂应用以复杂的方式进行复杂的计算的情况下讨论的问题。很多时候，这只不过是关于重新审查代码、拆分步骤，并保持简单高效的问题。此外，如果一个服务虽然只服务少数几个用户，但需要大量的内存/CPU，这大概也意味着此服务没有正常工作。这可能是你消除浪费资源的旧问题的一个机会。最后，最新的树莓派开发板把内存容量升级到了 8GB，这是一个很大的提升。
* **对服务器没有经验的用户：** 这是另一个问题，你可以在基础镜像所在的树莓派的 micro-SD 卡中存储系统和运行数据。

也就是说，你能够用树莓派做很多有趣的事情。在 [我的博客](https://peppe8o.com) 里，我通过运行各种服务进行了测试 —— 从基本的 LAMP 服务器到复杂的 CRM。从简单到复杂系统，全部都是开源的，例如：

* 代理服务器（也能够添加广告拦截服务）
* 电子邮件服务器
* 打印服务器
* [酒店管理](https://opensource.com/article/20/4/qloapps-raspberry-pi)
* 联系关系管理（CRM）
* [私人社交网络](https://opensource.com/article/20/3/raspberry-pi-open-source-social)
* 私人论坛
* 私有 Git 门户网站
* 网络监控服务器
* [许多其他有用的服务](https://peppe8o.com/category/raspberrypi/)

对树莓派来说，另一个有趣的用法是在你的远程办公室获得提供高级服务的 Wi-Fi 热点，并且可以从它的以太网端口进行控制。

最后，[树莓派也能够运行容器](https://opensource.com/article/20/8/kubernetes-raspberry-pi)，这是一个额外的工具，从这个不可思议的开发板中获得一个可用的服务世界。

---

via: <https://opensource.com/article/22/1/raspberry-pi-business>

作者：[Giuseppe Cassibba](https://opensource.com/users/peppe8o) 选题：[lujun9972](https://github.com/lujun9972) 译者：[void-mori](https://github.com/void-mori) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出