2022年11月

你可以通过以下方式确定你的 Linux 发行版中是否正在运行 systemd 或其它初始化系统。

首个进程在你启动 Linux 发行版时开始运行,它称为初始化进程 init( 初始化 initialization 的缩写)。它的进程标识符为 1(即 pid=1)。基于 Unix 的系统中的所有进程和应用程序都是这个初始化进程的后代。

根据功能和特性,存在不同类型的初始化进程。例如,systemd、Runit、OpenRC、sysVinit 等。其中,systemd 是最流行和最现代的一种,被包括 Ubuntu 和 Fedora 在内的所有现代 Linux 发行版使用和采用。

与传统的基于 Unix 的初始化系统相比,systemd 及其性能一直存在争议。但这就是另外一个话题了。

让我们看看如何确定在 Linux 发行版中运行的是 systemd 还是其它初始化系统。

systemd 还是其它初始化系统?

不幸的是,没有直接的命令可以找到它。你可以从初始化进程追溯它,它基本上是到 /sbin/init 的符号链接,即 pid=1。

使用 strings 命令打印嵌入在二进制文件 /sbin/init 中的文本并使用以下命令搜索 init

strings /sbin/init | grep init

示例 1

在下面的输出中,它是一个运行 Debian(Peppermint OS)的 sysVinit 系统。如你所见,它清楚地显示了 init 进程名称。

strings /sbin/init | grep init

显示使用 sysVinit 而不是 systemd 的示例

如果在上述同一个系统中找 systemd,那么不会有任何结果。因此,你可以得出结论,你正在运行 sysVinit 而不是 systemd。

示例 2

如果你在 systemd 系统中运行上述命令,你可以在输出的第一行轻松看到 systemd 及其版本。

strings /sbin/init | grep systemd

显示它使用 systemd 的示例

示例 3

你也可以尝试使用 pstree 命令打印进程树,它应该会显示第一个进程名称。它应该是 systemdinit,如下例所示。

pstree

pstree 显示使用 systemd

pstree 显示使用 init

这就好了。这样你就可以轻松找出你的发行版是使用 systemd 还是其他的。


via: https://www.debugpoint.com/systemd-or-init/

作者:Arindam 选题:lkxed 译者:geekpi 校对:wxy

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

手写代码导致美国宇航局的水手号探测器失败

1962 年夏天,美国宇航局启动了水手 1 号任务,这是一项无人驾驶的任务,该装置将飞过金星并探测数据。当时的工程师通常在纸上写出他们的代码。然后这些代码通过一个复杂的系统被翻译成计算机可读的卡片,然后通过计算机执行该程序。这种手工使得意外错误率变得很高。缺失的符号与字符最终导致了水手 1 号任务的彻底失败。这次任务在当时花费了大约 1800 万美元,相当于今天的 1.5 亿美元。

消息来源:Slash Gear
老王点评:计算机发展早期,不说流程,就是工具也很简陋。但是就是这样,也送上天那么多飞行器。

一个简单的安卓锁屏漏洞获得了 7 万美元

研究人员发现,任何能拿到谷歌 Pixel 手机的人都可以通过换上自己的 SIM 卡,并输入预设的恢复代码,从而绕过安卓操作系统的锁屏保护。这个漏洞的利用非常简单,但谷歌花了大约五个月的时间来修复。谷歌为此向他支付了 7 万美元的奖金。

消息来源:Tech Crunch
老王点评:看似这个钱挣的容易,但是实际上研究人员投入了大量精力才可能遇到这样一块“狗头金”。

英特尔推出深度伪造实时检测工具

深度伪造视频现在无处不在,你可能见过名人做或说他们实际上从未做过的事情的视频。英特尔开发了 FakeCatcher,这项技术能够以 96% 的准确率检测虚假人脸视频。这是世界上第一个实时深度伪造检测器,它可以在几毫秒内返回结果。该工具是通过检测视频像素中微妙的“血流”信号,在真实视频中寻找真实的线索。当心脏泵血时,人的静脉会改变颜色,这些血流信号是可以从面部各处收集的,算法将这些信号翻译成时空图。然后,利用深度学习,就可以立即检测出一个视频是真的还是假的。

消息来源:PC Gamer
老王点评:果然魔高一尺,道高一丈。不过我想深度伪造可能很快就会学会添加血流信号。

大家好!今年早些时候,我在写《DNS 是如何工作的》 时,有人问我——为什么人们有时在域名的末尾加一个点?例如,如果你通过运行 dig example.com 查询 example.com 的 IP,你会看到一下内容:

$ dig example.com
example.com.        5678    IN  A   93.184.216.34

执行完 dig 命令后,example.com 有一个 . ——变成了 example.com.!发生了什么?

有些 DNS 工具也要求传给它的域名后加一个 .:如果你在使用 miekg/dns 时传给它 example.com,它会报错:

// trying to send this message will return an error
m := new(dns.Msg)
m.SetQuestion("example.com", dns.TypeA)

最初我以为我知道这个问题的答案(“呃,末尾的点意味着域名是完全限定的?”)。这是对的 —— 一个 完全限定域名 fully qualified domain name (FQDN)是一个末尾有 . 的域名!

但是为什么末尾的点是有用且重要的呢?

在 DNS 的请求/响应中,域名的末尾并没有 “.”

我曾经(错误地)认为 “为什么末尾有一个点?”的答案可能是 “在 DNS 请求/响应中,域名末尾有一个 .,所以我们把它放进去,以匹配你的计算机实际发送/接收的内容”。但事实并不是这样!

当计算机发送 DNS 请求/响应时,域名的末尾并没有点。实际上,域名中没有点。

域名会被编码成一系列的长度/字符串对。例如,域名 example.com 被编码为这 13 个字节。

7example3com0

编码后的内容一个点也没有。一个 ASCII 域名(如 example.com)被转成了各种 DNS 软件的 DNS 请求/响应中使用的格式。

今天我们来讨论域名被转成 DNS 响应的一个地方:区域文件。

区域文件中域名末尾的 “.”

一些人管理域名的 DNS 记录的方法是创建一个被称为 “区域文件” 的文本文件,然后配置一些 DNS 服务器软件(如 nsdbind)来为该区域文件中指定的 DNS 记录提供服务。

下面是一个对应 example.com 的示例区域文件:

orange  300   IN    A     1.2.3.4
fruit   300   IN    CNAME orange
grape   3000  IN    CNAME example.com.

在这个文件中,任何不以 . 结尾的域名(比如 orange)后都会自动加上 .example.com。所以 orange 成了 orange.example.com 的简称。DNS 服务器从它的配置中得知这是一个 example.com 的区域文件,所以它知道在所有不以点结尾的名字后面自动添加 example.com

我想这里的想法只是为了少打几个字符——如果要打出全称,区域文件会是这样:

    orange.example.com.  300   IN    A     1.2.3.4
    fruit.example.com.   300   IN    CNAME orange.example.com.
    grape.example.com.   3000  IN    CNAME example.com.

确实多了很多字符。

你也可以不通过区域文件来使用 DNS

尽管官方的 DNS RFC(RFC 1035)中定义了区域文件格式,但你也可以不通过区域文件来使用 DNS。例如,AWS Route 53 就不用区域文件来存储 DNS 记录!你可以通过 Web 界面或 API 来创建记录,我猜他们是用某种数据库而不是一堆文本文件来存储记录。

不过,Route 53(像许多其他 DNS 工具一样)确实支持导入和导出区域文件,这个功能或许在你更换 DNS 提供商时很有用。

dig 命令输出中末尾的 “.”

现在我们来讨论下 dig 命令的输出:

$ dig example.com
; <<>> DiG 9.18.1-1ubuntu1.1-Ubuntu <<>> +all example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10712
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;example.com.           IN  A

;; ANSWER SECTION:
example.com.        81239   IN  A   93.184.216.34

有一件奇怪的事是,几乎每一行都以 ;; 开头,这是怎么回事?; 是区域文件中的注释字符!

我想 dig 以这种奇怪的方式输出的原因可能是为了方便你粘贴这些内容到区域文件时,不用修改就可以直接用。

这也是 example.com 末尾有个 . 的原因 —— 区域文件要求域名末尾必须有点(否则它们会被解释为是相对于该区域的)。因此 dig 也这么处理了。

我真的希望 dig 有一个 +human 选项,以更人性化的方式打印出这些信息,但现在我太懒了,懒得花工夫去实际贡献代码来做这件事(而且我并不擅长 C),所以我只能在我的博客上抱怨一下 :smiley:

curl 命令输出中末尾的 “.”

我们来看下另一个末尾有 . 的例子:curl

我家里有台计算机名为 grapefruit,其上运行着 Web 服务器。当我执行 curl grapefruit 时,会输出:

$ curl grapefruit
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>
<head>
......

这样运行没问题!但是如果我在域名后加一个 . 会怎样呢?它报错了:

$ curl grapefruit.
curl: (6) Could not resolve host: grapefruit.

发生了什么?为了搞清楚,我们需要先来学习下搜索域:

初识搜索域

当我执行 curl grapefrult 时,它是怎么被转成一个 DNS 请求的?你可能会认为我的计算机会向域名 grapefruit 发送一个请求,对吗?但事实并不是这样。

让我们用 tcpdump 来看看到底是什么域名在被查询。

$ sudo tcpdump -i any port 53
[...] A? grapefruit.lan. (32)

实际上是向 grapefruit.lan. 发送的请求。为什么呢?

解释一下:

  1. curl 调用函数 getaddrinfo 来查询 grapefruit
  2. getaddrinfo 查询了我计算机上的文件 /etc/resolv.conf
  3. /etc/resolv.conf 包含两行内容:
nameserver 127.0.0.53
search lan
  1. 因为有 search lan 这行内容,所以 getaddrinfograpefruit 的末尾添加了一个 lan,去查询 grapefruit.lan

什么时候搜索域被使用?

现在我们知道了一些奇怪的事情:当我们查询一个域名时,有时会有一个额外的东西(如 lan)被加到最后。但是什么时候会发生这种情况呢?

  1. 如果我们在域名末尾添加一个 .,那么这时不会用到搜索域
  2. 如果域名中间包含一个 .(如 example.com),那么默认也不会用到搜索域。但是可以通过修改配置来改变处理逻辑(在 ndots 里有更详细的说明)

我们现在知道了 curl grapefruit.curl grapefruit 结果不一样的原因——因为一个查询的是 grapefruit.,而另一个查询的是 grapefruit.lan.

我的计算机怎么知道使用哪个搜索域呢?

当我连接路由时,它会通过 DHCP 告诉我它的搜索域是 lan —— 它也是通过这个方式给我的计算机分配 IP。

所以为什么要在域名末尾加一个点呢?

现在我们已经了解了区域文件和搜索域,下面是我认为的人们要在域名末尾加点的原因:

有两种情况下,域名会被修改,并在末尾添加其他东西。

  • example.com 的区域文件中,grapefruit 会被转为 grapefruit.example.com
  • 在我的本地网络(我的计算机已经配置了使用搜索域 lan),grapefruit 被转为 grapefruit.lan

因此,由于域名在某些情况下实际上可能被转成其他名字,人们就在结尾处加一个 .,以此来表示 “这是域名,末尾不需要添加任何东西,这就是全部内容”。否则会引起混乱。

“这就是全部内容”的技术术语是**“完全限定域名”,简称为“FQDN”**。所以 google.com. 是一个完全限定域名,而 google.com 不是。

我总是要提醒自己这样做的原因,因为我很少使用区域文件和搜索域,所以我经常觉得——“我当然是指 google.com 而不是 google.com.something.else! 我为什么要指其他东西?那太傻了!”

但是有些人确实在使用区域文件和搜索域(例如 Kubernetes 中使用了搜索域!),所以结尾的 . 很有用,可以让人确切的知道,不应该再添加其他东西。

什么时候在末尾添加 “.”?

以下是关于何时在域名末尾加 ". " 的几个简单说明:

需要添加:配置 DNS 时

在配置 DNS 时,使用完全限定域名从来都不是坏事。你不一定要这样做:非完全限定域名通常也能正常工作,但我从来没有遇到过不接受完全限定域名的 DNS 软件。

有些 DNS 软件需要这样做:现在我为 jvns.ca 使用的 DNS 服务器让我在域名的末尾加上 .(例如在 CNAME 记录中),并提示如果我不添加,它将在我输入的内容末尾加上 .jvns.ca。我不同意这个设计决定,但这不是什么大问题,我只是在最后加一个 .

不需要加:在浏览器中

令人困惑的是,在浏览器中,在域名结尾处加一个 . 不能正常运行。例如,如果我在浏览器中输入 https://twitter.com.,它就会报错。它会返回 404。

我认为这里发生的事情是,它将 HTTP Host 标头设置为 Host:twitter.com.,而对端的 Web 服务器则期望 Host:twitter.com

同样地,https://jvns.ca. 由于某种原因,返回了一个 SSL 错误。

我认为相对域名在过去是比较常见的

最后一件事:我认为“相对”域名(比如我用 grapefruit 来指代我家的另一台计算机 grapefruit.lan)在过去更常用,因为 DNS 是在大学或其他有大型内部网络的大机构中开发的。

在今天的互联网上,使用“绝对”域名(如 example.com)似乎更为普遍。


via: https://jvns.ca/blog/2022/09/12/why-do-domain-names-end-with-a-dot-/

作者:Julia Evans 选题:lujun9972 译者:lxbwolf 校对:wxy

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

本指南介绍了如何在没有互联网连接的情况下离线更新 Ubuntu 的步骤。

在很多情况下,你可能需要在没有互联网连接的情况下更新你的 Ubuntu 系统。你可能在外地不方便上网,也可能你需要更新一堆未联网的 Ubuntu,不管是哪种情况,保持你的系统更新最新的软件包总是需要的。

当然,始终建议通过联网来更新系统。

但有时,出于安全考虑,这是不行的。连接到互联网可能需要给你的系统进行额外的加固,以保护它们免受黑客和恶意软件的攻击。

以下的方法使用 apt-offline 来解决这些问题,并概述了在没有互联网的情况下离线更新 Ubuntu 的步骤。

准备环节

  • 一台能连接到网络的 Ubuntu(你朋友的、咖啡馆、实验室系统)
  • 存储了软件包的 U 盘
  • 两个系统都安装了 apt-offline:一个系统离线,另一个系统联网

安装 apt-offline

在两个系统下安装 apt-offline。你可以使用以下命令安装:

sudo apt install apt-offline

如果你想在离线的目标系统安装 apt-offline,你可以提前下载到 U 盘里,然后复制到目标系统,再使用下面的命令安装。

Ubuntu 22.04 LTS 和其他版本的下载链接如下所示。你可以选择一个镜像并下载 deb 文件。

下载 .deb 文件 – apt-offline
sudo dpkg -i name_of_package.deb

如何更新 Ubuntu

在离线的目标系统上打开终端,使用以下命令创建一个 .sig 签名文件:

sudo apt-offline set ~/offline-data.sig

创建签名文件

在这个刚创建的签名文件中,包含下载所需的软件包的路径和详细信息。

签名文件的内容

把签名文件复制到 U 盘中,再插到联网的 Ubuntu 系统上。

在联网的 Ubuntu 上创建一个目录(参见下面)来存放这些文件。

打开一个终端,运行以下命令来下载所需的软件包。记得根据你的系统,更改下载目录和 .sig 签名文件的路径。

apt-offline get -d ~/offline-data-dir offline-data.sig

下载软件包以离线安装

你可以看到文件相应下载,然后复制整个下载目录到 U 盘,再插到离线的 Ubuntu 系统。

运行以下命令将下载的软件包安装到离线系统,记得根据你的系统更改目录路径。

sudo apt-offline install offline-data-dir/

安装软件包

如果一切顺利,你将获得一个更新完的 Ubuntu。

重复以上步骤,就可以保持你的离线 Ubuntu 为最新版本。

希望以上教程能帮到你更新离线的 Ubuntu 系统,如果你遇到任何问题,请在下面的评论框中告诉我。


via: https://www.debugpoint.com/how-to-update-or-upgrade-ubuntu-offline-without-internet/

作者:Arindam 选题:lkxed 译者:littlebirdnest 校对:wxy

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

英伟达采用形式验证来验证软件安全性

英伟达软件安全副总裁说,“面向测试的软件验证对安全来说根本不起作用,你可以对提供给用户的功能的质量有一个衡量标准,但对于安全问题,就没有什么作用,……很难知道你是否已经完成了。”幸运的是,有可能用数学方法证明你的代码的行为与它的规范精确一致。这个过程被称为“形式验证”。英伟达采用软件形式验证行业解决方案 SPARK 来证明软件的安全性。在几年前进行过概念验证后,现在许多英伟达产品在使用 SPARK 组件发布。

消息来源:AdaCore
老王点评:形式验证是个好方法,但是不是那么容易掌握和推行。

JavaScript、Java、Python、Kotlin 和 Rust 开发者增长惊人

根据 SlashData 去年夏天从 163 个国家的 26000 多名开发者调查统计而成的第 23 期《开发者国家报告》,JavaScript 仍然是最大的编程语言社区,全球估计有 1960 万开发者每天都在使用 JavaScript;在过去的两年里,Java 社区的规模已经从 830 万增加到 1650 万,而同期开发者只增加了 50%;Python 在过去两年中增加了约 800 万新的开发人员;Kotlin 和 Rust 社区的规模在过去两年里都翻了一番。

消息来源:ZDNet
老王点评:开发人员越来越倾向于使用主流开发工具,所以流行的越发流行,但是这样就会扼杀一些创新。

密码学家建议考虑非晶格的后量子密码算法

目前许多密码学系统的安全性是基于大数的因数分解的,但因数分解的一个怪癖使其容易受到量子计算机的攻击。因此人们对上世纪 90 年代提出的“晶格密码学”寄予厚望,美国 NIST 选择的四个后量子密码学标准有三个采用晶格密码学。RSA 算法名称中的 S,Adi Shamir 对此表示担忧,“从某种意义上说,我们是把所有鸡蛋放在同一个篮子里”。今年夏天早些时候,一个有前途的后量子密码学方案不是用量子计算机,而是用一台普通的笔记本电脑破解的。

消息来源:Slashdot
老王点评:确实如此,只有一种抗量子的密码理论,很难说会不会被发现潜在的弱点。

时至今日,世界上已经有成百上千种不同的 Linux 发行版。

它们中的大多数都可以被划归为三个大类 : Debian、Red Hat(Fedora)以及 Arch Linux。

使用基于 Debian/Ubuntu、Red Hat/SUSE 或者 Arch 的 Linux 发行版自然有它们的优势。它们很受大众欢迎,因此它们的包管理器能够提供大量的软件包。

然而,有一些用户更倾向于使用从头开始构建、独立于 DEB/RPM 这类包管理系统之外的发行版。

在这篇文章当中,我们将列出一些优秀的独立 Linux 发行版。

注意 : 显然,下面的列表显然不会包括一些广受欢迎,通常作为创建新发行版的基础的发行版,如 Debian、Ubuntu 和 Fedora 等。此外,列表顺序不分先后,没有特定的排名。

1、NixOS

Image Credits: Distrowatch

NixOS 最初发布于 2003 年,NixOS 建立在 Nix 包管理器之上。它每年发布两个版本,通常是在 5 月和 11 月。

NixOS 可能不是一个直接面向新用户或普通用户的发行版。然而,其独特的 包管理 方法吸引了各种用户。

此外,它仍然支持 32 位系统。

其他特性:

  • 构建隔离的包
  • 可靠的升级,并且具有回滚功能
  • 可重现的系统配置
NixOS

2、Gentoo Linux

Image Credits: Distrowatch

Geetoo Linux 是一个主要针对操作系统专家的独立 Linux 发行版。它是为那些希望自由定制、微调和优化操作系统以满足其要求的用户而构建。

Gentoo 使用 Portage 包管理器 来创建和安装软件包,通常还允许你针对你的硬件来优化它们。Chrome 的开源版本 Chromium OS 便是使用 Gentoo 作为其核心的。

不要忘记,Gentoo 是 仍然支持 32 位架构的发行版 之一。

其他特性:

  • 增量更新
  • 基于源码的软件管理方法
  • 支持 GURU(Gentoo 用户仓库)的 层叠 Overlay 仓库的概念,允许用户添加 Gentoo 尚未提供的软件包
Gentoo Linux

3、Void Linux

Image Credits: Distrowatch

Void Linux 是一个 滚动发布的发行版,使用 X 二进制软件包系统(XBPS)来安装和删除软件。它由前 NetBSD 开发者 Juan Romero Pardines 创建。

它使用 runit 而不是 systemd 作为其初始化系统。此外,它还让你可以选择使用多个 桌面环境

其他特性:

  • 最小化的系统要求
  • 官方库也提供非自由软件包
  • 支持树莓派
  • 集成 OpenBSD 的 LibreSSL
  • 支持 musl C 库
  • 支持 32 位系统
Void Linux

4、Solus Linux

solus budgie 2022

Solus 的前身是 EvolveOS,它从头开始构建并提供了一些令人兴奋的特性。Solus 的旗舰版本使用自己打造的 Budgie 作为桌面环境。

与本篇文章介绍的其他系统相比,Solus 对于新手较为友好。它设法成为 最好的 Linux 发行版 之一。

它使用 eopkg 作为其包管理系统,支持版滚动发布模型。按照开发人员的说法,开发 Solus 的目标是用于个人电脑。

其他特性:

  • 支持 Budgie、Gnome、MATE 和 KDE Plasma
  • 各种开箱即用的软件,从而减少设置工作
Solus Linux

5、Mageia

Image Credits: Distrowatch

Mageia 始于 2010 年,它是 Mandriva Linux 的一个分支。它的目标是成为稳定且安全的桌面和服务器操作系统。

Mageia 是一个社区驱动的项目,由非营利组织和贡献者支持。每年会发布一个大版本。

其他特性:

  • 支持 32 位系统
  • 支持 KDE Plasma、Gnome 和 XFCE
  • 最低的系统要求
Mageia

6、Clear Linux

Image Credits: Distrowatch

Clear Linux 是一个由英特尔发布的发行版,主要设计考虑是性能和云服务的使用。

有趣的是,Clear Linux 升级时是作为一个整体而非去升级单个的软件包。所以,即使你不小心弄乱了系统设置,它也可以正确的启动,执行恢复出厂设置,并让用户重新设置。

它不太适合个人用户使用。但可以作为一个独特的选择而尝试一下。

其他特性:

  • 针对英特尔平台的高度调优
  • 用户和系统文件之间严格分离
  • 持续的漏洞扫描
Clear Linux OS

7、PCLinuxOS

Image Credits: Distrowatch

PCLinuxOS 是一个 x86\_64 的 Linux 发行版,使用 APT/RPM 包管理。你可以使用 KDE Plasma、Mate 以及 XFCE 桌面,它同时还提供了更多特性的社区版本的桌面。

得益于 Synaptic 包管理器,本地安装的 PCLinuxOS 采用了 APT 包管理系统。但你也可以从它的仓库中找到 RPM 包。

其他特性:

  • mylivecd 脚本允许用户去生成一个当前已安装的硬件驱动的“快照”(所有的配置、应用、文档等)并且将它压缩为 ISO CD/DVD/USB 镜像
  • 额外支持超过 85 种语言
PCLinuxOS

8、4MLinux

4m linux 2022

4MLinux 是一个通用的 Linux 发行版,重点聚焦于下面四个 “M”

  • 维护 Maintenance (系统救援 Live CD)
  • 多媒体 Multimedia (支持大量的图形、音频和视频格式)
  • 微服务器 Miniserver (支持 DNS、FTP、HTTP、MySQL、NFS、Proxy、SMTP、SSH 和 Telnet)
  • 神秘 Mystery (包含了经典 Linux 游戏的集合)

它具有最低的系统要求,可作为桌面和服务器版本使用.

其他特性:

  • 支持大量的图形、音频和视频格式
  • 是小型并且通用的 Linux 发行版
4MLinux

9、Tiny Core Linux

Image Credits: Distrowatch

Tiny Core Linux 专注于使用 BusyBox 和 FLTK 提供一个基础的系统。它不是一个完备的桌面,所以,并不能保证它可以运行于任何系统。

它只是一个启动到非常精简的 X 桌面所需的核心,通常带有有线互联网访问权限。

用户可以很好的控制一切,但对于新 Linux 用户来说,它并不是一个轻松的开箱即用的系统。

其他特性:

  • 旨在从启动时创建的内存副本中运行
  • 默认情况下,其操作就像像云端 / 互联网客户端一样
  • 用户可以使用 appbrowser 来游览库以及下载应用
Tiny Core Linux

10、Linux From Scratch(LFS)

Image Credit: Reddit

Linux From Scratch(LFS)并不是一个系统,而是通过手动构建所有组件来安装 Linux 的一种方法。一旦完成,它提供了一个紧凑、灵活和安全的系统,并且可以很好的理解一个基于 Linux 的操作系统内部是如何工作的。

如果你希望去深入理解 Linux 是如何工作的并且探寻其具体细节,那么 Linux From Scratch(LFS) 是你一定要去尝试,不能错过的一个项目。

其他特性

  • 完全从头开始,定制化的构建 Linux 系统
  • 极度的灵活性
  • 由于从源码开始编译,提供了额外的安全性
Linux From Scratch

11、Slackware

Image Credits: Distrowatch

Slackware 是现今还在维护的最古老的发行版。最初创建于 1993 年,以 Softlanding Linux 系统为基础,随后,许多的 Linux 发行版都是基于 Slackware。

Slackware 目标是称为最类似于 UNIX 的 Linux 发行版,同时保持简单和稳定。

其他特性:

  • 支持 32 位和 64 位系统
  • 大量的在线文档
  • 从奔腾处理器到最新的机器,它都可以运行
Slackware

12、Alpine Linux

alpine linux xfce 2022

Alpine Linux 是一个社区开发的操作系统,专为路由器、防火墙、VPN、VoIP 盒子和服务器而设计。它是 LEAF 项目的一个分支。

Alpine Linux 使用 apk-tools 包管理器,最初由 shell 脚本编写,而后使用 c 语言重构。它是最小的 Linux 发行版之一,仍然支持 32 位系统,并且是一个可以完全从电脑内存运行的操作系统。

其他特性:

  • 提供大小仅为 5MB 的最小容器镜像
  • 对于主库,提供 2 年的支持;对于社区库,在下一个稳定版本发布前提供支持
  • 使用 musl libc 制作,Busybox 使用资源效率高的容器
Alpine Linux

13、KaOS

Image Credits: Distrowatch

KaOS 是一个受到 Arch 启发,从头开始构建的 Linux 发行版。它使用 pacman 包管理器。它是按照"一个桌面环境(KDE Plasma),一个工具包(Qt),一个架构(X86\_64)"的理念构建的。

它的软件库比较有限,但依然为普通用户提供了许多工具。

其他特性:

  • 最新的 Plasma 桌面
  • 紧密集成的滚动和透明的现代桌面发行版
KaOS

总结

如果你需要一些独特的体验,那么这些独立 Linux 发行版应该能很好的满足你。

然而,如果你想要用其来替换如 Ubuntu 这样主流的 Linux 发行版作为你的桌面系统……你也许需要三思而后行,上面大多数的发行版(并不代表所有)都不是一个日常使用的桌面系统的理想的选项。

但是话又说回来,如果你对 Linux 发行版充满了经验,那么毫无疑问,你会享受这项冒险的任务的。

如果你想尝试这些独立发行版的其中一种,哪一个会是你的优先选择呢 ? 请在评论中与我们分享。


via: https://itsfoss.com/independent-linux-distros/

作者:sreenath 选题:lkxed 译者:MuggleWei 校对:wxy

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