2022年2月

Chrome OS 将能运行在 PC 和 Mac 上

谷歌宣布了一个旨在运行在 PC 和 Mac 上的新版本的 Chrome OS,名为 Chrome OS Flex。它的外观和感觉与 Chromebook 上的 Chrome OS 相同,由相同的代码库构建,并遵循相同的发布节奏。该操作系统可以在几分钟内安装完成。当然,一些功能可能取决于你使用的电脑的硬件。

老王点评:不知道是不是可以在国内使用。

Android 13 能在 Pixel 6 手机上运行 Windows 和 Linux

Google 最近开放测试的 Android 13 开发者预览版能让 Pixel 6 之类的硬件能运行 Windows 11 和 Linux 发行版。Android 13 利用了 KVM 虚拟化框架,开发者在 Pixel 6 手机上测试运行了 Windows 11、Ubuntu 21.10、Arch Linux Arm 等,并尝试玩了经典射击游戏旧版 Doom。

老王点评:不过我觉得很多没有为移动设备设计的操作系统,即便可以运行也并不好用。

麻省理工为高性能计算机开发了新的编程语言

MIT 介绍了他们最近开发的“张量语言” ATL,它是在现有的 Coq 语言的基础上构建的。ATL 是首个、也是迄今唯一一个具有正式验证优化的张量语言。目前 ATL 仍处于原型阶段。开发者称,使用他们专为高性能计算而设计的新编程语言,可以很好地兼顾速度与正确性。此前人们普遍认为,速度与可靠性存在不可避免的权衡。

老王点评:真能兼顾速度和正确性么?这个值得商榷。

KDE 分享了它在应用开发方面的计划和迄今为止的进展。不但有新的应用发布,如 Falkon 3.2,在 ARM 平台方面也有有趣的进展。

KDE 最近像往常一样分享了它的月度更新,介绍了最新的应用发展和进展。

虽然 Falkon 3.2 版本 是一个重要的升级,但还有其他几个 KDE 应用程序的更新/bug 修复。

然而,有一件有趣的事情。

KDE 开始为 ARM 平台提供应用程序了。

但是,这究竟是什么意思呢?让我们来看看!

KDE 应用于 ARM:一个令人兴奋的发展!

你可以在各种仓库、Flatpak 和 Snap 商店中找到 KDE 应用程序。

而 KDE 选择了 Snap 商店来发布其第一个用于 ARM64 的 Snap 软件包。

换句话说,KDE 应用程序正在以 Snap 的方式进入 ARM 平台。

当然,对于一个应用程序来说,支持各种平台和各种发行版是有意义的,所有这些都在单一的商店提供。

第一个可用于 ARM64 的 Snap 软件包是 kblocks

这是一个经典的掉落式积木游戏,它是一个有趣的游戏,也许对于 ARM 平台来说不算什么。

然而,如果你有树莓派或 PinePhone Pro,这意味着你可以期待有更多为 ARM 平台优化的 KDE 应用程序通过 Snap 商店提供。

ARM 芯片的未来

考虑到 ARM 平台的早期发展,与现有的设备数量相比,我认为这是很好的进展。

就目前而言,树莓派用户和 PinePhone pro 用户可以立即从新的 KDE 应用程序中受益。

当我们开始看到更多的由 ARM 驱动的设备或笔记本电脑时,你可以期望大家都开始为 ARM 做准备。

希望在时机成熟时,Linux 平台及其应用程序将为 ARM 平台做好准备。

我们应该避免出现像苹果 M1 系列那样的情况,在没有适当的应用生态系统可用的情况下,性能会有很大的不同。

关于 KDE 应用程序以 Snap 包支持 ARM64,你怎么看?假设你有一个树莓派或 PinePhone Pro,你对它的未来有什么期待?

请在下面的评论中告诉我你的想法。


via: https://news.itsfoss.com/kde-apps-arm/

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

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

x86、Arm 和 RISC-V 内核将能在一个处理器中共同工作

英特尔将把其最重要的资产,即 x86 架构,授权给那些想制作 定制芯片 的人。根据不同的应用,客户将能够在英特尔制造的定制设计的芯片中混合使用 x86、Arm 和 RISC-V CPU 内核以及硬件加速单元。基于不同架构的内核将相互连接并协同工作以执行系统软件和程序。这种多 ISA 战略是英特尔历史上第一次将 x86 软核和硬核授权给想开发芯片的客户。

老王点评:这种多 ISA 的处理器似乎就可以同时运行多种架构的应用了?

数以千计的 NPM 账户使用过期域名的电子邮件地址

NPM 是 JavaScript 库的事实存储库,也是互联网上最大的包存储库。研究人员在去年分析了 NPM 上的 160 万个库的元数据,他们发现有 2818 个项目维护者的账户仍在使用 域名过期 的电子邮件地址,并且其中一些域名在 GoDaddy 等网站上出售。攻击者可以购买这些域名,在他们自己的电子邮件服务器上重新注册维护者的地址,然后重新设置维护者的账户密码并接管他的 npm 包。

老王点评:一些 NPM 模块的开发不是严肃的工作,但是却有可能用在严肃的场合。

开发者已经可用 Rust 为 Linux 开发抽象子系统和驱动了

开发者发出了在 Linux 内核中使用的 Rust 编程语言支持 的第四个版本。这种对 Linux 内核驱动程序的可选 Rust 编程支持继续成熟,今年将有望看到主线状态。开发者称,“Rust 支持仍然实验性的。然而,支持已经足够好,内核开发者可以开始用 Rust 开发子系统抽象层,并编写驱动程序和其他模块。”目前,在内核中加入的 Rust 编程语言基础设施以及一些示例代码大约有 34000 行新代码。

老王点评:关于 Rust 进入 Linux 内核开发,还是存在不少不同意见的。

控制你的提示符,让你需要的所有信息触手可及。

 title=

没有什么比我忘记在我的 Git 仓库中 git add 文件更让我恼火的了。我在本地测试,提交,然后推送,却发现在持续集成阶段失败了。更糟糕的是,我在 main 分支而不是特性分支上,并不小心推送到它。最好的情况是,因为分支保护而失败,我需要做一些操作才能把改动推送到一个分支。更糟糕的是,我没有正确配置分支保护,不小心直接推送到了 main 分支。

如果这些信息能在提示中直接获得,那不是很好吗?

在提示符中甚至还有更多有用的信息。虽然 Python 虚拟环境的名称在提示符中,但虚拟环境的 Python 版本却不在提示符中。

可以仔细地将 PS1 环境变量配置为所有相关的信息。这可能会变得很长,很烦人,而且调试起来并不简单。

这就是 Starship 被设计来解决的问题。

安装 Starship

Starship 的初始设置只需要两个步骤:安装并配置你的 shell。安装可以很简单:

$ curl -fsSL https://starship.rs/install.sh

阅读安装脚本,确保你理解它的作用,然后让它可执行并运行它:

$ chmod +x install.sh
$ ./install.sh

还有其他的安装方法,在其网站上有介绍。你可以在构建镜像的步骤中设置虚拟机或容器。

配置 Starship

下一步是配置你的 shell 来使用它。要一次性尝试,假设 shell 是 bashzsh,请运行以下命令:

$ eval "$(starship init $(basename $SHELL))"

你的提示符立即改变:

localhost in myproject on  master
>

如果你喜欢你所看到的,把 eval "$(starship init $(basename $SHELL))" 添加到你的 shell 的 rc 文件中,使其永久化。

自定义 Starship

默认安装假定你可以安装“电脑迷字体”,例如 Fantasque Sans Mono。 特别是,你需要一种带有来自 Unicode 的“私有实现”部分的字形的字体。

这在控制终端时非常有效,但有时,终端的配置并不容易。例如,当使用一些浏览器内的 shell 抽象时,配置浏览器的字体可能是不太容易的。

该码位的最大用户是 Git 集成,它使用一个特殊的自定义符号来表示“分支”。禁用它可以通过使用文件 ~/.config/starship.toml 来配置 starship.rs

禁用分支符号是通过配置 git_branch 部分的 format 变量完成的:

[git_branch]
format = "on [$branch]($style) "

starship.rs 的一个好处是,改变配置会立即生效。保存文件,按下回车,看看字体是否符合预期。

还可以配置提示符中不同部分的颜色。例如,如果 Python 部分的亮黄色在白色背景上有点难看,你可以配置为蓝色:

[python]
style = "blue bold"

许多语言都有配置支持,包括 Go、.NET 和 JavaScript。还支持显示命令的持续时间(只针对耗时超过阈值的命令)等。

控制提示符

控制你的提示符,让你需要的所有信息触手可及。安装 Starship,让它为你工作,并享受吧!


via: https://opensource.com/article/22/2/customize-prompt-starship

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

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

如果你是容器的新手,不要被那些术语所吓倒。这些关键原则将帮助你把应用迁移到云中。

 title=

一般来说,人们想使用你的应用程序这是一件好事。然而,当应用程序在服务器上运行时,应用程序受欢迎是有代价的。随着用户对资源需求的增加,在某些时候,你可能会发现你需要扩展你的应用程序。一种选择是在这种情况下增加更多的服务器,建立一个像 Nginx 这样的 负载平衡器,以满足需求。但是,这种方法的成本可能很昂贵,因为当需求低的时候,在没有流量的服务器上运行你的应用程序的实例并不会节省资源。容器的优点是它是非持久的,在有需求时启动新实例,而随着需求的减少逐渐消失。如果这听起来像是你需要的功能,那么现在可能是将你的应用程序迁移到容器的时候了。

将应用程序迁移到容器中,很快就会变得迷失方向。虽然容器内的环境可能感觉很熟悉,但许多容器镜像是最小化的,而且它们被设计为无状态的。不过在某种程度上,这也是容器的优势之一。就像 Python 虚拟环境一样,它是一块白板,可以让你构建(或重建)你的应用程序,而没有许多其他环境所提供的无形的默认值。

每一次向云服务的迁移都是独一无二的,但在将你的应用程序移植到容器之前,你应该注意以下几个重要原则。

1、理解你的依赖关系

将你的应用程序移植到容器中是一个很好的机会,可以了解你的应用程序实际依赖的东西。由于除了最基本的系统组件外,很少有默认安装的组件,你的应用程序一开始不太可能在容器中运行。

在重构之前,确定你的依赖关系。首先,在你的源代码中用 grep 查找 includeimportrequireuse 或你选择的语言中用来声明依赖关系的任何关键词。

$ find ~/Code/myproject -type f \
    -iname ".java" \
    -exec grep import {} \;

不过,仅仅识别你使用的特定语言的库可能是不够的。审计依赖关系,这样你就能知道是否有语言本身运行所需的低级库,或者特定的模块以预期的功能运行。

2、评估你的数据存储

容器是无状态的,当一个容器崩溃或停止运行时,该容器的实例就永远消失了。如果你要在该容器中保存数据,这些数据也会消失。如果你的应用程序存储用户数据,所有的存储必须发生在容器之外,在你的应用程序的实例可以访问的某个位置。

你可以使用映射到容器内某个位置的本地存储来存储简单的应用程序配置文件。这是一种常见的技术,适用于需要管理员提供简单配置值的 Web 应用程序,如管理员的电子邮件地址、网站标题等。比如说:

$ podman run \
    --volume /local/data:/storage:Z \
    mycontainer

然而,你可以配置一个数据库,如 MariaDB 或 PostgreSQL,将大量数据在几个容器中的共享存储。对于私人信息,如密码,你可以配置一个机密存储

对于你需要如何重构你的代码,相应地调整存储位置,这可能意味着改变路径到新的容器存储映射,移植到不同的数据库,甚至是纳入容器特定的模块。

3、准备好你的 Git 仓库

容器在构建时通常会从 Git 仓库中拉取源代码。一旦你的 Git 仓库成为你的应用程序的生产就绪代码的标准来源,你必须有一个管理 Git 仓库的计划。要有一个发布分支或生产分支,并考虑使用 Git 钩子 来拒绝意外的未经批准的提交。

4、了解你的构建系统

容器化应用程序可能没有传统的发布周期。当容器被构建时,它们会被从 Git 中拉取出来。你可以启动任何数量的构建系统作为容器构建的一部分,但这可能意味着调整你的构建系统,使其比过去更加自动化。你应该重构你的构建过程,使你完全有信心它能在无人值守的情况下工作。

5、构建镜像

构建镜像不一定是复杂的任务。你可以使用 现有的容器镜像 作为基础,用一个简单的 Docker 文件对其进行调整。另外,你也可以使用 Buildah 从头开始构建你自己的镜像。

在某种程度上,构建容器的过程与实际重构代码一样,都是开发的一部分。容器的构建是为了获取、组装和执行你的应用程序,所以这个过程必须是自动化的、健壮的。建立一个好的镜像,你就为你的应用程序建立了一个坚实可靠的基础。

容器化

如果你是容器的新手,不要被术语所吓倒。容器只是另一种环境。容器化开发的感知约束实际上可以帮助你专注于你的应用程序,并更好地了解它是如何运行的、它需要什么才能可靠地运行,以及当出错时有哪些潜在的风险。相反,这导致系统管理员在安装和运行你的应用程序时受到的限制要少得多,因为从本质上讲,容器是一个受控的环境。仔细审查你的代码,了解你的应用程序需要什么,并相应地重构它。


via: https://opensource.com/article/22/2/migrate-application-containers

作者:Alan Smithee 选题:lujun9972 译者:wxy 校对:wxy

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

大型神经网络可能初具意识?

OpenAI 首席科学家 在 Twitter 上说“今天的大型神经网络可能已经初具意识了。”这个说法引来了 AI 专家们的大量讨论,有支持者,也有反对者。反击最激烈的就是图灵奖得主、Meta AI 首席科学家 Yann LeCun,他认为,人工智能还“没有达到‘稍微有意识’的下限,甚至还没有达到‘大型神经网络’的上限。”也有人说,“看到这么多著名的机器学习人士嘲笑这个想法,真是令人失望。”但大多数从事和研究人工智能的人认为,我们离创造有意识的人工智能还有很多年。

老王点评:对于如今已经可以完成一些不可思议的人工智能,是否已经初具意识,你怎么看呢?

Mozilla 和 Meta 提出新的隐私保护广告技术

这种 新广告技术 被称为“可互操作的隐私标注”(IPA)。其核心概念是用成批事件的汇总报告取代每个点击行动的广告报告。它具有两个重要的隐私保护特性:首先它使用多方计算避免任何单一实体如网站、浏览器开发商或广告商掌握用户行为;其次它是聚合系统,即其结果无法关联到单一用户。

老王点评:作为隐私保护先锋,Mozilla 这样浓眉大眼的也积极研究广告跟踪技术,这有点画风不对啊。

发现以太坊漏洞的白帽黑客获得 200 万美元的赏金

白帽黑客在以太坊 L2 扩展解决方案 Optimism 中发现了一个高危漏洞,允许攻击者无限制的复制以太坊通证。他在 2 月 2 日向项目方报告了漏洞,在其修复之后予以披露。在修复之后,项目方向这位白帽黑客奖励了 200 万美元。这是迄今为止最高的单笔 Bug 赏金之一。

老王点评:这种 Bug 是毁灭性的,所以这么高的奖金也是应当的。