Merge branch 'master' of https://github.com/LCTT/TranslateProject into translating

This commit is contained in:
geekpi 2022-04-13 10:31:38 +08:00
commit 724061d094
11 changed files with 1068 additions and 769 deletions

View File

@ -0,0 +1,411 @@
[#]: collector: (lujun9972)
[#]: translator: (jiamn)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-14462-1.html)
[#]: subject: (Analyze Linux startup performance)
[#]: via: (https://opensource.com/article/20/9/systemd-startup-configuration)
[#]: author: (David Both https://opensource.com/users/dboth)
Linux 启动性能分析
======
> 用 systemd-analyze 洞悉并解决 Linux 启动性能问题。
![](https://img.linux.net.cn/data/attachment/album/202204/12/120909ygssda7j3t3a3a3a.jpg)
系统管理员的一部分工作就是分析系统性能,发现并解决引起性能不佳、启动时间长的问题。系统管理员也需要去检查 systemd 的配置和使用的其它方面。
systemd 初始化系统提供了 `systemd-analyze` 工具,可以帮助发现性能问题和其他重要的 systemd 信息。在以前的文章《[分析 systemd 日历和时间跨度][2]》里,我用了 `systemd-analyze` 去分析 systemd 里的时间戳和时间跨度,但是这个工具还有很多其他用法,这个文章里我将再揭示一些。
LCTT 译注systemd 是目前主流 Linux 发行版采用的系统管理系统)
LCTT 译注:为了区分英文的 “boot” 和 “startup” 的不同涵义,此处将 “boot” 翻译为“引导”“startup” 翻译为“启动”。)
### 概述启动
Linux 启动过程是值得学习关注的地方,因为 `systemd-analyze` 工具很多功能聚焦在<ruby>启动<rt>startup</rt></ruby>过程。但是首先,要理解<ruby>引导<rt>boot</rt></ruby><ruby>启动<rt>startup</rt></ruby>。引导阶段从 BIOS 加电自检POST开始结束于内核完成加载并控制主机系统然后是开始了启动过程也是 systemd 日志的开始点。
这个系列的第二篇文章《[理解 Linux 启动时的 systemd][3]》中,我详细讨论了启动阶段的内容和过程。在这篇文章里,我想研究一下启动过程,看看需要多少时间和大部分时间花费在哪里。
下面我将展示的结果来自我的主要工作站,这比虚拟机的结果要有趣得多。这个工作站包括一块 华硕 TUF X299 Mark 2 主板、一个英特尔 i9-7960X CPU16 核 32 线程64 G 内存。下面的一些命令非 root 用户也可以使用,但是我在这篇文章里使用了 root 用户,以避免在用户之间切换。
检查启动过程有几种方法,最简单的 `systemd-analyze` 命令显示了启动的几个主要部分耗费的时间,包括内核启动、装载运行 initrd即初始 ramdisk这是一个用来初始化一些硬件、挂载 `/` 根文件系统的临时系统镜像),还有用户空间(加载所有使主机达到可用状态的程序和守护程序)。如果没有像该命令传递子命令,默认是 `systemd-analyze time`
```
[root@david ~]$ systemd-analyze
Startup finished in 53.921s (firmware) + 2.643s (loader) + 2.236s (kernel) + 4.348s (initrd) + 10.082s (userspace) = 1min 13.233s
graphical.target reached after 10.071s in userspace
[root@david ~]#
```
这个输出中最值得注意的数据是在固件BIOS中花费的时间几乎 54 秒。这是一个不太正常的时间,我的其他物理系统都没有花费这么长的时间来通过 BIOS。
我的 System76 Oryx Pro 笔记本在 BIOS 阶段只花了 8.506 秒,我家里所有的系统都在 10 秒以内。在线搜索一阵之后,我发现这块主板以其超长的 BIOS 引导时间而闻名。我的主板从不“马上启动”总是挂起我需要关机再开机BIOS 报错,按 `F1` 进入 BIOS 设置,选择要引导的驱动器完成引导,多花费的时间就是这样用掉的。
不是所有主机都会显示固件数据LCTT 译注:固件引导中不涉及 systemd。我的不科学的实验使我相信这个数据只显示给英特尔 9 代或以上的处理器。但这可能是不正确的。
这个关于引导、启动的概述提供了很好的(虽然有限)的信息,但是还有很多关于启动的信息,我将在下面描述。
### 分配责任
你可以用 `systemd-analyze blame` 来发现哪个 systemd 单元的初始化时间最长。其结果按照初始化时间长短排序,从多到少:
```
[root@david ~]$ systemd-analyze blame
5.417s NetworkManager-wait-online.service
3.423s dracut-initqueue.service
2.715s systemd-udev-settle.service
2.519s fstrim.service
1.275s udisks2.service
1.271s smartd.service
996ms upower.service
637ms lvm2-monitor.service
533ms lvm2-pvscan@8:17.service
520ms dmraid-activation.service
460ms vboxdrv.service
396ms initrd-switch-root.service
<截断删去了好多时间不长的条目>
```
因为很多服务是并行开始的,在 BIOS 之后所有单元加在一起的总数大大超过了 `systemd-analyze time` 汇总数。很多都是小数,不能显著的节省时间。
这个命令提供的数据指明了改善启动时间的办法。无用的服务可以禁用(`disable`。在这个启动过程中似乎没有任何一个服务需要花费过长的时间。你可能会在每次启动时看到不同的结果。LCTT 译注:并行启动服务的原因)
### 关键链
就像项目管理中的关键路径一样关键链显示了在启动过程中发生的时间关键的事件链LCTT 译注systemd 可以定义服务间的依赖,构成关键链)。如果启动缓慢,这些是你想查看的 systemd 单元因为它们是导致延迟的单元。这个工具不会显示所有启动的单元只显示这个关键事件链中的单元。LCTT 译注:相当于最短路径。并不显示依赖不在关键链上的服务单元)
```
[root@david ~]# systemd-analyze critical-chain
The time when unit became active or started is printed after the "@" character.
The time the unit took to start is printed after the "+" character.
graphical.target @10.071s
└─lxdm.service @10.071s
└─plymouth-quit.service @10.047s +22ms
└─systemd-user-sessions.service @10.031s +7ms
└─remote-fs.target @10.026s
└─remote-fs-pre.target @10.025s
└─nfs-client.target @4.636s
└─gssproxy.service @4.607s +28ms
└─network.target @4.604s
└─NetworkManager.service @4.383s +219ms
└─dbus-broker.service @4.434s +136ms
└─dbus.socket @4.369s
└─sysinit.target @4.354s
└─systemd-update-utmp.service @4.345s +9ms
└─auditd.service @4.301s +42ms
└─systemd-tmpfiles-setup.service @4.254s +42ms
└─import-state.service @4.233s +19ms
└─local-fs.target @4.229s
└─Virtual.mount @4.019s +209ms
└─systemd-fsck@dev-mapper-vg_david2\x2dVirtual.service @3.742s +274ms
└─local-fs-pre.target @3.726s
└─lvm2-monitor.service @356ms +637ms
└─dm-event.socket @319ms
└─-.mount
└─system.slice
└─-.slice
[root@david ~]#
```
前面有 `@` 的数字表示单元激活开始启动所使用的绝对秒数。前面有 `+` 的数字显示单元启动所需的时间。
### 系统状态
有时候你需要确定系统的当前状态,`systemd-analyze dump` 命令转储了当前系统状态的大量数据。有主要的启动时间戳,一个每个 systemd 单元的列表,并对每个单元状态进行了完整描述:
```
[root@david ~]# systemd-analyze dump
Timestamp firmware: 1min 7.983523s
Timestamp loader: 3.872325s
Timestamp kernel: Wed 2020-08-26 12:33:35 EDT
Timestamp initrd: Wed 2020-08-26 12:33:38 EDT
Timestamp userspace: Wed 2020-08-26 12:33:42 EDT
Timestamp finish: Wed 2020-08-26 16:33:56 EDT
Timestamp security-start: Wed 2020-08-26 12:33:42 EDT
Timestamp security-finish: Wed 2020-08-26 12:33:42 EDT
Timestamp generators-start: Wed 2020-08-26 16:33:42 EDT
Timestamp generators-finish: Wed 2020-08-26 16:33:43 EDT
Timestamp units-load-start: Wed 2020-08-26 16:33:43 EDT
Timestamp units-load-finish: Wed 2020-08-26 16:33:43 EDT
Timestamp initrd-security-start: Wed 2020-08-26 12:33:38 EDT
Timestamp initrd-security-finish: Wed 2020-08-26 12:33:38 EDT
Timestamp initrd-generators-start: Wed 2020-08-26 12:33:38 EDT
Timestamp initrd-generators-finish: Wed 2020-08-26 12:33:38 EDT
Timestamp initrd-units-load-start: Wed 2020-08-26 12:33:38 EDT
Timestamp initrd-units-load-finish: Wed 2020-08-26 12:33:38 EDT
-> Unit system.slice:
Description: System Slice
Instance: n/a
Unit Load State: loaded
Unit Active State: active
State Change Timestamp: Wed 2020-08-26 12:33:38 EDT
Inactive Exit Timestamp: Wed 2020-08-26 12:33:38 EDT
Active Enter Timestamp: Wed 2020-08-26 12:33:38 EDT
Active Exit Timestamp: n/a
Inactive Enter Timestamp: n/a
May GC: no
<截断删除了大量的输出行>
```
在我的主工作站上,这个命令生成了 49680 行输出,大概 1.66MB,这个命令非常快,不需要等待。
我很喜欢为各种连接设备(如存储设备)提供的大量细节。每个 systemd 单元有一个部分包括各种运行时、缓存、日志目录的模式、启动单元的命令行、PID、开始时间戳以及内存和文件限制等细节。
`systemd-analyze` 的手册页里展示了 `systemd-analyze --user dump` 选项,目的是显示用户管理器的内部状态。但这个选项对我来说是失败的,互联网搜索之后表明它可能有一些问题。在 systemd 里,`--user` 实例用来管理和控制处理器给每个用户的进程资源。处理能力按分给每个用户的进程都属于一个控制组,我将在以后的文章中介绍。
### 分析图表
大多数啥都不懂的猥琐老板PHB和许多优秀的管理者都发现漂亮的图表比我通常喜欢的基于文本的系统性能数据更容易阅读和理解。但有时即使是我也喜欢一个好的图表`systemd-analyze` 提供了显示引导/启动数据的 [SVG][4] 矢量图表。
下面的命令生成一个矢量图文件,来显示在引导和启动过程发生的事件。生成这个文件只需要几秒:
```
[root@david ~]# systemd-analyze plot > /tmp/bootup.svg
```
这个命令创建了一个 SVG 文件SVG 是一个定义了一系列图形矢量的文本文件,包括 Image Viewer、Ristretto、Okular、Eye of Mate、LibreOffice Draw 在内的这些可以生成图形的应用,可以用 SVG 来创建图像。
我用 LibreOffice DrawLCTT 译注:一个办公文档软件)来渲染一幅图形。这张图形很大,你需要放到很大才能看清细节。这里是它的一小部分:
![The bootup.svg file displayed in LibreOffice Draw.][5]
图中时间轴上零点0的左边是引导阶段零点的右边是启动阶段。这一小部分显示了内核、initrd 和 initrd 启动的进程。
这张图一目了然地显示了什么时候启动,启动需要多少时间,以及主要的依赖项。关键路径用红色高亮显示。
另外一个生成图形输出的命令是 `systemd-analyze plot`,它生成了 [DOT][7] 格式的文本依赖图。产生的数据流通过 `dot` 工具进行处理,这是一组用来从多种类型数据中生成矢量图文件的程序。这些 SVG 文件也能被上面列出的工具处理。
首先,生成文件,在我的主工作站花了 9 分钟:
```
[root@david ~]# time systemd-analyze dot | dot -Tsvg > /tmp/test.svg
Color legend: black = Requires
dark blue = Requisite
dark grey = Wants
red = Conflicts
green = After
real 8m37.544s
user 8m35.375s
sys 0m0.070s
[root@david ~]#
```
我不会在这里重现输出,因为产生的图形就像一大堆意大利面条。但是你应该试试,看看我想让你看到的结果。
### 条件
在阅读 systemd-analyze(1) 的手册页时,我发现了一个更有趣的功能,但又有点通用,就是条件子命令。(是的,我确实在读手册页,而且我神奇地通过这种方式学到了很多东西!)。这个 `condition` 子命令能用来测试 systemd 单元文件中的条件和断言。
它也可以在脚本中用来评估一个或多个条件 —— 如果所有条件都满足,则返回 0如果有条件不满足则返回 1。在其它情况下它都会输出其结果文本。
下面的例子来自手册页,稍微有点复杂。它测试了内核版本是否在 4.0 和 5.1 之间,主机是否使用交流电供电,系统结构是否是 ARM以及 `/etc/os-release` 目录是否存在。我添加了 `echo $?` 来打印返回值。
```
[root@david ~]# systemd-analyze condition 'ConditionKernelVersion = ! <4.0' \
'ConditionKernelVersion = >=5.1' \
'ConditionACPower=|false' \
'ConditionArchitecture=|!arm' \
'AssertPathExists=/etc/os-release' ; \
echo $?
test.service: AssertPathExists=/etc/os-release succeeded.
Asserts succeeded.
test.service: ConditionArchitecture=|!arm succeeded.
test.service: ConditionACPower=|false failed.
test.service: ConditionKernelVersion=>=5.1 succeeded.
test.service: ConditionKernelVersion=!<4.0 succeeded.
Conditions succeeded.
0
[root@david ~]#
```
条件和断言的列表大约从 systemd.unit(5) 手册页的第 600 行左右开始。
### 列出配置文件
`systemd-analyze` 工具提供了一种将各种配置文件的内容发送到 STDOUT 的方法,如图所示。其基本目录是 `/etc/`
```
[root@david ~]# systemd-analyze cat-config systemd/system/display-manager.service
# /etc/systemd/system/display-manager.service
[Unit]
Description=LXDM (Lightweight X11 Display Manager)
#Documentation=man:lxdm(8)
Conflicts=getty@tty1.service
After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service livesys-late.service
#Conflicts=plymouth-quit.service
[Service]
ExecStart=/usr/sbin/lxdm
Restart=always
IgnoreSIGPIPE=no
#BusName=org.freedesktop.lxdm
[Install]
Alias=display-manager.service
[root@david ~]#
```
打了这么多字却和标准的 `cat` 命令做的差不多。我发现下一条命令小有帮助,它能在标准的 systemd 所在的位置搜索具有指定模式的内容:
```
[root@david ~]# systemctl cat backup*
# /etc/systemd/system/backup.timer
# This timer unit runs the local backup program
# (C) David Both
# Licensed under GPL V2
#
[Unit]
Description=Perform system backups
Requires=backup.service
[Timer]
Unit=backup.service
OnCalendar=*-*-* 00:15:30
[Install]
WantedBy=timers.target
# /etc/systemd/system/backup.service
# This service unit runs the rsbu backup program
# By David Both
# Licensed under GPL V2
#
[Unit]
Description=Backup services using rsbu
Wants=backup.timer
[Service]
Type=oneshot
Environment="HOME=/root"
ExecStart=/usr/local/bin/rsbu -bvd1
ExecStart=/usr/local/bin/rsbu -buvd2
[Install]
WantedBy=multi-user.target
[root@david ~]#
```
这两个命令在每个文件的内容前面都有一个注释行,包含文件的完整路径和名称。
### 单元文件检查
当创建了一个新的单元文件,可以利用 `verify` 子命令帮助检查语法是否正确。它能指出来不正确的拼写,并列出缺失的服务单元。
```
[root@david ~]# systemd-analyze verify /etc/systemd/system/backup.service
```
秉承 Unix/Linux 的“沉默是金”的宗旨,没有输出意味着扫描的文件中没有错误。
### 安全性
`security` 子命令检查指定服务的安全级别。它只能针对服务单元,其他类型的单元文件不起作用:
```
[root@david ~]# systemd-analyze security display-manager
NAME DESCRIPTION >
✗ PrivateNetwork= Service has access to the host's network >
✗ User=/DynamicUser= Service runs as root user >
✗ CapabilityBoundingSet=~CAP_SET(UID|GID|PCAP) Service may change UID/GID identities/capabilities >
✗ CapabilityBoundingSet=~CAP_SYS_ADMIN Service has administrator privileges >
✗ CapabilityBoundingSet=~CAP_SYS_PTRACE Service has ptrace() debugging abilities >
✗ RestrictAddressFamilies=~AF_(INET|INET6) Service may allocate Internet sockets >
✗ RestrictNamespaces=~CLONE_NEWUSER Service may create user namespaces >
✗ RestrictAddressFamilies=~… Service may allocate exotic sockets >
✗ CapabilityBoundingSet=~CAP_(CHOWN|FSETID|SETFCAP) Service may change file ownership/access mode/capabilities unres>
✗ CapabilityBoundingSet=~CAP_(DAC_*|FOWNER|IPC_OWNER) Service may override UNIX file/IPC permission checks >
✗ CapabilityBoundingSet=~CAP_NET_ADMIN Service has network configuration privileges >
✗ CapabilityBoundingSet=~CAP_SYS_MODULE Service may load kernel modules
<截断>
✗ CapabilityBoundingSet=~CAP_SYS_TTY_CONFIG Service may issue vhangup() >
✗ CapabilityBoundingSet=~CAP_WAKE_ALARM Service may program timers that wake up the system >
✗ RestrictAddressFamilies=~AF_UNIX Service may allocate local sockets >
→ Overall exposure level for backup.service: 9.6 UNSAFE ?
lines 34-81/81 (END)
```
是的,表情符是输出的一部分。但是,当然,许多服务需要几乎完全访问所有的东西,以便完成它们的工作。我针对几个服务运行了这个程序,包括我自己的备份服务;结果可能有所不同,但最底下一行似乎大多是一样的。
这个工具对于在严格的安全环境检查和修复用户空间的服务单元是很有用的。我不认为我们的大多数都能用到它。
### 最后总结
这个强力的工具提供了一些有趣而惊人的有用选项。本文探讨的大部分内容是关于使用 systemd-analyze 来深入了解 Linux 使用 systemd 的启动性能。它还可以分析 systemd 的其他方面。
其中有些工具的作用有限,有几个应该完全忘记。但在解决启动和其他 systemd 功能的问题时,大多数都能起到很好的作用。
### 资源
互联网上关于 systemd 有很多信息但是很多过于简略、晦涩甚至是误导。除了这篇文章中提到的资源外以下网页提供了关于systemd启动的更详细和可靠的信息。这个列表在我开始写这一系列文章后有所增长以反映我所做的研究。
* [systemd.unit(5) 手册页][9] 包含了一份单元文件部分及其配置选项的清单,并对每个部分进行了简明的描述。
* Fedora 项目有一个很好的实用 [systemd 指南][10]。它包含了配置、管理和维护使用 systemd 的 Fedora 计算机所需的几乎所有知识。
* Fedora 项目还有一份很好的 [备忘录][11],将旧的 SystemV 命令与 systemd 命令进行了对照。
* Red Hat 文档包含了对 [单元文件结构][12] 的详细描述和其他重要的信息。
* 关于 systemd 技术的细节和创建它的原因,可以去看 Freedesktop.org [systemd 详述][13]。
* [Linux.com][14] 的“更多 systemd 乐趣”提供了很多高级的 systemd [信息和技巧][15]。
此外systemd 设计者和主要开发者 Lennart Poettering 也为 Linux 系统管理员撰写了一系列深度技术文档,尽管这些文章写于 2010 年 4 月到 2011 年 9 月,现在看也是非常适应时宜。关于 systemd 及其生态系统的其他好文章,大部分都是基于这些文章的。
* [Rethinking PID 1][16]
* [systemd for Administrators, Part I][17]
* [systemd for Administrators, Part II][18]
* [systemd for Administrators, Part III][19]
* [systemd for Administrators, Part IV][20]
* [systemd for Administrators, Part V][21]
* [systemd for Administrators, Part VI][22]
* [systemd for Administrators, Part VII][23]
* [systemd for Administrators, Part VIII][24]
* [systemd for Administrators, Part IX][25]
* [systemd for Administrators, Part X][26]
* [systemd for Administrators, Part XI][27]
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/9/systemd-startup-configuration
作者:[David Both][a]
选题:[lujun9972][b]
译者:[jiamn](https://github.com/jiamn)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/dboth
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/find-file-linux-code_magnifying_glass_zero.png?itok=E2HoPDg0 (Magnifying glass on code)
[2]: https://opensource.com/article/20/7/systemd-calendar-timespans
[3]: https://opensource.com/article/20/5/systemd-startup?utm_campaign=intrel
[4]: https://en.wikipedia.org/wiki/Scalable_Vector_Graphics
[5]: https://opensource.com/sites/default/files/uploads/bootup.svg-graph.png (The bootup.svg file displayed in LibreOffice Draw.)
[6]: https://creativecommons.org/licenses/by-sa/4.0/
[7]: https://en.wikipedia.org/wiki/DOT_(graph_description_language)
[8]: mailto:getty@tty1.service
[9]: https://man7.org/linux/man-pages/man5/systemd.unit.5.html
[10]: https://docs.fedoraproject.org/en-US/quick-docs/understanding-and-administering-systemd/index.html
[11]: https://fedoraproject.org/wiki/SysVinit_to_Systemd_Cheatsheet
[12]: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_basic_system_settings/managing-services-with-systemd_configuring-basic-system-settings#Managing_Services_with_systemd-Unit_File_Structure
[13]: https://www.freedesktop.org/wiki/Software/systemd/
[14]: http://Linux.com
[15]: https://www.linux.com/training-tutorials/more-systemd-fun-blame-game-and-stopping-services-prejudice/
[16]: http://0pointer.de/blog/projects/systemd.html
[17]: http://0pointer.de/blog/projects/systemd-for-admins-1.html
[18]: http://0pointer.de/blog/projects/systemd-for-admins-2.html
[19]: http://0pointer.de/blog/projects/systemd-for-admins-3.html
[20]: http://0pointer.de/blog/projects/systemd-for-admins-4.html
[21]: http://0pointer.de/blog/projects/three-levels-of-off.html
[22]: http://0pointer.de/blog/projects/changing-roots
[23]: http://0pointer.de/blog/projects/blame-game.html
[24]: http://0pointer.de/blog/projects/the-new-configuration-files.html
[25]: http://0pointer.de/blog/projects/on-etc-sysinit.html
[26]: http://0pointer.de/blog/projects/instances.html
[27]: http://0pointer.de/blog/projects/inetd.html

View File

@ -0,0 +1,183 @@
[#]: subject: (Partition a drive on Linux with GNU Parted)
[#]: via: (https://opensource.com/article/21/4/linux-parted-cheat-sheet)
[#]: author: (Seth Kenlon https://opensource.com/users/seth)
[#]: collector: (lujun9972)
[#]: translator: (hwlife)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-14463-1.html)
在 Linux 上使用 GNU Parted 对磁盘分区
======
> 了解对新的储存设备分区的基础知识,然后下载我们的速查表,让信息近在咫尺。
![](https://img.linux.net.cn/data/attachment/album/202204/12/162040edndfpnkn8233ppd.jpg)
在 21 世纪,我们往往认为数据存储是理所当然的。我们有许多存储介质,相对价格便宜,而且有许多不同的可用类型。然而,不论你获得的免费云存储空间有多少,没有比有一个物理硬盘空间来存储重要的数据更好了(或容量真的很大的,而当你又在一个慢速网络上时)。然而,没有几块硬盘买回来就是现成的,至少在理想的状况下可以直接使用的。无论你是买了一块新硬盘,还用不同分区安装一个系统,你需要知道怎么在 Linux 上为磁盘分区。
这篇文章介绍了 GNU Parted ,它磁盘分区最好的工具之一。如果你偏向使用图形化程序,而不算终端命令行,请阅读我的《[为 Linux 格式化驱动器][2]》这篇文章。
### 磁盘标签、分区和文件系统
技术上来说,一个硬盘驱动器不需要很多软件,就可用作存储设备。然而,在没有分区表和文件系统等现代惯例的情况下使用硬盘是困难的、不切实际的,而且对你的数据不安全。
关于硬盘驱动器,这里有三个你需要知道的重要概念:
* <ruby>磁盘标签<rt>disk label</rt></ruby>(或者 <ruby>分区表<rt>partition table</rt></ruby>)是放置在磁盘驱动器起始位置的元数据,它告诉计算机可用的存储是何种类型、以及它在磁盘驱动器的位置等信息。
* <ruby>分区<rt>partition</rt></ruby> 是一个识别文件系统位置的边界。举个例子,如果你有一个 512GB 的硬盘你可以用占用所有磁盘容量512GB分成一个分区或者分成两个分区每个占用 256GB ,或者分成三个分区,占用各种不同大小的空间等等。
* <ruby>文件系统<rt>filesystem</rt></ruby> 是一个硬盘驱动器和计算机两者约定俗成的存储方案。计算机必须知道怎样读取文件系统来拼凑存储在驱动器上的数据,并且必须知道怎样写入数据到文件系统并保持数据的完整性。
GNU Parted 程序管理着前两个概念磁盘标签和分区。Parted 对文件系统有所了解,但是它把文件系统的实现细节交给了其他类似 `mkfs` 这样的工具。
> 下载 [GNU Parted 速查表][3]
### 确定磁盘驱动器的位置
使用 GNU Parted 之前,你必须确定你的驱动器在你的系统上的位置。首先,将你要格式化的磁盘驱动器连接到你的系统,然后用 `parted` 命令查看连接到你的计算机的设备:
```
$ parted /dev/sda print devices
/dev/sda (2000GB)
/dev/sdb (1000GB)
/dev/sdc (1940MB)
```
你最新连接设备的名称在字母表上晚于连接时间更长的设备。举个例子,`/dev/sdc` 最有可能是我刚刚连接的磁盘。我能通过它的容量大小来确认,相比于我的工作站上的主要驱动器的 TB 大小来说,因为我知道我插入的 U 盘只有 2GB1940MB足够接近大小。如果你不能确定你可以得到的更多关于你想要分区的驱动器的信息
```
$ parted /dev/sdc print
Model: Yoyodyne Tiny Drive 1.0 (scsi)    
Disk /dev/sdc: 1940MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number  Start   End     Size    File system  Name  Flags
 1      1049kB  2048kB  1024kB  BS           Bloat  Hidden
 2      2049kB  1939MB  1937MB  FAT32        MyDrive
```
有些驱动器比其他驱动器有更多的元数据。这个磁盘表明它的物理驱动器品牌是 Yoyodyne ,此外,在磁盘的起始处包含了一个小的隐藏分区,后面是一个兼容 Windows 的臃肿的 FAT32 分区。这确实是我要重新打算格式化的驱动器。
继续之前_确认_ 你已经确定了要分区的正确驱动器。 _对错误的驱动器重新分区会导致数据丢失。_ 为了安全起见,在本文中所有具有潜在破环性的命令都指向在你的系统中不太可能有的 `/dev/sdX` 设备。
### 创建磁盘标签(或者分区表)
要在磁盘上创建一个分区,驱动器必须要有一个<ruby>磁盘标签<rt>disk label</rt></ruby>。磁盘标签也被叫做 <ruby>分区表<rt>partition table</rt></ruby>,所以 Parted 对两个术语都接受。
要创建一个磁盘卷标,使用 `mklabel``mktable` 子命令:
```
$ parted /dev/sdX mklabel gpt
```
这个命令在 `/dev/sdX` 的驱动器前面创建了一个 **gpt** 标签,删除了任何可能存在的标签。这是一个快速的过程,因为所有被替换的信息都是关于分区的元数据。
### 创建分区
要在磁盘创建分区,使用 `mkpart` 子命令,后跟可选的分区名称,再跟分区的开始和结束位置。如果你在磁盘上只需要一个分区,那么大小调整是容易的:开始位置输入 1 ,结束位置输入 100% 。使用 `--align opt` 参数允许 Parted 调整分区边界位置便于磁盘获得最佳性能:
```
$ parted /dev/sdX --align opt \
mkpart example 1 100%
```
`print` 子命令查看你的新分区:
```
$ parted /dev/sdX print
Model: Yoyodyne Tiny Drive 1.0 (scsi)
Disk /dev/sdi: 1940MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number  Start   End     Size  
 1      1049kB  1939MB  1938MB
```
你不必将整个磁盘用作一个分区。分区的优势是在一个磁盘上可以存在多个文件系统,它们之间不会相互干扰。在确定分区大小的时候,你可以使用 `unit` 子命令来设置你想用的测量方法。Parted 可以理解<ruby>扇区<rt>sector</rt></ruby><ruby>柱面<rt>cylinder</rt></ruby><ruby>磁头<rt>head</rt></ruby><ruby>字节<rt>byte</rt></ruby>、KB、MB、GB、TB 和百分比。LCTT 译注:具体使用方法请参阅手册页)
你也可以指定你打算使用的分区的文件系统。这并不会创建文件系统,但是它为你以后方便使用提供了元数据。
将磁盘对半分,一个是 XFS 文件系统,另一个是 EXT4 文件系统:
```
$ parted /dev/sdX --align opt \
mkpart xfs 1 50%
$ parted /dev/sdX --align opt \
mkpart ext4 51% 100%
```
### 命名分区
除了标记分区用于什么文件系统之外,你也可以为每个分区命名。一些文件管理器和工具可以读取分区名称,能够帮助你区分驱动器。例如,我经常有几个不同的驱动器连接到我的媒体工作站,每个属于一个不同的项目。当创建这些驱动器的时候,我同时命名了分区和文件系统,这样,无论我怎么看我的系统,有重要数据的位置都会被清楚地标示出来。
要命名一个分区,你必须知道它的序号:
```
$ parted /dev/sdX print
[...]
Number  Start   End     Size   File system  Name     Flags
 1      1049kB  990MB   989MB  xfs          example
 2      1009MB  1939MB  930MB  ext4         noname
```
要命名分区 1
```
$ parted /dev/sdX name 1 example
$ parted /dev/sdX print
[...]
Number  Start   End     Size   File system  Name     Flags
 1      1049kB  990MB   989MB  xfs          example
 2      1009MB  1939MB  930MB  ext4         noname
```
### 创建文件系统
要让你的驱动器能够正常使用你必须在新分区上创建一个文件系统。GNU Parted 并不做这些,因为它只是一个分区管理器。在磁盘上创建文件系统的 Linux 命令是 `mkfs`,但也有一些有用的工具可以让你用来创建特定类型的文件系统。例如,`mkfs.ext4` 创建 EXT4 文件系统,`mkfs.xfs` 创建 XFS 文件系统等等。
你的分区位于磁盘驱动器的“内部” ,所以你不是在 `/dev/sdX` 上创建文件系统,而是在 `/dev/sdX1` 上为第一个分区创建文件系统,在 `/dev/sdX2` 上为第二个分区创建,以此类推。
这里是一个创建 XFS 文件系统的例子:
```
$ sudo mkfs.xfs -L mydrive /dev/sdX1
```
### 下载我们的速查表
Parted 是一个灵活而强大的工具。你可以发出命令,如本文所示的那样,或者激活一个交互模式以不断 “连接” 你指定的驱动器:
```
$ parted /dev/sdX
(parted) print
[...]
Number  Start   End     Size   File system  Name     Flags
 1      1049kB  990MB   989MB  xfs          example
 2      1009MB  1939MB  930MB  ext4         noname
(parted) name 1 mydrive
(parted)
```
如果你打算经常使用 Parted [下载我们的 GNU Parted 速查表][3],让信息近在咫尺。
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/4/linux-parted-cheat-sheet
作者:[Seth Kenlon][a]
选题:[lujun9972][b]
译者:[hwlife](https://github.com/hwlife)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/seth
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/coverimage_cheat_sheet.png?itok=lYkNKieP (Cheat Sheet cover image)
[2]: https://opensource.com/article/18/11/partition-format-drive-linux#gui
[3]: https://opensource.com/downloads/parted-cheat-sheet

View File

@ -3,40 +3,38 @@
[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14466-1.html"
Peergos一个可以自我托管的开源 Google Drive 替代品
Peergos一个可以自行托管的开源 Google 云端硬盘替代品
======
Google Drive 是最受欢迎的云存储服务之一。
![](https://img.linux.net.cn/data/attachment/album/202204/13/091252bdnqkkh7rk0mkv7m.jpg)
而且,由于正当的原因,它提供了灵活的定价、区域定价和许多其他优势。
<ruby>Google 云端硬盘<rt>Google Drive</rt></ruby> 是最受欢迎的云存储服务之一。而且,由于合理的原因,它提供了灵活的定价、区域定价和许多其他优势。
不幸的是,它不提供端对端加密。此外,它不是一个开源的产品。
那么,我们是否有一个开源的 Google Drive 的替代品?
那么,我们是否有开源的 Google 云端硬盘的替代品?
当然,有[免费的云存储服务][1],但它们不是开源的,也不是完全安全/私密的。
当然,有 [免费的云存储服务][1],但它们不是开源的,也不是完全安全/私密的。
不用担心,我们有一个优秀的开源解决方案,即 **Peergos**
### Peergos: 一个带有迷你社交网络平台的点对点开源云存储服务
### Peergos一个带有迷你社交网络平台的点对点开源云存储服务
![][2]
[Peergos][3] 不仅仅是 Google Drive 的一个普通替代品。也不仅仅是一个私人网络存储平台。
[Peergos][3] 不仅仅是 Google 云端硬件的一个普通替代品,也不仅仅是一个私人网络存储平台。
有了 Peergos你会得到一个建立在 [IPFS协议][4](点对点)之上的端到端加密的私人网络空间。
使用这样的协议使它成为一个去中心化的存储平台,可以抵抗审查制度。
有了 Peergos你会得到一个建立在 [IPFS 协议][4](点对点)之上的端到端加密的私人网络空间。使用这样的协议使它成为一个去中心化的存储平台。
不仅限于其安全/隐私,你还可以使用新闻源在平台上与你的朋友进行社交。
例如,你上传照片并与你的朋友分享,其他用户(你的朋友)可以在他们的新闻源中看到它们,并像社交媒体平台一样互动。
你还可以添加待办事项,组织一个日历,并根据需要与合作者/朋友分享。
你还可以添加待办事项,组织日历,并根据需要与合作者/朋友分享。
换句话说,你也可以把 Pergos 视为 [Nextcloud][5] 在某种程度上的替代品。
@ -53,22 +51,20 @@ Google Drive 是最受欢迎的云存储服务之一。
* 端对端加密存储。
* 能够分享你的照片、视频和文件。
* 如果需要,生成链接让其他用户下载你的文件。
* 保持你的活动私,不记录你的使用情况。
* 保持你的活动私,不记录你的使用情况。
* 你可以自我托管 Peergos让你完全控制。
* 私元数据,保持你的联系人列表、文件大小、目录结构和其他信息的隐蔽性。
* 私元数据,保持你的联系人列表、文件大小、目录结构和其他信息的隐蔽性。
* 提供一个去中心化的存储,你可以无缝访问。
* 开源并经过审计。
* 开源并经过审计。
* 社交媒体网络能力。
* 待办事项列表和任务管理。
* 协作功能。
* 支持 Markdown。
* 查看 PDF 文件的能力。
* 访问日历,创建和组织事件。
* 网站目录,如果你自托管,可以使用个性化的 URL 或本地端口访问。
* 网站目录,如果你自托管,可以使用个性化的 URL 或本地端口访问。
Peergos 是一个功能丰富的产品,可以让你存储你的文件,而不用担心信任公司的问题。
Peergos 是一个功能丰富的产品,可以让你存储你的文件,而不用担心对公司的信任问题。
虽然它不是完全匿名的,但 Pergos 作为一项服务不会记录你的任何信息。
@ -76,7 +72,7 @@ Peergos 是一个功能丰富的产品,可以让你存储你的文件,而不
### 开始使用 Pergos
你需要[注册][7](云选项)或按照其 [GitHub 页面][8]中的说明自行托管它。
你需要 [注册][7](云选项)或按照其 [GitHub 页面][8] 中的说明自行托管它。
![][9]
@ -90,17 +86,17 @@ Peergos 是一个功能丰富的产品,可以让你存储你的文件,而不
![][11]
它支持黑暗模式,所以你可以随时切换它。可用的共享选项应该足以满足各种合作的需要。
它支持深色模式,所以你可以随时切换它。可用的共享选项应该足以满足各种合作的需要。
使用组来控制对共享文件的访问是一个有趣的想法。
![][12]
[Peergos][3]
> - 访问 [Peergos][3]
### 最后的想法
### 总结
Peergos 是一个独特的产品,你可以自行托管。它是开源的,并为隐私爱好者提供了所有好东西来存储文件和安全地进行合作。
Peergos 是一个独特的产品,你可以自行托管。它是开源的,并为隐私爱好者提供了所有好东西来存储文件和安全地进行合作。
云服务可能因其免费存储空间少而不具吸引力。但是,如果你真的喜欢这个概念,你可以选择升级到一个具有更多存储空间的高级计划。
@ -113,7 +109,7 @@ via: https://itsfoss.com/peergos/
作者:[Ankush Das][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -0,0 +1,105 @@
[#]: subject: "EndeavourOS Apollo Release Introduces a new Worm Window Manager"
[#]: via: "https://news.itsfoss.com/endeavouros-apollo-release/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
EndeavourOS Apollo Release Introduces a new Worm Window Manager
======
EndeavourOS is an Arch-based distro that focuses on a terminal-centric user experience along with all the other goodies.
With its latest Apollo release, the EndeavourOS team has made efforts to improve the community editions, resolve some existing issues, and add a new window manager.
### EndeavourOS Apollo: Whats New?
The most significant changes include a brand-new Window Manager “Worm” and having FirewallD installed (and enabled) by default.
Let us take a brief look at the changes along with other improvements.
#### New Worm Window Manager
![][1]
Worm is a lightweight window manager developed by one of the community editions team members (Codic12). It is written in [Nim][2].
Presently, it is based on X11 and does not support Wayland.
The window manager focuses on performance while being able to work with floating/tiling modes with essential window decorations that include minimize, maximize, and close buttons.
The layout can even operate nicely on a semi-embedded device like Pi Zero.
#### Linux Kernel 5.17
[Linux Kernel 5.17][3] is all about supporting next-gen hardware. If you are looking to try an Arch-based distro on the latest hardware configuration, EndeavourOS should be a nice option to start with.
#### FirewallD Installed and Enabled
![][4]
While not everyone appreciates having a firewall enabled by default, with the latest Apollo release, EndeavourOS will have it baked in and active after installation.
#### New Quickstart App
![][5]
A GUI app to launch after the first boot (quickstart) was added to help you choose/install common and helpful apps.
It provides the selection of applications using the Arch repo and not the [AUR][6].
#### A New Nvidia Driver Installer
The existing nvidia-installer-dkms app was rewritten as an improved command-line tool to make the process easier and more efficient.
The tool is still in its beta phase, but it is a good addition for users with Nvidia graphics.
#### Improvements to the Installer
Various improvements to the installation process were made, like the addition of an internet check before installation, a fix for DE selection, and more technical work to improve the experience.
#### Other Improvements
![][7]
Along with the key highlights, there are plenty of important fixes and changes that include:
* Disable Bluetooth by default, but active in the Live environment.
* Applying compression on installed files for btrfs.
* Community editions with dedicated display manager, including Light DM, Slick greeter, Lxdm, ly, and GDM.
* Automatically choosing the closest EndeavourOS mirror.
You can learn more about the latest release in their [official announcement][8].
### Download EndeavourOS Apollo
The latest ISO is available on their official website. You can head to the [downloa][9][d][9] [page][9] and get the ISO from one of the mirrors available.
[EndeavourOS][9]
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/endeavouros-apollo-release/
作者:[Ankush Das][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://news.itsfoss.com/author/ankush/
[b]: https://github.com/lujun9972
[1]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjU3NiIgd2lkdGg9IjEwMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIi8+
[2]: https://en.wikipedia.org/wiki/Nim_(programming_language)
[3]: https://news.itsfoss.com/linux-kernel-5-17-release/
[4]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjY3OSIgd2lkdGg9IjkwMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[5]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjU4MyIgd2lkdGg9Ijk2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[6]: https://itsfoss.com/aur-arch-linux/
[7]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjUyNCIgd2lkdGg9Ijg1NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[8]: https://endeavouros.com/news/the-apollo-release-has-landed/
[9]: https://endeavouros.com/latest-release/

View File

@ -0,0 +1,107 @@
[#]: subject: "Ubuntu MATE 22.04 New Features and Release Details"
[#]: via: "https://www.debugpoint.com/2022/04/ubuntu-mate-22-04-lts/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Ubuntu MATE 22.04 New Features and Release Details
======
A LIST OF NEW FEATURES OF THE UBUNTU MATE 22.04 LTS (JAMMY JELLYFISH)
THAT INCLUDES WHAT CHANGED SINCE THE PRIOR LTS RELEASE.
![Ubuntu MATE 22.04 LTS Desktop][1]
### Ubuntu MATE 22.04 LTS New Features
Ubuntu MATE 22.04 LTS “Jammy Jellyfish” releases on April 21, 2022, with the developers two years worth of continuous work.
While looking at the changes in Ubuntu MATE 22.04 LTS, I was surprised to see the number of changes it brings compared to the other official Ubuntu flavours, excluding KDE Plasms while based on [Ubuntu 22.04 LTS][2].
The primary reason is that Ubuntu MATE 22.04 LTS brings the latest , a major version upgrade since Ubuntu MATE 20.04 featuring MATE Desktop 1.24.
In addition to that, this is a first point release of the MATE desktop environment, which means you are bound to experience the performance boost because bugs and memory leaks are eliminated.
While trying the available ISO, I felt the is fantastic. It is super fast in terms of responses on the desktop. Thanks to the great work done by the MATE desktop team.
![Such a nice and clean login screen of Ubuntu MATE 22.04 LTS][3]
#### Themes and other changes
Moreover, this LTS release is the first variant that officially launches the with all the Yaru colour themes plus the native “Chelsea cucumber” green version. And it looks stunning.
Furthermore, the team also included dark and light app indicators of popular applications in the system tray, which automatically changes appearance when you transition from dark to light theme or vice-versa.
![MATE variant of Yaru themes][4]
This release includes three new GNOME applications due to popular demand: . Interestingly, they are GNOME apps based on the 41.0 release and they look stunning in the MATE environment considering they are using GTK4 and libadwaita.
[][5]
SEE ALSO:   Pop OS 22.04 LTS - New Features and Release Updates
Besides those, the team included all popular package formats by default in the installation. That means , and you do not need to play around to set them up the first time.
Finally, this release brings back the message indicators with 22.2.0 in the default installation. Ayatana Indicators now supports backwards compatibility to Ubuntu indicators and doesnt require additional setup.
Last but not least, a colossal set of impactful tiny changes, under the hood improvements and application updates makes it one of the most memorable releases from the Ubuntu MATE team.
### Summary of the changes
To sum up the essential changes in Ubuntu MATE 22.04 LTS:
* Performance boosted and optimized MATE Desktop 1.26.1
* Linux Kernel 5.15 LTS
* MATE variant of Yaru theme with accent colours
* Automatic dark and light icon switching in the system tray, based on user themes
* MATE Tweak improvements that make the desktop layout switch more effortless than ever
* MATE HUD now supports updated rofi theme engine
* The ISO size is reduced by 41% as the team dropped NVIDIA drivers from the ISO (you can still install via option during setup)
* Three new apps from GNOME: GNOME Clocks, Maps and Weather
* Out of the box support for Flatpak, Snap and AppImage
* Raspberry Pi image will be available post-release
* Firefox 99.0
* Evolution 3.44
* LibreOffice 7.3+
Finally, Ubuntu MATE 22.04 LTS is now available as a BETA download via the below links. You may want to give it a try before the final release.
* [ubuntu-mate-22.04-beta-desktop-amd64.iso][6]
* [Checksums, torrents and other information][7]
[_Via official changelog._][8]
* * *
We bring the latest tech, software news and stuff that matters. Stay in touch via [Telegram][9], [Twitter][10], [YouTube][11], and [Facebook][12] and never miss an update!
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/2022/04/ubuntu-mate-22-04-lts/
作者:[Arindam][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.debugpoint.com/author/admin1/
[b]: https://github.com/lujun9972
[1]: https://www.debugpoint.com/wp-content/uploads/2022/04/Ubuntu-MATE-22.04-LTS-Desktop-1024x577.jpg
[2]: https://www.debugpoint.com/2022/01/ubuntu-22-04-lts/
[3]: https://www.debugpoint.com/wp-content/uploads/2022/04/Such-a-nice-and-clean-login-screen-of-Ubuntu-MATE-22.04-LTS.jpg
[4]: https://www.debugpoint.com/wp-content/uploads/2022/04/MATE-variant-of-Yaru-themes-1024x558.jpg
[5]: https://www.debugpoint.com/2022/04/pop-os-22-04-lts/
[6]: https://cdimage.ubuntu.com/ubuntu-mate/releases/22.04/beta/ubuntu-mate-22.04-beta-desktop-amd64.iso
[7]: https://cdimage.ubuntu.com/ubuntu-mate/releases/22.04/beta/
[8]: https://ubuntu-mate.org/blog/ubuntu-mate-jammy-jellyfish-release-notes/
[9]: https://t.me/debugpoint
[10]: https://twitter.com/DebugPoint
[11]: https://www.youtube.com/c/debugpoint?sub_confirmation=1
[12]: https://facebook.com/DebugPoint

View File

@ -2,7 +2,7 @@
[#]: via: "https://www.debugpoint.com/2022/03/lightweight-linux-distributions-2022/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: translator: "robsean"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "

View File

@ -1,125 +0,0 @@
[#]: subject: "Create Your Own Custom Light and Dark Wallpaper for GNOME"
[#]: via: "https://www.debugpoint.com/2022/04/custom-light-dark-wallpaper-gnome/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lujun9972"
[#]: translator: "robsean"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Create Your Own Custom Light and Dark Wallpaper for GNOME
======
AN EASY GUIDE ON HOW TO CREATE YOUR CUSTOM LIGHT AND DARK WALLPAPER
FOR the GNOME desktop.
the GNOME desktop.
[GNOME 42][1] brings the much-awaited light and dark theme to GNOME Desktop. It also brings the light and dark version of wallpaper, which automatically changes when you switch between light and dark themes.
So, by default, GNOME gives you a set of pre-configured light and dark wallpapers. But what if you want a different wallpaper that changes automatically when the theme changes?
Heres how to configure and create your own custom wallpaper for both light and dark themes in GNOME.
### How to create custom light and dark wallpaper for GNOME
Firstly, make sure you have two versions of wallpaper handy with you. In general, they should be standard PNG or JPG images. For example, we used below two wallpapers for this demo.
![Sample light and dark wallpaper for demo][2]
But if you do not have proper light and dark wallpaper and looking for more, I will let you know how to get them or prepare for your own at the end of this guide. Stay with me.
Second, we need to create a schema file for our own. The automatic changing of wallpaper is handled by an XML file called adwaita.xml, which defines specific light and dark backgrounds tags. So, we will create our XML file for the wallpapers.
To do that, copy the contents of adwaita.xml from GitLab, and create a new XML file (the link is down below). You should see two tags inside this file “filename” and “filename-dark”. These two XML tags contain the fully qualified path of both the wallpapers. Now, add the path to your images under these two tags, as I have shown below.
[Download the XML file from here (adwaita.xml.in)][3]
![Change the XML file][4]
Third, save this file to with any name you want. If the “gnome-background-properties” are not there, create it. For this example, I used my_cool_backgrounds.xml.
![Save the file][5]
And you are all set. Finally, open the settings and go to the Appearance tab, and you should see the new wallpapers are visible as an option.
[][6]
SEE ALSO:   New GNOME Text Editor - Everything You Need to Know
Select your own custom light and dark wallpaper and enjoy.
![Appearance tab has now your own custom light and dark wallpaper][7]
### How to download or make your own dynamic wallpaper
Definitely, you must think, who has the time to find and create both day and night versions of wallpaper? There are several websites that give you dynamic wallpapers ready-made that you can easily download and install.
One website I would recommend is [dynamicwallpaper.club][8] which has some excellent high-quality wallpapers up to 6K for macOS. And you can easily download them.
Additionally, if you plan to download from the above website, remember that the sites images are in [heic format][9] because the website is for macOS. The High-Efficiency Video Coding (HEIC) is Apples proprietary version of the HEIF or High-Efficiency Image File format.
So, how to convert them in Linux systems? Well, you need a driver to view and convert the dynamic heic images in Ubuntu or Fedora Linux. Open a terminal and run the below commands to install the driver.
users
```
sudo apt install heif-gdk-pixbuf
```
Fedora users
```
sudo dnf install libheif
```
(without this plugin, Plasma apps cant open heic images)
```
sudo apt install qt-heif-image-plugin
sudo dnf install qt-heif-image-plugin
```
Finally, open the heic image with your favourite image viewer and save it as JPG/PNG.
Last of all, dont forget to let me know down below in the comment section whether you are able to create your own custom dark and light wallpaper for GNOME.
![Custom Light and Dark wallpaper in GNOME transition][10]
Cheers.
* * *
We bring the latest tech, software news and stuff that matters. Stay in touch via [Telegram][11], [Twitter][12], [YouTube][13], and [Facebook][14] and never miss an update!
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/2022/04/custom-light-dark-wallpaper-gnome/
作者:[Arindam][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.debugpoint.com/author/admin1/
[b]: https://github.com/lujun9972
[1]: https://www.debugpoint.com/2022/03/gnome-42-release/
[2]: https://www.debugpoint.com/wp-content/uploads/2022/04/Sample-light-and-dark-wallpaper-for-demo.jpg
[3]: https://gitlab.gnome.org/GNOME/gnome-backgrounds/-/tree/main/backgrounds
[4]: https://www.debugpoint.com/wp-content/uploads/2022/04/Change-the-XML-file-1024x568.jpg
[5]: https://www.debugpoint.com/wp-content/uploads/2022/04/Save-the-file-1024x548.jpg
[6]: https://www.debugpoint.com/2021/12/gnome-text-editor/
[7]: https://www.debugpoint.com/wp-content/uploads/2022/04/Apperance-tab-has-now-your-own-custom-light-and-dark-wallpaper-1024x657.jpg
[8]: https://dynamicwallpaper.club
[9]: https://en.wikipedia.org/wiki/High_Efficiency_Image_File_Format
[10]: https://www.debugpoint.com/wp-content/uploads/2022/04/Custom-Light-and-Dark-wallpaper-in-GNOME-transition-1024x556.gif
[11]: https://t.me/debugpoint
[12]: https://twitter.com/DebugPoint
[13]: https://www.youtube.com/c/debugpoint?sub_confirmation=1
[14]: https://facebook.com/DebugPoint

View File

@ -0,0 +1,115 @@
[#]: subject: "Meet Lite XL: A Lightweight, Open-Source Text Editor for Linux Users"
[#]: via: "https://itsfoss.com/lite-xl/"
[#]: author: "Marco Carmona https://itsfoss.com/author/marco/"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Meet Lite XL: A Lightweight, Open-Source Text Editor for Linux Users
======
**Brief:** _Are you looking for a new _text editor_ alternative? You should try this lightweight, _simple_, fast, feature-filled, and extremely extensible one._
Sure, there are plenty of text editors or code editors that you can use. Some popular ones include Eclipse, [Visual Studio Code][1], [PyCharm][2], [Atom][3], [IntelliJ][4], and [Sublime Text][5].
But do you want to try something interesting thats entirely focused on giving you a minimal experience?
Meet _**Lite XL**_ editor.
To be honest, I had no idea about it until last week. But, it managed to surprise me with its **minimalist design** and how **fast it was at coding**, but the most important fact was its similarity with Visual Studio Code.
So, before everything, let me tell you that if youre a [Visual Studio Code fan][6], you should absolutely try _**Lite XL**_. It may not be an absolute replacement, but a lite edition of something that resembles the use-case.
![Showing how Lite XL looks][7]
### Lite XL: Lightweight Text Editor Written in Lua
Lite XL is an interesting open-source text editor written in Lua (particularly tailored to build lightweight applications).
It is available for Windows, Linux, and macOS as well. But, with all the available [modern text editors available][8], why Lite XL?
![Lite XL Customize Configuration][9]
Normally, we arent concerned about the resources that a text editor can consume on our system most of the time. However, at the time of creating bash, python, or any other type of script, you rely on a text editor, and the more resource-efficient it is, the better.
Of course, a text editor isnt as resource-hungry as some other applications. But, if it matters to you, heres what I observed:
Lite XL only uses **three megabytes** in your disk and consumes around **twenty megabytes** of physical memory, compared with the almost five hundred fifty megabytes (~550 MB) that Visual Studio Code uses.
**Can you see this wonderful difference between these similar editors?**
Not just the resource usage, it is highly customizable as well.
Note that the resource usage stats can vary for different system configurations.
### Features of Lite XL
![][10]
As per the official information available, some of its most popular features include:
* __Cross-Platform_:_** It currently works on Windows, Linux, and macOS.
* **Lightweight: ****As we described before, its usage hardly ever exceeds 10 MB in RAM.
* **Extensible**: Being a minimal offering doesnt mean not being customizable. Lite XL can extend its functionalities thanks to several plugins available, for example, [VSC-like intellisense][11].
* **Multi-cursor editing**: Its as wonderful as it sounds, inside Lite XL you can work with multiple cursors.
* **Integrated terminal**: Like Visual Studio Code, Lite XL implements its terminal.
* High DPI display support.
* Additional color themes are available.
* Supports hardware-accelerated rendering.
### How to Install Lite XL in Linux
Lite XL offers an AppImage file for Linux distributions. You can follow our [AppImage guide][12] to get started.
You can find the AppImage file on its [GitHub repository][13].
Once you head to its GitHub releases section, go directly to the Assets section and download the _**LiteXL_x86_64.Appimage**_ file.
![Downloading Appimage file][14]
An AppImage file will be downloaded into your download directory, so, before double-clicking on the file, verify it is allowed to execute as a program.
![Verifying execution permissions][15]
Thats right! Now you can double-click on the file and start using _**Lite XL**_ in your system.
[Lite XL][16]
If youre interested in exploring Lite XL, you can get involved in its [GitHub repository][13], visit the official website, or join its [Discord community][17].
_What do you prefer to edit text and code? Do you focus on using a lightweight program, or is it irrelevant for your use case? Let me know your thoughts in the comments down below._
--------------------------------------------------------------------------------
via: https://itsfoss.com/lite-xl/
作者:[Marco Carmona][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/marco/
[b]: https://github.com/lujun9972
[1]: https://itsfoss.com/install-visual-studio-code-ubuntu/
[2]: https://itsfoss.com/install-pycharm-ubuntu/
[3]: https://itsfoss.com/install-atom-ubuntu/
[4]: https://itsfoss.com/install-intellij-ubuntu-linux/
[5]: https://itsfoss.com/sublime-text-3-linux/
[6]: https://itsfoss.com/visual-studio-code-vs-atom/
[7]: https://itsfoss.com/wp-content/uploads/2022/04/lite-xl-editor-screenshot.png
[8]: https://itsfoss.com/best-modern-open-source-code-editors-for-linux/
[9]: https://itsfoss.com/wp-content/uploads/2022/04/lite-xl-screenshot-2.png
[10]: https://itsfoss.com/wp-content/uploads/2022/04/lite-xl-screnshot-1.png
[11]: https://github.com/lite-xl/lite-xl-lsp
[12]: https://itsfoss.com/use-appimage-linux/
[13]: https://github.com/lite-xl/lite-xl
[14]: https://itsfoss.com/wp-content/uploads/2022/04/Downloading_Appimage_file-800x447.png
[15]: https://itsfoss.com/wp-content/uploads/2022/04/Verifying_execution_permissions-800x535.png
[16]: https://lite-xl.com/
[17]: https://discord.gg/RWzqC3nx7K

View File

@ -1,422 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: (jiamn)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Analyze Linux startup performance)
[#]: via: (https://opensource.com/article/20/9/systemd-startup-configuration)
[#]: author: (David Both https://opensource.com/users/dboth)
分析 Linux 启动性能
======
用 systemd-analyze 查看 Linux 启动性能或者解决一些问题
![Magnifying glass on code][1]
系统管理员的一部分工作就是分析系统性能,去发现并解决引起性能不佳、长时间启动系统的问题。系统维护者也需要去检查系统配置和使用等。
systemd 初始化系统提供了 systemd-analyze 工具,帮助查看性能和其他重要的 systemd 信息。在以前的文章 分析 [_systemd 日历和时间间隔_][2] 里,我用了 systemd-analyze 去分析 systemd 里的时间戳和时间间隔,但是这个工具有很多其他用法,这个文章里我再揭示一些。
(译者注: systemd 是目前主流Linux release 采用的系统管理; boot 翻译为启动startup 翻译为起动)
### 总览
LINUX 起动顺序是值得学习关注的地方,因为 systemd-analyze 工具很多功能聚焦在起动 startup 过程。但是首先,要理解启动 boot 和起动 startup 。启动从 BIOS 加电自检POST开始装载和控制主机系统结束然后是起动 startup systemd 日志开始。
这个系列的第二篇文章, [_理解LINUX起动 systemd_][3],我讨论了起动 startup 的一点顺序上的细节,文章里,我试图解释起动 startup 顺序时间总进程和大部分时间花费在哪里。
我的主工作站比虚拟机的结果更有意义。工作站组成是ASUS TUF X299 Mark 2 主板Intel i9-7960X cpu 16核 32线程64G内存。一些命令非超级用户可以使用但是我在这篇文章里使用了超级用户避免在用户之间切换。
检查起动过程有几个选项,最简单的是从 systemd-analyze 命令显示起动的几个主要分段耗费的时间汇总,内核起动,装载运行 initrd 初始ramdisk一个临时系统镜像用来初始化一些硬件挂载 / 根文件系统),还有用户空间 (所有的程序和后台进程需要主机起动到一个可用的状态)。如果没有子命令传递给命令, systemd-analyze time 是这样的:
```
[root@david ~]$ systemd-analyze
Startup finished in 53.921s (firmware) + 2.643s (loader) + 2.236s (kernel) + 4.348s (initrd) + 10.082s (userspace) = 1min 13.233s
graphical.target reached after 10.071s in userspace
[root@david ~]#
```
特别要注意的 BIOS 花费了接近54秒这是一个非同寻常的时间段基本上所有的物理硬件系统都要使用 BIOS。
我的System76 Oryx Pro笔记本在BIOS只花了8.506秒我家里所有的系统都在10秒以内。在线搜索一阵之后我发现这个主板译者注作者的主工作站主板因为不同寻常的 BIOS 启动时间著名我的主板从不“启动”总是挂掉我需要关机再开机BIOS报错按 F1 进入 BIO S设置选择要启动的驱动器完成启动多出的时间就是这样用掉的。
不是所有主机显示固件数据(译者注:固件启动中无法使用 systemd。用Intel 9代或者更高的处理器就感觉不科学。尽管那不是正确的。译者注更高代的 cpu 启动时间更短,因为优化的 BIOS
总结关于启动起动是非常有趣的,同时提供了很好的(虽然有限)的信息,仍然有很多关于起动的信息,就像下面我将描述的一样。
### 指定火炬
你可以用 systemd-analyze blame 去发现初始化每个 systemd 单元用掉的时间,结果按照初始化时间长短排序,从多到少:
```
[root@david ~]$ systemd-analyze blame                                                                        
       5.417s NetworkManager-wait-online.service                                                      
       3.423s dracut-initqueue.service                                                                
       2.715s systemd-udev-settle.service                                                              
       2.519s fstrim.service                                                                          
       1.275s udisks2.service                                                                          
       1.271s smartd.service                                                                          
        996ms upower.service                                                                          
        637ms lvm2-monitor.service                                                                    
        533ms lvm2-pvscan@8:17.service                                                                
        520ms dmraid-activation.service                                                                
        460ms vboxdrv.service                                                                          
        396ms initrd-switch-root.service
&lt;SNIP removed lots of entries with increasingly small times&gt;
```
注:删去了好多时间不长的条目
因为很多服务是并行开始的,在 BIOS 之后所有单元加在一起的总数超过了 systemd-analyze time 汇总数。很多都是小数,不能显著的节省时间。
这个命令提供的数据显明了提升启动时间的办法。无用的服务禁止disable掉。在起动序列中花掉很多时间的单一服务呈现明显。每次启动起动你可以看到不同结果。译者注并行起动服务的原因
### 严格链
项目管理中有个严格链译者注systemd可以定义服务间严格依赖构成严格链在起动中可以通过查看一个严格链与时间相关的事件。
有一些systemd单元起动中很慢可能因为依赖严格链影响的工具没有从开始显示所有单元仅仅是有严格限制关系的事件。译者注相当于最短路径。并不显示依赖但不在严格链上的服务单元
```
[root@david ~]# systemd-analyze critical-chain
The time when unit became active or started is printed after the "@" character.
The time the unit took to start is printed after the "+" character.
graphical.target @10.071s
└─lxdm.service @10.071s
  └─plymouth-quit.service @10.047s +22ms
    └─systemd-user-sessions.service @10.031s +7ms
      └─remote-fs.target @10.026s
        └─remote-fs-pre.target @10.025s
          └─nfs-client.target @4.636s
            └─gssproxy.service @4.607s +28ms
              └─network.target @4.604s
                └─NetworkManager.service @4.383s +219ms
                  └─dbus-broker.service @4.434s +136ms
                    └─dbus.socket @4.369s
                      └─sysinit.target @4.354s
                        └─systemd-update-utmp.service @4.345s +9ms
                          └─auditd.service @4.301s +42ms
                            └─systemd-tmpfiles-setup.service @4.254s +42ms
                              └─import-state.service @4.233s +19ms
                                └─local-fs.target @4.229s
                                  └─Virtual.mount @4.019s +209ms
                                    └─systemd-fsck@dev-mapper-vg_david2\x2dVirtual.service @3.742s +274ms
                                      └─local-fs-pre.target @3.726s
                                        └─lvm2-monitor.service @356ms +637ms
                                          └─dm-event.socket @319ms
                                            └─-.mount
                                              └─system.slice
                                                └─-.slice
[root@david ~]#
```
@后面的秒数数字是从起动开始到单元激活的时间+后面是单元开始花费的时间。
### 系统状态
有时候你需要决定系统的当前状态, systemd-analyze dump 命令挖显出当前系统状态的一堆数据。有主要的启动时间戳,一个每个 systemd 单元的列表,和一个每个完整的详细描述:
```
[root@david ~]# systemd-analyze dump
Timestamp firmware: 1min 7.983523s
Timestamp loader: 3.872325s
Timestamp kernel: Wed 2020-08-26 12:33:35 EDT
Timestamp initrd: Wed 2020-08-26 12:33:38 EDT
Timestamp userspace: Wed 2020-08-26 12:33:42 EDT
Timestamp finish: Wed 2020-08-26 16:33:56 EDT
Timestamp security-start: Wed 2020-08-26 12:33:42 EDT
Timestamp security-finish: Wed 2020-08-26 12:33:42 EDT
Timestamp generators-start: Wed 2020-08-26 16:33:42 EDT
Timestamp generators-finish: Wed 2020-08-26 16:33:43 EDT
Timestamp units-load-start: Wed 2020-08-26 16:33:43 EDT
Timestamp units-load-finish: Wed 2020-08-26 16:33:43 EDT
Timestamp initrd-security-start: Wed 2020-08-26 12:33:38 EDT
Timestamp initrd-security-finish: Wed 2020-08-26 12:33:38 EDT
Timestamp initrd-generators-start: Wed 2020-08-26 12:33:38 EDT
Timestamp initrd-generators-finish: Wed 2020-08-26 12:33:38 EDT
Timestamp initrd-units-load-start: Wed 2020-08-26 12:33:38 EDT
Timestamp initrd-units-load-finish: Wed 2020-08-26 12:33:38 EDT
-&gt; Unit system.slice:
        Description: System Slice
        Instance: n/a
        Unit Load State: loaded
        Unit Active State: active
        State Change Timestamp: Wed 2020-08-26 12:33:38 EDT
        Inactive Exit Timestamp: Wed 2020-08-26 12:33:38 EDT
        Active Enter Timestamp: Wed 2020-08-26 12:33:38 EDT
        Active Exit Timestamp: n/a
        Inactive Enter Timestamp: n/a
        May GC: no
&lt;SNIP Deleted a bazillion lines of output&gt;
```
注:删掉了很多输出行
在我的主工作站这个命令生成了49680行大概1.66MB,命令很快,你不需要等待。
我喜欢多种连接设备的规格细节,例如存储。每个 systemd 单元有一节例如模块的多种运行时、缓存、日志目录、单元开始命令、PID、开始时间戳、内存和文件限制。
systemd-analyze 的 man 帮助手册里展示了 systemd-analyze --user dump 选项,显示用户管理器的内部状态。但是我失败了,互联网搜索之后表明机器有一些问题。在 systemd 里, --user 实例用来管理和控制处理器给每个用户的资源。处理能力按分给每个用户的控制组 control group译者注系统管理一个特性分配我回头再写。
### 分析图表
很多尖头老板( pointy-haired-bosses )和好的经理人发现好的图表特别容易阅读理解比我经常看的文本类系统性能数据好。看我喜欢好图表systemd-analyze 提供了显示启动/起动数据用 [SVG][4] 向量图表。
下面的命令生成一个向量图文件来显示在启动起动之间发生的事件。生成这个文件只需要几秒:
```
`[root@david ~]# systemd-analyze plot > /tmp/bootup.svg`
```
这个命令创建了 SVGSVG是一个定义图向量应用的文本文件包括Image Viewer、Ristretto、 Okular、 Eye of Mate、 LibreOffice Draw、和其他(译者注:这些是文档应用)用来生成图。这些应用可以处理 SVG 来创建一个图像。
我用 LibreOffice Draw译者注一个办公文档软件去渲染一幅图。图很大你需要放大来看细节。这里放的比较小
![The bootup.svg file displayed in LibreOffice Draw.][5]
(David Both, [CC BY-SA 4.0][6])
启动起始是图上左面的时间线0起动序列在0的右面。这个小图显示了内核、initrd、和initrd处理开启。
这个图显示了谁什么时候开始,持续了多久,和主要的依赖。严格路径是红色高亮的。
另外一个生成图片输出的命令是 systemd-analyze plot它生成了[DOT][7] 格式纹理依赖图。结果数据流通过 dot 工具管道,这是一族用来生成向量图文件多种类型数据的程序。这些 SVG 文件也能被上面列出的工具处理。
首先生成文件在我的主工作站花了9分钟
```
[root@david ~]# time systemd-analyze dot | dot -Tsvg &gt; /tmp/test.svg
   Color legend: black     = Requires
                 dark blue = Requisite
                 dark grey = Wants
                 red       = Conflicts
                 green     = After
real    8m37.544s
user    8m35.375s
sys     0m0.070s
[root@david ~]#
```
我不想重新生成输出了,因为比意大利面还好。但是你应该试试看看我想让你看到的结果。
### 条件
我不想重新生成输出了,因为比意大利面还好。但是你应该试试看看我想让你看到的结果。
很多有意思的,也有些普遍的,当我读 systemd-analyze man 帮助时发现 condition 子命令 是的我读了man帮助手册我就是这样学习的。这个 condition 子命令能用来测试条件和断言 systemd 单元文件。
把它放到程序里评估一个或者多个条件成立是否返回 0 值,或者条件没有成立返回 1。 在其他情况,它根据调查结果吐出文本。
下面的例子来自man帮助手册稍微有点复杂。它测试了内核版本是不是在 4.0 和 5.1,主机使 用AC power系统结构不是 arm并且它的目录 /etc/os-release 是否存在。我加了 echo $? 来打印返回值。
```
[root@david ~]# systemd-analyze condition 'ConditionKernelVersion = ! &lt;4.0' \
                    'ConditionKernelVersion = &gt;=5.1' \
                    'ConditionACPower=|false' \
                    'ConditionArchitecture=|!arm' \
                    'AssertPathExists=/etc/os-release' ; \
echo $?
test.service: AssertPathExists=/etc/os-release succeeded.
Asserts succeeded.
test.service: ConditionArchitecture=|!arm succeeded.
test.service: ConditionACPower=|false failed.
test.service: ConditionKernelVersion=&gt;=5.1 succeeded.
test.service: ConditionKernelVersion=!&lt;4.0 succeeded.
Conditions succeeded.
0
[root@david ~]#
```
条件和断言在 systemd.unit(5) man帮助手册的大概 600 行。
### 罗列配置文件
systemd-analyze 工具可以发送多种配置文件内容去标准输出,像这儿展示的,基础根目录是 /etc/:
```
[root@david ~]# systemd-analyze cat-config systemd/system/display-manager.service
# /etc/systemd/system/display-manager.service
[Unit]
Description=LXDM (Lightweight X11 Display Manager)
#Documentation=man:lxdm(8)
Conflicts=[getty@tty1.service][8]
After=systemd-user-sessions.service [getty@tty1.service][8] plymouth-quit.service livesys-late.service
#Conflicts=plymouth-quit.service
[Service]
ExecStart=/usr/sbin/lxdm
Restart=always
IgnoreSIGPIPE=no
#BusName=org.freedesktop.lxdm
[Install]
Alias=display-manager.service
[root@david ~]#
```
这和标准的 cat 命令做的差不多。我发现另外一条小有帮助的命令,它能在标准的 systemd 所在的位置搜索模式匹配的内容:
```
[root@david ~]# systemctl cat backup*
# /etc/systemd/system/backup.timer
# This timer unit runs the local backup program
# (C) David Both
# Licensed under GPL V2
#
[Unit]
Description=Perform system backups
Requires=backup.service
[Timer]
Unit=backup.service
OnCalendar=*-*-* 00:15:30
[Install]
WantedBy=timers.target
# /etc/systemd/system/backup.service
# This service unit runs the rsbu backup program
# By David Both
# Licensed under GPL V2
#
[Unit]
Description=Backup services using rsbu
Wants=backup.timer
[Service]
Type=oneshot
Environment="HOME=/root"
ExecStart=/usr/local/bin/rsbu -bvd1
ExecStart=/usr/local/bin/rsbu -buvd2
[Install]
WantedBy=multi-user.target
[root@david ~]#
```
这些命令为每个文件提供了包含文件的全路径和文件名的注释行。
### 单元文件检查
当创建了一个新的单元文件,利用 verify 子命令帮助检查语法是否正确。它能指出来不正确的拼写和呼叫错误服务单元的指导。
```
`[root@david ~]# systemd-analyze verify /etc/systemd/system/backup.service`
```
Unix/Linux 的反馈宗旨是“沉默是金”,没有输出意味着扫描文件没有错。
### 安全
security 子命令检查指定服务的安全级别。只能针对服务单元,其他类型的单元文件不可用:
```
[root@david ~]# systemd-analyze security display-manager
  NAME                                                        DESCRIPTION                                                     &gt;
✗ PrivateNetwork=                                             Service has access to the host's network                        &gt;
✗ User=/DynamicUser=                                          Service runs as root user                                       &gt;
✗ CapabilityBoundingSet=~CAP_SET(UID|GID|PCAP)                Service may change UID/GID identities/capabilities              &gt;
✗ CapabilityBoundingSet=~CAP_SYS_ADMIN                        Service has administrator privileges                            &gt;
✗ CapabilityBoundingSet=~CAP_SYS_PTRACE                       Service has ptrace() debugging abilities                        &gt;
✗ RestrictAddressFamilies=~AF_(INET|INET6)                    Service may allocate Internet sockets                           &gt;
✗ RestrictNamespaces=~CLONE_NEWUSER                           Service may create user namespaces                              &gt;
✗ RestrictAddressFamilies=~…                                  Service may allocate exotic sockets                             &gt;
✗ CapabilityBoundingSet=~CAP_(CHOWN|FSETID|SETFCAP)           Service may change file ownership/access mode/capabilities unres&gt;
✗ CapabilityBoundingSet=~CAP_(DAC_*|FOWNER|IPC_OWNER)         Service may override UNIX file/IPC permission checks            &gt;
✗ CapabilityBoundingSet=~CAP_NET_ADMIN                        Service has network configuration privileges                    &gt;
✗ CapabilityBoundingSet=~CAP_SYS_MODULE                       Service may load kernel modules
&lt;SNIP&gt;
✗ CapabilityBoundingSet=~CAP_SYS_TTY_CONFIG                   Service may issue vhangup()                                     &gt;
✗ CapabilityBoundingSet=~CAP_WAKE_ALARM                       Service may program timers that wake up the system              &gt;
✗ RestrictAddressFamilies=~AF_UNIX                            Service may allocate local sockets                              &gt;
→ Overall exposure level for backup.service: 9.6 UNSAFE 😨
lines 34-81/81 (END)
```
是的哭脸emoji是输出。但是当然很多服务的工作比美观更重要。我列举了一些服务包括我自己的备份服务结果可能不同但是最下面一行看起来是一样的。
这个工具对于在严格的安全环境检查和修复用户空间服务单元是很有用的。我不认为我们的大多数都能用到它。
### 最后总结
强有力的工具sysmted-analyze提供了一些有意思和迷人的有益的选项。这篇文章阐述了用 systemd-analyze 来分析 systemd Linux内部起动性能。它同样能分析 systemd 的其他方面。
工具的某部分是限制使用的,有些被遗漏。但是大多数对于起动和其他 systemd 功能的问题解决提供了很好的结果。
### 资源
互联网上关于 systemd 有很多信息,但是很多过于简洁,迟钝,甚至误导。这篇文章中提到的额外的资源,是列在下面的关于 systemd 起动的更细节更可信的web页面。我罗列了自从我开始这个系列的文章影响我研究的内容。
* The [systemd.unit(5) 手册页面][9] 包含了非常棒的每个都是丰富细节描述的一些单元文件节段和它们的配置文件选项。
* The Fedora 项目有一个好的练习 [systemd 指导][10]. 它指导了你用 Fedora systemd 要知道的设置,管理,维护。
* The Fedora 项目还有一个好的 [备忘录][11] 兼容交叉了老的 SystemV 命令和 systemd 以及比较。
* Red Hat 文档包含了一个详细的描述 [单元文件结构][12] 和其他一样重要的信息。
* 关于systemd技术细节和创建的原因可以去 Freedesktop.org's [ systemd 详述][13].
* [Linux.com][14]的 "更多 systemd 乐趣" 提供了很多高级的 systemd  [信息和提示][15].
下面是 systemd 设计者和主要开发者 Lennart Poettering 关于 Linux 系统管理员的深度技术文档这些文章尽管写于2010年4月到2011年9月现在看也是非常适应时宜的。其他很棒的 systemd 相关的体系都基于这些设计。
* [Rethinking PID 1][16]
* [systemd for Administrators, Part I][17]
* [systemd for Administrators, Part II][18]
* [systemd for Administrators, Part III][19]
* [systemd for Administrators, Part IV][20]
* [systemd for Administrators, Part V][21]
* [systemd for Administrators, Part VI][22]
* [systemd for Administrators, Part VII][23]
* [systemd for Administrators, Part VIII][24]
* [systemd for Administrators, Part IX][25]
* [systemd for Administrators, Part X][26]
* [systemd for Administrators, Part XI][27]
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/9/systemd-startup-configuration
作者:[David Both][a]
选题:[lujun9972][b]
译者:[jiamn](https://github.com/jiamn)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/dboth
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/find-file-linux-code_magnifying_glass_zero.png?itok=E2HoPDg0 (Magnifying glass on code)
[2]: https://opensource.com/article/20/7/systemd-calendar-timespans
[3]: https://opensource.com/article/20/5/systemd-startup?utm_campaign=intrel
[4]: https://en.wikipedia.org/wiki/Scalable_Vector_Graphics
[5]: https://opensource.com/sites/default/files/uploads/bootup.svg-graph.png (The bootup.svg file displayed in LibreOffice Draw.)
[6]: https://creativecommons.org/licenses/by-sa/4.0/
[7]: https://en.wikipedia.org/wiki/DOT_(graph_description_language)
[8]: mailto:getty@tty1.service
[9]: https://man7.org/linux/man-pages/man5/systemd.unit.5.html
[10]: https://docs.fedoraproject.org/en-US/quick-docs/understanding-and-administering-systemd/index.html
[11]: https://fedoraproject.org/wiki/SysVinit_to_Systemd_Cheatsheet
[12]: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_basic_system_settings/managing-services-with-systemd_configuring-basic-system-settings#Managing_Services_with_systemd-Unit_File_Structure
[13]: https://www.freedesktop.org/wiki/Software/systemd/
[14]: http://Linux.com
[15]: https://www.linux.com/training-tutorials/more-systemd-fun-blame-game-and-stopping-services-prejudice/
[16]: http://0pointer.de/blog/projects/systemd.html
[17]: http://0pointer.de/blog/projects/systemd-for-admins-1.html
[18]: http://0pointer.de/blog/projects/systemd-for-admins-2.html
[19]: http://0pointer.de/blog/projects/systemd-for-admins-3.html
[20]: http://0pointer.de/blog/projects/systemd-for-admins-4.html
[21]: http://0pointer.de/blog/projects/three-levels-of-off.html
[22]: http://0pointer.de/blog/projects/changing-roots
[23]: http://0pointer.de/blog/projects/blame-game.html
[24]: http://0pointer.de/blog/projects/the-new-configuration-files.html
[25]: http://0pointer.de/blog/projects/on-etc-sysinit.html
[26]: http://0pointer.de/blog/projects/instances.html
[27]: http://0pointer.de/blog/projects/inetd.html

View File

@ -1,194 +0,0 @@
[#]: subject: (Partition a drive on Linux with GNU Parted)
[#]: via: (https://opensource.com/article/21/4/linux-parted-cheat-sheet)
[#]: author: (Seth Kenlon https://opensource.com/users/seth)
[#]: collector: (lujun9972)
[#]: translator: (hwlife)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
在 Linxu 上使用 GNU Parted 对磁盘分区
======
了解对新的储存设备分区的基础知识,然后下载我们的备忘表隔,保持信息交流方便。
![Cheat Sheet cover image][1]
在 21 世纪,我们倾向于数据存储是理所当然的。我们有许多存储介质,相对价格便宜,而且有许多不同的可用类型。不论你获得的免费云存储空间有多少,没有比有一个物理硬盘空间来存储重要的数据更好了(容量真的很大或者当你在一个慢速网络上时) 。然而,理想的磁盘分区是没有几块硬盘买回来就是现成的,至少,如果你买了一块新硬盘或者用不同分区安装一个系统,你需要知道怎么在 Linux 上为磁盘分区。
这篇文章介绍 GNU Parted ,磁盘分区最好的工具之一。如果你偏向使用图形化程序替代终端命令行,阅读我的 [为 Linux 格式化驱动器][2] 这篇文章。
### 磁盘卷标,分区和文件系统
技术上来说,一个硬盘驱动器不需要很多软件来服务于存储设备。然而,使用一个驱动器没有现代化的转换技术比如分区表和文件系统是困难的,不切实际的,对你的数据是不安全的。
这里有三个你需要知道的关于硬盘驱动器的重要概念:
* A **磁盘卷标** 或者 **分区表** 是放置在磁盘驱动器起始位置的元数据,它为计算机读取关于可用存储是何种类型,磁盘驱动器的位置等信息做提示。
* A **分区** 是一个证明文件系统所在位置的边界。举个例子,如果你有一个 512GB 的硬盘,你可以用占用所有磁盘容量 (512GB) 分成一个分区,或者分成两个分区,每个占用 256GB ,或者分成三个分区占用一些其他大小变化等等。
* A **文件系统** 是一个硬盘驱动器和计算机两者约定俗成的存储体系。计算机必须知道怎样读取文件系统上拼合在一起存储在驱动器上的的数据,并且知道怎样写入数据到文件系统并保持数据的完整性。
GNU Parted 程序管理前两个概念磁盘卷标和分区。Parted 对文件系统有所了解,但是它留下了文件系统详细操作给了其他类似 `mkfs` 这样的工具。
**[下载 [GNU Parted 备忘表格][3]]**
### 查找磁盘驱动器
使用 GNU Parted 之前,你必须在你的系统上确定你的驱动器所在位置。首先,连接你想要格式化你的系统的磁盘驱动器,然后用 `parted` 命令查看连接到你的计算机的内容:
```
$ parted /dev/sda print devices
/dev/sda (2000GB)
/dev/sdb (1000GB)
/dev/sdc (1940MB)
```
你最新连接设备的名称在字母表上晚于连接时间更长的设备。举个例子,`/dev/sdc` 最有可能是我刚刚连接的磁盘。我能通过它的容量大小来确认,相比于我的工作站上的主要驱动器的 TB 大小来说,因为我知道我插入的 U 盘 只有 2GB (1940MB 足够接近) 大小。如果你不能确定,你可以得到的更多关于你想要分区的驱动器的信息:
```
$ parted /dev/sdc print
Model: Yoyodyne Tiny Drive 1.0 (scsi)    
Disk /dev/sdc: 1940MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number  Start   End     Size    File system  Name  Flags
 1      1049kB  2048kB  1024kB  BS           Bloat  Hidden
 2      2049kB  1939MB  1937MB  FAT32        MyDrive
```
有些驱动器比其他驱动器有更多的元数据。这个磁盘证明它自己的物理驱动器商标是 Yoyodyne ,此外,在磁盘的起始包含了一个小的有些臃肿的隐藏分区和一个兼容 Windows 的 FAT32 分区。这确实是我要重新打算格式化的驱动器。
继续之前, _确认_ 你已经证实你要分区正确的驱动器。 _重新分区错误的驱动器会导致数据丢失。_ 为了安全起见,在文章中整个潜在的破环性命令都引用为在你的系统中不太可能有的 `/dev/sdX` 设备。
### 创建磁盘卷标或者分区表
要在磁盘上创建一个分区,驱动器必须要有一个磁盘卷标。磁盘卷标也被叫做 _分区表_,所以 Parted 对两个术语都接受。
要创建一个磁盘卷标,使用 `mklabel``mktable` 子命令:
```
`$ parted /dev/sdX mklabel gpt`
```
这个命令在位于 `/dev/sdX` 的驱动器前面创建了一个 **gpt** 的标签,删除了任何可能存在的标签。这是一个快速的过程因为所有关于被替换的分区信息都存在于元数据。
### 创建分区
要在磁盘创建分区,使用 `mkpart` 子命令,后跟分区的可选名称,再跟分区的开始和结束位置。如果你在磁盘上只需要一个分区,那么大小调整是容易的:开始位置输入 1 ,结束位置输入 100% 。使用 `--align opt` 参数允许 Parted 调整分区边界位置便于磁盘获得最佳性能:
```
$ parted /dev/sdX --align opt \
mkpart example 1 100%
```
`print` 子命令查看你的新分区:
```
$ parted /dev/sdX print
Model: Yoyodyne Tiny Drive 1.0 (scsi)
Disk /dev/sdi: 1940MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number  Start   End     Size  
 1      1049kB  1939MB  1938MB
```
你不必使用整个磁盘作为一个分区。分区的优势是在一个磁盘上可以存在多个文件系统,它们之间不会相互干扰。但调整分区的时候,你可以使用 `unit` 子命令来设置你想用的测量方法。Parted 理解扇区柱面磁头字节KB MB GB TB 和百分比。
你也可以指定你打算使用分区的文件系统。这并不能够完全创建文件系统,但是它为你以后方便使用提供了元数据。
将磁盘对半分,一个是 XFS 文件系统,另一个是 EXT4 文件系统:
```
$ parted /dev/sdX --align opt \
mkpart xfs 1 50%
$ parted /dev/sdX --align opt \
mkpart ext4 51% 100%
```
### 命令分区
除了标记分区用于什么文件系统之外,你也可以为每个分区命名。一些文件管理器和工具可以读取分区名称,能够帮助你区分驱动器。例如,我经常有几个不同的驱动器连接到我的媒体工作站,每个属于一个不同的项目。当创建这些驱动器的时候,我把分区和文件系统名称都命名了,以至于不论我怎么看我的系统,重要数据的位置都被清楚的标记。
要命名一个分区,你必须知道它的序号:
```
$ parted /dev/sdX print
[...]
Number  Start   End     Size   File system  Name     Flags
 1      1049kB  990MB   989MB  xfs          example
 2      1009MB  1939MB  930MB  ext4         noname
```
要命名分区 1
```
$ parted /dev/sdX name 1 example
$ parted /dev/sdX print
[...]
Number  Start   End     Size   File system  Name     Flags
 1      1049kB  990MB   989MB  xfs          example
 2      1009MB  1939MB  930MB  ext4         noname
```
### 创建文件系统
要让你的驱动器能够正常使用你必须在新分区上创建一个文件系统。GNU Parted 没有这样做,因为它只是一个分区管理器。在磁盘上使用 `mkfs` 命令来创建文件系统,而且有些对你有帮助的工具使用别名来创建特定种类的文件系统。例如, `mkfs.ext4` 创建 EXT4 文件系统, `mkfs.xfs` 创建 XFS 文件系统等等。
你的分区位于磁盘驱动器的 "内部" ,所以不用在 `/dev/sdX` 上创建文件系统,只需要在第一个分区创建你的 `/dev/sdX1` 文件系统, `/dev/sdX2` 是第二个文件系统,以此类推。
这里是一个创建 XFS 文件系统的例子:
```
`$ sudo mkfs.xfs -L mydrive /dev/sdX1`
```
### 下载我们的备注表格
Parted 是一个灵活而强大的工具。如本文所示,你可以发出命令,或者激活一个交互模式以不断 "连接" 你指定的驱动器:
```
$ parted /dev/sdX
(parted) print
[...]
Number  Start   End     Size   File system  Name     Flags
 1      1049kB  990MB   989MB  xfs          example
 2      1009MB  1939MB  930MB  ext4         noname
(parted) name 1 mydrive
(parted)
```
如果你打算经常使用 Parted [下载我们的 GNU Parted 备忘表格][3]以至于你可以方便使用所有的子命令。
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/4/linux-parted-cheat-sheet
作者:[Seth Kenlon][a]
选题:[lujun9972][b]
译者:[hwlife](https://github.com/hwlife)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/seth
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/coverimage_cheat_sheet.png?itok=lYkNKieP (Cheat Sheet cover image)
[2]: https://opensource.com/article/18/11/partition-format-drive-linux#gui
[3]: https://opensource.com/downloads/parted-cheat-sheet

View File

@ -0,0 +1,123 @@
[#]: subject: "Create Your Own Custom Light and Dark Wallpaper for GNOME"
[#]: via: "https://www.debugpoint.com/2022/04/custom-light-dark-wallpaper-gnome/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lujun9972"
[#]: translator: "robsean"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
创建你自己的自定义的 GNOME 的明暗壁纸
======
一份简单的指南 如何针对 GNOME 桌面环境来创建你的自定义明暗壁纸。
[GNOME 42][1] 将备受期待的明暗主题到 GNOME 桌面环境。它也带来壁纸的明暗版本,当你切换明暗主题时,它会自动地转换。
因此默认情况下GNOME 给予你一套预配置的明暗壁纸。但是如果你想要在主题更改时自动地转换成另一种不同的壁纸要怎么做呢?
这里是如何在 GNOME 中配置和创建你自己的明暗壁纸的方法。
### 如何针对 GNOME 桌面环境来创建自定义的明暗壁纸
第一,确保你手边有两个版本的壁纸。一般来说,它们应该是标准的 PNG 或 JPG 图像文件。例如,我们针对这个示例使用下面的两张壁纸。
![Sample light and dark wallpaper for demo][2]
但是,如果你没有合适的明暗壁纸,或者正在查找更多的壁纸,在这篇指南的结尾,我将让你知道如何获取它们,或者如何自己准备它们。请与我同行。
第二, 我们需要为我们自己创建一个 schema 文件。The automatic changing of wallpaper is handled by an XML file called adwaita.xml, 它定义了特殊的明暗背景标记。因此,我们将为壁纸创建我们自己的 XML 文件。
为做到这一点,从 GitLab 复制 adwaita.xml 的内容,并创建一个新的 XML 文件 (链接在下面)。你能够会在这个文件中看到两个标记 “filename” 和 “filename-dark”。这两个 XML 标记包含这两个壁纸的完整的限定的路径。现在,在这两个标记下添加你的图像文件的路径,如我下图所示。。
[从这里下载 XML 文件 (adwaita.xml)][3]
![Change the XML file][4]
第三,使用你想要的任意名称保存这个文件。如果这里没有 “gnome-background-properties”创建它。针对这个示例我使用 my_cool_backgrounds.xml 。
![Save the file][5]
与此同时,你就准备好了所有的东西。最后,打开 settings 并转到 Appearance 标签页,你应该会看到一个新的可视的壁纸选项。
[][6]
请参考:新的 GNOME 文本编辑器 - 你需要知晓的一切
选择你自己的自定义的明暗壁纸,尽情享受。
![Appearance tab has now your own custom light and dark wallpaper][7]
### 如何下载或制作你自己的动态壁纸
当然,你必然会想,谁有时间去查找和创建壁纸的日夜版本?这里有一些网站来向你提供预制好的动态壁纸,你可以轻松地下载和安装。
我推荐的一个网站是 [dynamicwallpaper.club][8] ,针对 macOS 来说,它有一些高达 6K 的极好的高质量的壁纸。你可以轻松地下载它们。
此外,如果你打算从上述网站下载,请记住该网站的图像文件是 [heic][9] 格式的,因为这个网站是针对 macOS 的。高效视频编码 (HEIC) 是苹果的专有的 HEIF (High-Efficiency Image File) 的格式版本。
那么,如何在 Linux 系统中转换它们? 好吧,在 Ubuntu 或 Fedora Linux 中,你需要一个驱动程序来查看和转换动态的 heic 图像文件。打开一个终端,运行下面的命令开安装驱动程序。
Ubuntu 用户
```
sudo apt install heif-gdk-pixbuf
```
Fedora 用户
```
sudo dnf install libheif
```
(没有这个插件的帮助Plasma 应用程序就不能打开 heic 格式的图像文件)
```
sudo apt install qt-heif-image-plugin
sudo dnf install qt-heif-image-plugin
```
最后,使用你喜欢的图像查看器打开 heic 图像文件,并将其保存为 JPG/PNG 图像文件。
最好,不要忘记在下面的评论区告诉我,你是否能够针对 GNOME 桌面环境来创建你自己的自定义的明暗壁纸了。
![Custom Light and Dark wallpaper in GNOME transition][10]
谢谢。
* * *
我们带来最新的科技、软件新闻和重要的题材。通过 [Telegram][11]、[Twitter][12][YouTube][13] 和 [Facebook][14] 保持联系、不错过一次更新!
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/2022/04/custom-light-dark-wallpaper-gnome/
作者:[Arindam][a]
选题:[lujun9972][b]
译者:[robsean](https://github.com/robsean)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.debugpoint.com/author/admin1/
[b]: https://github.com/lujun9972
[1]: https://www.debugpoint.com/2022/03/gnome-42-release/
[2]: https://www.debugpoint.com/wp-content/uploads/2022/04/Sample-light-and-dark-wallpaper-for-demo.jpg
[3]: https://gitlab.gnome.org/GNOME/gnome-backgrounds/-/tree/main/backgrounds
[4]: https://www.debugpoint.com/wp-content/uploads/2022/04/Change-the-XML-file-1024x568.jpg
[5]: https://www.debugpoint.com/wp-content/uploads/2022/04/Save-the-file-1024x548.jpg
[6]: https://www.debugpoint.com/2021/12/gnome-text-editor/
[7]: https://www.debugpoint.com/wp-content/uploads/2022/04/Apperance-tab-has-now-your-own-custom-light-and-dark-wallpaper-1024x657.jpg
[8]: https://dynamicwallpaper.club
[9]: https://en.wikipedia.org/wiki/High_Efficiency_Image_File_Format
[10]: https://www.debugpoint.com/wp-content/uploads/2022/04/Custom-Light-and-Dark-wallpaper-in-GNOME-transition-1024x556.gif
[11]: https://t.me/debugpoint
[12]: https://twitter.com/DebugPoint
[13]: https://www.youtube.com/c/debugpoint?sub_confirmation=1
[14]: https://facebook.com/DebugPoint