2022年6月

Manjaro Linux 21.3.0 发行包包含一些最新和最强大的更新,包括改进的安装程序。

Manjaro Linux 是一个滚动发布的发行版。因此,从技术上讲,如果你定期更新系统的话,你一直都会使用最新版本。

升级到 Manjaro 21.3.0 应该没什么大不了的,考虑到我已经在正式发布前几天就已经在稳定运行它了,毫无问题。

另外,你可能想阅读一下我 从 Ubuntu 切换到 Manjaro 的初步体验(如果你对于升级仍然犹豫不决的话)。

那么,Manjaro 21.3.0 带来了什么更新呢?

Manjaro 21.3.0 更新内容

桌面环境升级到了最新的稳定版本,而内核版本仍然是 Linux 内核 5.15 LTS

此外,这个版本还包括最终的 Clamares v3.2 版本。让我们来看看它有哪些变化吧。

Calamares v3.2.59

Calamares v3.2.59 安装程序是 3.2 系列的最终版本,它有许多有意义的改进。这次,分区模块包含了对 LUKS 分区的支持和更多改进,以避免那些可能会弄乱 Manjaro 安装的设置。

Calamares 3.2 的所有未来版本都将仅是错误修复。

GNOME 42 + Libadwaita

最初的版本包含了 GNOME 42,而最新的版本包含了 GNOME 42.2(附带最新的更新)。

总体而言,你将获得 GNOME 42 引入的所有优点,包括系统范围的深色模式、基于 GTK 4 的 GNOME 应用的现代用户界面、升级的应用程序以及其他一些重大变化。

KDE Plasma 5.24

不幸的是,考虑到它差不多是在同一周发布的,因此该版本无法包含 KDE Plasma 5.25

KDE Plasma 5.24 是一个不错的升级,具有更新的主题和概览效果。

XFCE 4.16

在 Xfce 4.16 中,窗口管理器得到了许多更新和改进,以支持小数倍数的缩放和更多功能。

下载 Manjaro 21.3.0

到目前为止,我在 Manjaro 21.3.0 GNOME 版本中没有遇到任何问题。一切看起来都不错,升级也很顺利。

但是,如果你不想重新安装或丢失重要文件,则应始终进行备份。

你可以从 Manjaro 的下载页面 下载最新版本。你也应该可以通过 pamac 包管理器获得更新。

无论哪种情况,你都可以在终端中输入以下命令进行升级:

sudo pacmane -Syu

via: https://news.itsfoss.com/manjaro-21-3-0-release/

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

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

在中国,几乎每一个接触过 Linux 的人都听说过深度操作系统(即 Deepin OS),甚至不少人还使用过它,并一直在使用它。因此,当深度华丽转身为统信,并打出了一系列让人目不暇接的组合拳时:推出 UOS、加入了欧拉生态,同华为等欧拉伙伴们一同打造了欧拉根社区等等,让关注深度、关注国产操作系统和信创的人们开始探究这一切背后的动因,以及接下来的发展。

作为多年来一直关注开源技术发展的开源人,我约了统信的任紫东先生聊了聊,希望将从深度到统信,再到加入欧拉生态的背后的脉络展示给大家。

从桌面到服务器,从深度到统信

作为最著名的国产 Linux 操作系统之一,深度操作系统(Deepin OS)在国内外拥有一大批忠实的用户和支持者,其代表性桌面环境深度桌面(DDE)也被移植到多个 Linux 发行版之上。可能是由于深度操作系统太过成功,以至于在很多人印象中,深度只是一家桌面 Linux 操作系统供应商。

在 2019 年,统信成立并推出了 UOS,开始将目光转向了服务器、云计算等领域。无独有偶的是,同样的趋势我们也能在 Ubuntu 背后的发行商 Canonical 上、以及其它的 Linux 发行版厂商上发现。这让我们开始产生一个问题,是桌面操作系统不再重要,已经不能代表现代企业计算的主要需求了吗?

对于这个问题,任紫东的看法是,“桌面和服务器端一样重要”。一方面,虽然深度操作系统在国产 Linux 桌面操作系统中占据了较大份额,但整个 Linux 桌面只占有了近 5% 的国内桌面市场份额,可以说还有很大的发展空间。另外一方面,在 Linux 用户群体方面,往往其桌面环境和服务器环境都采用了 Linux,这种环境的协调一致,有利于他们的工作,比如开发、运维、测试等等。这也是为什么微软要在 Windows 中加入 WSL 来弥合开发人群的日用和目标操作系统的间隙的原因。所以,对于统信,乃至其它 Linux 发行版厂商来说,服务器和桌面市场同样重要。

从深度到统信,在我看来,这代表了从桌面系统到服务器系统的延伸。但是,客观的讲,从桌面操作系统到服务器系统,其开发、维护和支持,从技术栈、发展方向、团队构成等方面都存在较大的不同,因而,在这一过程中,统信也面临了一些挑战。

任紫东表示,虽然桌面操作系统的生态建设和突破更加复杂一些,包括桌面操作系统的生态发散,用户的个性化使用习惯等,建设一套能满足广泛人群需求的桌面操作系统所面临的挑战很大。而相比之下,服务器操作系统是面向企业需求的,更多关注的是可靠稳定、性能优越、长期支持等等。

当然,建设服务器操作系统及其生态也有难度。这二者的受众、用户的感知是不一样的。为此,在桌面操作系统产线之外,统信组建了数百人的独立服务器操作系统产线,分别在内核、系统、安全、云原生等方面投入了重兵,并在国内的三大研发中心中协同开发。

一般而言,作为面向企业、云计算行业的产品,要求提供更长的支持时间。往往我们能见到,很多企业用户还在使用一些老版本产品,只要稳定可靠,提供支持,就不会将升级作为急迫事件,长周期的商业支持就是刚需。据了解,统信对于服务器操作系统的支持,从原先提供的 5 + 3 + 2 的支持,即五年的基础支持、三年的延长支持、两年的特别支持承诺,已经改为提供 5 + 5 + 3 的支持,即总共 13 年的支持服务。企业级的需求只有得到长期的服务,才能使产品信誉和产品能力得到用户的认可。任紫东称,统信这两年在服务器领域的成长速度非常快,是国内在通用服务器市场增长最快的厂家之一。

从服务器系统社区共建到统信商业版

作为最早的欧拉社区成员之一,统信不但基于欧拉操作系统开发了商业版,也为欧拉生态带来了包括深度桌面(DDE)、迁移工具等产品。国内的很多企业级用户都是采用 CentOS/RHEL 系统作为其基础设施,因此在面临 CentOS 断服的时候,企业需要有一个安全可靠、便捷易用的工具来将其原有基础设施迁移至新的操作系统。统信贡献的迁移工具可以很好的完成此任务,它已经成为欧拉社区中的重要工具。

之前,国内很多面向服务器的商业操作系统公司,都是基于 CentOS 来衍生开发的,其特性、支持状况也延续了 CentOS 的方式。但由于这些下游发行版不能更早的参与进入上游生态的开发当中,因此在产品的迭代上存在较长的时间差。任紫东说,“统信一直在期待根社区的出现,而欧拉社区就是这样的一个机会。”加入欧拉社区的统信软件,与其它社区成员一同共建上游根社区,合力打造了各种组件,基于社区版本二次开发并发行商业版本,为更多的用户提供了长周期的支持和版本升级保障。

统信服务器商业版汲取了欧拉和其它社区的经验和精华而打造,并将重点关注到垂直行业应用,以企业用户为导向,结合社区版本来形成自己的商业版本。

对于这种基于上游发行版而产生了多个下游发行版的情况,开源社区中一些人认为,发行版太多了,大家各自为政,不能形成合力,因而很难打败其它操作系统。就此问题,我也和任紫东进行了讨论,是否欧拉生态也会出现碎片化呢,这是否会影响欧拉及其商业版的发展?他说,虽然欧拉有着诸多的商业发行版,但是由于欧拉是社区成员合力打造的根社区,其所基于的技术都是属于 Linux 和开源的领域,因此,各个商业版在各有侧重的同时,也具有相同的主干,这种主干是大家基于生态需求共识的标准,从而有效的避免的生态碎片化的情况。枝繁叶茂,在主干下的发展,不但不会破坏欧拉的生态,反而会给欧拉带来更多的活力、更多的可能性。

从社区到商业,从商业到社区

前面说过,统信商业版实际上是来自于深度社区的拓展,是立足于开源社区之上的。而在这个过程中,无论是统信还是深度,都向社区贡献了大量代码,包括最知名的深度桌面环境(DDE)及其底层开发框架、各种本地化应用等等。因此,在统信的开发中,社区是其必不可少的组成部分,这里面不仅仅有来自于欧拉社区的其它成员的贡献,也有来自国内外个人贡献者的积极支持。

最典型的例子就是欧拉社区中有大量的 SIG 存在。近些年来,在开源社区中,我们经常能听到各种 SIG 的消息。SIG 是“特别利益小组”或“特别兴趣小组”的缩写,这是一种灵活的蜂群式开源协作模式,专门针对各个相对独立的方向,而凝聚一群人来为之努力。在欧拉生态中有多达上百个 SIG,而统信领导了其中十个 SIG,参与了五十余个 SIG 的开发。

而另外一方面,统信投入大量人力为商业版所提供的各种产品、特性和改进,也都会回哺到社区,以在社区大生态中得到更好的发展。这些都是基于统信的商业需求和商业机会而产生的,所以统信也有足够的动力去参与和推动它的发展。同时,这些 SIG 所产生的成果最终会转化为欧拉这棵大树上的累累盛果,成为整个根社区的共同收益

统信的未来,欧拉的未来

从上面的访谈可以看到,统信及更多欧拉生态伙伴在打造中国根社区方面踌躇满志,也积极看好中国底层基础设施领域的发展。在谈及统信将来的技术和商业发展方向,任紫东说,统信将更多地向垂直领域进行拓展。基于统信打造的平台性产品,随着项目的发展,逐步向电信、能源、金融、交通等各个领域不断拓展。在这个过程中,当然也存在一些挑战,需要不断学习行业知识,与上下游适配,并与不同的合作伙伴形成相互支撑、相互依赖和相互促进的关系。

而作为共同的根社区,欧拉社区现在的发展速度非常快,已经从操作系统迈向更广阔的物联网、云原生领域,而且也得到更多来自全球开源领域的合作和机会。

(文中插图均来自深度操作系统壁纸)

WSL2 可以运行在 Windows Server 2022 上了

微软已经正式宣布,WSL 2 发行版现在支持 Windows Server 2022 了。这对有特殊用例的开发者来说确实是好事,因为他们需要在 Windows Server 2022 上启动 Linux 时,不再需要全功能的 Hyper-V 会话。WSL2 更加轻量级。之前微软的人曾说,虽然这项技术对桌面用户来说很方便,但把它放在服务器上可能意味着,它被用来做一些它不打算做的事情。另外,微软没有将 WSL2 移植回 Windows Server 2019 的计划。

消息来源:The Register
老王点评:微软又张开了吞下 Linux 的大口,不但是“面向开发者”,这回是面向运维人员了吧。

美参议员将加密货币监管法案草案发布到 GitHub 上

本周三,美国参议员 Cynthia Lummis 对即将到来的加密货币监管法案采取了令人惊讶的新措施:将其托管在 GitHub 上,请大家对起草的法案框架贡献评论。GitHub 用户们已经对法案提出了几十个评论和拉取请求,其中一些提出了对法案有意义的补充。比如“通过对采矿征税来增加工作量证明加密货币的价值”。另一个评论提出了对稳定币算法支持的担忧。

消息来源:GitHub
老王点评:这才像是征求意见,以“开源”的方式,透明的推动进步。

首个全链路国产操作系统 OpenCloudOS 发布

据其官方公众号消息,OpenCloudOS 正式发布了“首个源社区(L1)项目及首个全量软件包(L3)版本”,并披露了技术研发路线图。OpenCloudOS 是去年 12 月由腾讯牵头成立的开源操作系统社区,其成员包括北京红旗、飞腾、浪潮、龙芯中科、兆芯等几十家操作系统生态厂商及用户。OpenCloudOS 在宣传中说它是“我国首个具备全链路国产化能力的服务器操作系统”,并提出了 L1 源社区、L2 商业版、L3 社区稳定版和 L4 衍生发行版的层级划分。OpenCloudOS 称其“社区及衍生版已经装机逾千万”。

消息来源:OpenCloudOS
老王点评:一坛老酒,个个新瓶。趁着东风起,各家你方唱吧我登场,谁能笑到最后,还需要时间来证明。

许多大型代码库中都有 Lisp 代码的身影,因此,熟悉一下这门语言是一个明智之举。

早在 1958 年,Lisp 就被发明出来了,它是世界上第二古老的计算机编程语言(LCTT 译注:最古老的编程语言是 Fortran,诞生于 1957 年)。它有许多现代的衍生品,包括 Common Lisp、Emacs Lisp(Elisp)、Clojure、Racket、Scheme、Fennel 和 GNU Guile 等。

那些喜欢思考编程语言的设计的人,往往都喜欢 Lisp,因为它的语法和数据有着相同的结构:Lisp 代码实际上是 一个列表的列表 a list of lists ,它的名字其实是 “ 列表处理 LISt Processing ” 的简写。而那些喜欢思考编程语言的美学的人,往往都讨厌 Lisp,因为它经常使用括号来定义范围;事实上,编程界也有一个广为流传的笑话:Lisp 代表的其实是 “大量烦人的多余括号” Lots of Irritating Superfluous Parentheses

不管你是喜欢还是讨厌 Lisp 的设计哲学,你都不得不承认,它都是一门有趣的语言,过去如此,现在亦然(这得归功于现代方言 Clojure 和 Guile)。你可能会惊讶于在任何特定行业的大代码库中潜伏着多少 Lisp 代码,因此,现在开始学习 Lisp,至少熟悉一下它,不失为一个好主意。

安装 Lisp

Lisp 有很多不同的实现。比较流行的开源版本有 SBCLGNU LispGNU Common Lisp(GCL)。你可以使用发行版的包管理器安装它们中的任意一个,在本文中,我是用的是 clisp(LCTT 译注:也就是 GNU Lisp,一种 ANSI Common Lisp 的实现)。

以下是在不同的 Linux 发行版中安装 clisp 的步骤。

在 Fedora Linux 上,使用 dnf

$ sudo dnf install clisp

在 Debian 上,使用 apt

$ sudo apt install clisp

在 macOS 上,使用 MacPorts 或者 Homebrew

# 使用 MacPorts
$ sudo port install clisp

# 使用 Homebrew
$ brew install clisp

在 Windows 上,你可以使用 clisp on Cygwin 或者从 gnu.org/software/gcl 上下载 GCL 的二进制文件。

虽然我使用 clisp 命令来运行 Lisp 代码,但是本文中涉及到的大多数语法规则,对任何 Lisp 实现都是适用的。如果你选择使用一个不同的 Lisp 实现,除了用来运行 Lisp 代码的命令会和我不一样外(比如,你可能要用 gclsbcl 而不是 clisp),其它的所有东西都是相同的。

列表处理

Lisp 源代码的基本单元是 “ 表达式 expression ”,它在形式上是一个列表。举个例子,下面就是一个列表,它由一个操作符(+)和两个整数(12)组成:

(+ 1 2)

同时,它也是一个 Lisp 表达式,内容是一个符号(+,会被解析成一个加法函数)和它的两个参数(12)。你可以在 Common Lisp 的交互式环境(即 REPL)中运行该表达式和其它表达式。如果你熟悉 Python 的 IDLE,那么你应该会对 Lisp 的 REPL 感到亲切。(LCTT 译注:REPL 的全称是 “Read-Eval-Print Loop”,意思是 “‘读取-求值-输出’循环”,这个名字很好地描述了它的工作过程。)

要进入到 REPL 中,只需运行 Common Lisp 即可:

$ clisp
[1]>

在 REPL 提示符中,尝试输入一些表达式:

[1]> (+ 1 2)
3
[2]> (- 1 2)
-1
[3]> (- 2 1)
1
[4]> (+ 2 3 4)
9

函数

在了解了 Lisp 表达式的基本结构后,你可以使用函数来做更多有用的事。譬如,print 函数可以接受任意数量的参数,然后把它们都显示在你的终端上,pprint 函数还可以实现格式化打印。还有更多不同的打印函数,不过,pprint 在 REPL 中的效果就挺好的:

[1]> (pprint "hello world")

"hello world"

[2]>

你可以使用 defun 函数来创建一个自定义函数。defun 函数需要你提供自定义函数的名称,以及它接受的参数列表:

[1]> (defun myprinter (s) (pprint s))
MYPRINTER
[2]> (myprinter "hello world")

"hello world"

[3]>

变量

你可以使用 setf 函数来在 Lisp 中创建变量:

[1]> (setf foo "hello world")
"hello world"
[2]> (pprint foo)

"hello world"

[3]>

你可以在表达式里嵌套表达式(就像使用某种管道一样)。举个例子,你可以先使用 string-upcase 函数,把某个字符串的所有字符转换成大写,然后再使用 pprint 函数,将它的内容格式化打印到终端上:

[3]> (pprint (string-upcase foo))

"HELLO WORLD"

[4]>

Lisp 是动态类型语言,这意味着,你在给变量赋值时不需要声明它的类型。Lisp 默认会把整数当作整数来处理:

[1]> (setf foo 2)
[2]> (setf bar 3)
[3]> (+ foo bar)
5

如果你想让整数被当作字符串来处理,你可以给它加上引号:

[4]> (setf foo "2")
"2"
[5]> (setf bar "3")
"3"
[6]> (+ foo bar)

*** - +: "2" is not a number
The following restarts are available:
USE-VALUE      :R1      Input a value to be used instead.
ABORT          :R2      Abort main loop
Break 1 [7]>

在这个示例 REPL 会话中,变量 foobar 都被赋值为加了引号的数字,因此,Lisp 会把它们当作字符串来处理。数学运算符不能够用在字符串上,因此 REPL 进入了调试器模式。想要跳出这个调试器,你需要按下 Ctrl+D 才行(LCTT 译注:就 clisp 而言,使用 quit 关键字也可以退出)。

你可以使用 typep 函数对一些对象进行类型检查,它可以测试对象是否为某个特定数据类型。返回值 TNIL 分别代表 TrueFalse

[4]> (typep foo 'string)
NIL
[5]> (typep foo 'integer)
T

stringinteger 前面加上了一个单引号('),这是为了防止 Lisp(错误地)把这两个单词当作是变量来求值:

[6]> (typep foo string)
*** - SYSTEM::READ-EVAL-PRINT: variable STRING has no value
[...]

这是一种保护某些术语(LCTT 译注:类似于字符串转义)的简便方法,正常情况下它是用 quote 函数来实现的:

[7]> (typep foo (quote string))
NIL
[5]> (typep foo (quote integer))
T

列表

不出人意料,你当然也可以在 Lisp 中创建列表:

[1]> (setf foo (list "hello" "world"))
("hello" "world")

你可以使用 nth 函数来索引列表:

[2]> (nth 0 foo)
"hello"
[3]> (pprint (string-capitalize (nth 1 foo)))

"World"

退出 REPL

要结束一个 REPL 会话,你需要按下键盘上的 Ctrl+D,或者是使用 Lisp 的 quit 关键字:

[99]> (quit)
$

编写脚本

Lisp 可以被编译,也可以作为解释型的脚本语言来使用。在你刚开始学习的时候,后者很可能是最容易的方式,特别是当你已经熟悉 Python 或 Shell 脚本 时。

下面是一个用 Common Lisp 编写的简单的“掷骰子”脚本:

#!/usr/bin/clisp

(defun roller (num)  
  (pprint (random (parse-integer (nth 0 num))))
)

(setf userput *args*)
(setf *random-state* (make-random-state t))
(roller userput)

脚本的第一行注释(LCTT 译注:称之为“ 释伴 shebang ”)告诉了你的 POSIX 终端,该使用什么可执行文件来运行这个脚本。

roller 函数使用 defun 函数创建,它在内部使用 random 函数来打印一个伪随机数,这个伪随机数严格小于 num 列表中下标为 0 的元素。在脚本中,这个 num 列表还没有被创建,不过没关系,因为只有当脚本被调用时,函数才会执行。

接下来的那一行,我们把运行脚本时提供的任意参数,都赋值给一个叫做 userput 的变量。这个 userput 变量是一个列表,当它被传递给 roller 函数后,它就会变成参数 num

脚本的倒数第二行产生了一个“随机种子”。这为 Lisp 提供了足够的随机性来生成一个几乎随机的数字。

最后一行调用了自定义的 roller 函数,并将 userput 列表作为唯一的参数传递给它。

将这个文件保存为 dice.lisp,并赋予它可执行权限:

$ chmod +x dice.lisp

最后,运行它,并给它提供一个数字,以作为它选择随机数的最大值:

$ ./dice.lisp 21

13
$ ./dice.lisp 21

7
$ ./dice.lisp 21

20

看起来还不错!

你或许注意到,你的模拟骰子有可能会是 0,并且永远达不到你提供给它的最大值参数。换句话说,对于一个 20 面的骰子,这个脚本永远投不出 20(除非你把 0 当作 20)。有一个简单的解决办法,它只需要用到在本文中介绍的知识,你能够想到吗?

学习 Lisp

无论你是想将 Lisp 作为个人脚本的实用语言,还是为了助力你的职业生涯,抑或是仅仅作为一个有趣的实验,你都可以去看看一年一度(LCTT 译注:应该是两年一度)的 Lisp 游戏果酱 Game Jam ,从而收获一些特别有创意的用途(其中的大多数提交都是开源的,因此你可以查看代码以从中学习)。

Lisp 是一门有趣而独特的语言,它有着不断增长的开发者用户群、足够悠久的历史和新兴的方言,因此,它有能力让从事各个行业的程序员都满意。


via: https://opensource.com/article/21/5/learn-lisp

作者:Seth Kenlon 选题:lkxed 译者:lkxed 校对:wxy

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

极客们好,将 Ubuntu 22.04(Jammy Jellyfish)启动到 救援 Rescue 紧急 Emergency 模式可以重置忘记的用户密码、修复文件系统错误,以及在启动过程中禁用或启用 systemd 服务。

在这篇文章中,我们将学习如何启动 Ubuntu 22.04 LTS 系统进入救援和应急模式。救援模式类似于单用户模式,所有的故障排除步骤都在这里进行。救援模式加载最小的环境并挂载根文件系统。

而在紧急模式下,我们得到的是单用户 Shell,而不启动任何系统服务。因此,当我们无法启动系统进入救援模式时,就需要紧急模式。

启动 Ubuntu 22.04 进入救援或单用户模式

前往你想启动到救援或单用户模式的目标系统。在启动时按下 SHIFT + ESC 键,进入 GRUB 引导加载器页面。

Default-Grub-Screen-Ubuntu-22-04

选择第一个选项 “Ubuntu”,并按 e 键进入编辑模式。

在以 linux 开头的一行末尾,删除字符串 $vt_handoff 并添加字符串 systemd.unit=rescue.target

rescue-target-ubuntu-22-04

做完修改后,按 Ctrl + XF10 在救援模式下启动。

Troubleshooting-Commands-in-Rescue-Mode

进入救援模式后,运行所有的故障排除命令,并运行 systemctl reboot 命令来重启系统。

另一种启动系统进入救援模式的方法

重新启动系统并按下 ESC + Shift 键,进入 GRUB 启动界面。

选择第二个选项 “ Ubuntu 高级选项 Advanced Options for Ubuntu ”->选择“ 恢复模式 recovery mode ”选项并点击回车->选择 root(进入 root shell 提示符) root (Drop to root shell prompt)

下面是一个例子:

Boot-Ubuntu-22-04-Rescue-Mode

当你有了 root Shell,运行命令来恢复和修复系统问题,最后使用 systemctl reboot 来重启系统。

引导 Ubuntu 22.04 进入紧急模式

要启动系统进入紧急模式,首先进入 GRUB 页面。

Default-Grub-Screen-Ubuntu-22-04

选择第一个选项 “Ubuntu” 并按 e 键进行编辑。寻找以 linux 开头的一行,移到该行的末尾,删除字符串 $vt_handoff 并添加字符串 systemd.unit=emergency.target

Emergency-Mode-Ubuntu-22-04

Ctrl + XF10 将系统启动到紧急模式。

Command-in-Emergency-Mode-Ubuntu-22-04

同样,在紧急模式下,你可以在这个模式下执行所有的故障排除,完成后,就用 systemctl reboot 命令重启系统。

这篇文章的内容就这些。文章内容丰富,不要犹豫,请在你的技术朋友中分享它。请在下面的评论区发表你的疑问和反馈。


via: https://www.linuxtechi.com/boot-ubuntu-22-04-rescue-emergency-mode/

作者:Pradeep Kumar 选题:lkxed 译者:geekpi 校对:wxy

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

外媒报道中国芯片行业高速发展

数据显示,过去四个季度全世界增长速度最快的 20 家芯片行业公司有 19 家在中国。据中国半导体行业协会的数据,2021 年中国芯片制造商和设计公司的总销售额增长 18%,达到创纪录的逾 1 万亿元人民币。中芯国际和华虹半导体是中国最大的合同芯片制造商,中芯国际最近报告其季度销售额增长 67%,超过 GlobalFoundries 和台积电。视频芯片设计公司上海富瀚微电子的收入平均增长 37%,它计划进入电动汽车和人工智能领域。集成电路软件工具开发商上海概伦电子过去四个季度平均销售额增长了一倍,它声称其软件可用于制造 3 纳米芯片。

消息来源:彭博社
老王点评:美国的封锁一时打压了中国企业的增长,但也促进了中国芯片产业的发展。

Rust 有可能在 Linux 5.20 中合并

在 Linux 基金会近日举行的开源峰会上,Linus Torvalds 谈到了 Rust 在 Linux 内核中的可能性,并表示它可能很快就会登陆,甚至可能是在下一个内核周期。目前还没有任何 Rust for Linux 的拉取请求被发送和合并,但很多初始的 Rust 启用代码已经就绪。上个月发布了最新的 Rust for Linux 内核补丁,使更多的功能得以形成,并完成了更多审查。

消息来源:Phoronix
老王点评:说实话,Rust 支持是最值得期待的特性之一了,但是距离 Rust 在内核中普遍使用,可能还有很远。

内核开发者仍然在实验 -O3 级优化

Linux 内核的编译采用 -O2 级的优化,虽然采用更高级别 -O3 编译会得到更高性能的内核,但由于内核的复杂性和非常大的代码库,它很可能在低级别的内核代码中出现错误或不正确的行为。因此采用 -O3 编译的内核并没有得到广泛认可。甚至一些内核开发者不希望看到它成为 Kconfig 选项。但是有一些爱好者对 -O3 优化内核以获得更高的性能感兴趣,或者试图发现 Linux 内核代码和编译器本身的优化出错的错误。最近有开发者发出一组补丁,使之可以在所有架构上使用该优化级别。

消息来源:Phoronix
老王点评:一般来说,上游的 Linux 内核开发者对新的的编译器功能是相当保守的,只是为了提高性能,而这可能意味着微妙的错误/难以检测的问题。但是我觉得作为实验性的功能值得探索。