diff --git a/content/posts/distroIntro.md b/content/posts/distroIntro.md index 4e6433b..53e1dd4 100644 --- a/content/posts/distroIntro.md +++ b/content/posts/distroIntro.md @@ -2,8 +2,7 @@ title: "面向 beginner: GNU/Linux 发行版浅评与介绍" author: suo yuan date: 2023-12-01T03:42:51Z -lastmod: 2024-11-20T08:31:25Z - +lastmod: 2024-11-22T13:35:11Z draft: false categories: - Linux_杂谈 @@ -23,7 +22,7 @@ description: "介绍了大部分主流发行版" 选择 GNU/Linux 发行版很大程度上你是在选择软件包管理器,系统的更新策略。软件就在那里不会改变,OS 之间的不同很大程度上看的是使用什么软件包管理器,比如是直接装二进制软件包还是从源代码开始编译,系统的更新策略一般分成随版本的更新,比如 Ubuntu 的 LTS ( Long-term support )应该是会推送五年的安全更新,之后就要换更新的 LTS 版本了;或者滚动更新,这样会一直向前更新,也就不会有版本的概念。部分发行版会同时推出这两种半分的发行版。 -这里我先简单介绍一下为什么我特地加上 GNU/Linux,这就表明了一些 de-gnu 的 Linux 发行版不会在这里(在我看来,de-gnu 也就是在系统中去掉 GNU 的软件),而且我也没用过这样的发行版。说实话,我很少看到 de-gnu 这样的字眼,GNU 对开源世界的贡献十分大,我很少会看到有人会批驳它什么,我更多的看到的是 de-google,指在移动端避免 GMS 等服务。 +这里我先简单介绍一下为什么我特地加上 GNU/Linux,这就表明了一些 de-GNU 的 Linux 发行版不会在这里(在我看来,de-GNU 也就是在系统中去掉 GNU 的软件),而且我也没用过这样的发行版。说实话,我很少看到 de-GNU 这样的字眼,GNU 对开源世界的贡献十分大,我很少会看到有人会批驳它什么,我更多的看到的是 de-Google,指在移动端避免 GMS 等服务。 > There really is a Linux, and these people are using it, but it is just a part of the system they use. Linux is the kernel: the program in the system that allocates the machine's resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. Linux is normally used in combination with the GNU operating system: the whole system is basically GNU with Linux added, or GNU/Linux. All the so-called “Linux” distributions are really distributions of GNU/Linux. > @@ -54,7 +53,9 @@ gcc 本身也支持一些额外功能,比如嵌套函数,glibc 使用了 gcc [Alpine Linux](https://alpinelinux.org/) 就是使用的 musl libc 替换了 glibc,用 busybox 替换了 gnu-coreutils,不过软件支持的还不是很多。 -理论上,闭源依赖 glibc 的软件才有概率更难运行在 musl libc 的环境上,不过 chromium 内核的也会如此,目前 chromium 官方对 musl libc 没什么支持。systemd 也是 依赖于 glibc 的,这是一个广泛应用于各种 GNU/Linux 发行版的 init 系统,init 系统用于负责在系统初始化的时候进行一些初始化服务,不过 systemd 做的更多,引导启动这部分也可以交给 systemd-boot,还有其他的一些非传统 init 应该管理的部分也被 systemd 集成管理。有批评的声音认为 systemd 这个做法扩大了攻击面,不过事实是很多人都选择使用它。 +理论上,闭源依赖 glibc 的软件才有概率更难运行在 musl libc 的环境上,不过 chromium 内核的也会如此,目前 chromium 官方对 musl libc 没什么支持。systemd 也是 依赖于 glibc 的 + +systemd 是一个广泛应用于各种 GNU/Linux 发行版的 init 系统,init 系统用于负责在系统初始化的时候进行一些初始化服务,不过 systemd 做的更多,引导启动这部分也可以交给 systemd-boot,还有其他的一些非传统 init 应该管理的部分也被 systemd 集成管理。有批评的声音认为 systemd 这个做法扩大了攻击面,不过事实是很多人都选择使用它。 我不会介绍这种 de-GNU 的 Linux 发行版。 @@ -64,19 +65,13 @@ gcc 本身也支持一些额外功能,比如嵌套函数,glibc 使用了 gcc 如果你并不是虚拟机安装 Linux 发行版的话,我认为应该还是要思考该类系统是否符合你的需求再说,当然如果你并不在意就当我没说。 -现在来说,NVIDIA 显卡驱动在 Wayland 桌面协议下的使用还有一堆事情,~~你会发现 night light 不可用,屏幕色温你根本无法调节。~~ (目前已经可以调节了)。已知现在 Linux 发行版中能选择的桌面协议要么是之前的 X11,要么是 Wayland,其中 X11 是之前搞的,Wayland 是新项目旨在取代 X11,所以还需要 XWayland 去运行只支持 X11 的应用,但是这样就无法体验到 Wayland 带来的好处了(比如 Wayland 较 X11 要安全一些)。如果你用的 NVIDIA 显卡,而且如果是新卡的话大概率使用 nvidia-driver 这个 NVIDIA 官方提供的闭源驱动,~~那么 Wayland 下并不能完美的运行 XWayland 模拟的应用。~~(现在可以完美运行了) - -下边这段关于 NVIDIA 的 XWayland 显示同步的内容写于 2024 年 4 月 26 日 - -NVIDIA 已经提交了 XWayland 显示同步的相关补丁,主流的桌面环境已经合并相关补丁,等到 NVIDIA 发布 560 版本的驱动应该就可用了。~~(貌似是 555 版本,而非 560)~~ 确实是 555 版本。 - ~~现在还不支持 HDR~~(现在有了实验性支持)。浏览器对硬件解码的支持不是很完美。关于视频硬解加速,NVIDIA 有自己的一套 NVDEC,其他显卡用另一套 VAAPI ([nvidia-vaapi-driver](https://github.com/elFarto/nvidia-vaapi-driver) 可以让 NVIDIA 的 NVDEC 以 VAAPI 解码,但只支持解码,编码尚不支持,编码的话就还是用 NVDEC 了)。FireFox 还支持了 VAAPI,但不支持 NVDEC,Chromium 内核的浏览器目前仍然处于实验状态,而且也是只支持 VAAPI,ChromiumOS 和其他 Linux 发行版的文档会有说明可以尝试添加哪些参数启用这个功能。Chromium 内核的浏览器默认还不是 Wayland。 -我不好评价 GNU/Linux 玩游戏会是怎样的体验,不过 Valve 公司基于 wine 开发了 [Proton](),只要在 Steam Play 中勾选为所有应用启用 Steam Play 就可以玩那些只支持 Windows 平台的游戏了,但不好评价是否能一定起作用,Steam Deck 上搭载的系统 Steam OS 是基于 Arch Linux 做的,所以游戏方面也不至于那么难绷。有个非官方的网站 [protondb](https://www.protondb.com/),可以在这上面搜索一下特定游戏的评价,有玩家会在上面分享这个游戏运行起来的体验如何,并且还有给出他运行这个游戏的发行版的相关信息,如果是不太好运行的游戏,也许还会分享他们是如何让这个游戏跑起来的。 +我不好评价 GNU/Linux 玩游戏会是怎样的体验。Valve 公司基于 wine 开发了 [Proton](),只要在 Steam Play 中勾选为所有应用启用 Steam Play 就可以玩那些只支持 Windows 平台的游戏了,但不好评价是否能一定起作用,Steam Deck 上搭载的系统 Steam OS 是基于 Arch Linux 做的,所以使用 GNU/Linux 玩游戏方面也不至于那么难绷。 -国内软件的适配还不是很好,听说腾讯会议虽然支持了 Wayland,但是 Wayland 下的运行,窗口分享和摄像头都不能正常工作。QQ 虽然存在 Linux 平台的版本,但仍然有一些小问题等待修复。~~微信则是根本没有相应的版本,大体上办法只有两种:搞个 Windows 的虚拟机运行微信,如果是 VirtualBox 或者 VMWare 这样的虚拟机管理软件直接开剪切板共享什么的,或者原生态一点就自己装 spice 驱动也可以,但还是不太贴合正常用户日常的使用,而且一整个虚拟机的占用也是有点难绷;还有就是用 wine 去模拟 Windows 的微信,直接上来就 `wine wechat.exe` 这样的其实并不能完美的运行,会有很多小问题,这时候就可以参考别人的项目,但貌似还是天生存在一些小问题无法解决——wine 的微信不允许你传大于 1MB 的图片,并且小程序也用不了。~~(现在有了 QT 写的跨平台的微信了,只不过还是测试版: https://linux.weixin.qq.com/) +非官方的网站 [protondb](https://www.protondb.com/),这上面可以搜索到一些游戏的评价,有玩家会在上面分享这个游戏在他使用的发行版运行起来的体验如何,并且还有给出他运行这个游戏的发行版的相关信息,如果是不太好运行的游戏,也许还会分享他们是如何让这个游戏跑起来的。 -~~wechat for linux 已经有原生的实现了,目前看来还不错,就是默认情况下只能被 UOS 还是哪几位国产操作一些小功能还是欠缺的,我一直认为对消息的回复是个很有必要的功能,但是目前我只看到了复制转发和删除,和 linuxqq 一样(悲)。~~(微信 4.0 测试版已经有了引用等功能) +国内软件的适配还不是很好,腾讯会议虽然支持了 Wayland,但是 Wayland 下的运行,窗口分享和摄像头都不能正常工作。QQ 虽然存在 Linux 平台的版本,但仍然有一些小问题等待修复。现在倒是有了 QT 写的跨平台的微信了,只不过还是测试版: https://linux.weixin.qq.com/ 更多的可以参考我新写的一篇文章:[为什么你应该(不)使用 GNU/Linux 作为日用操作系统](../whywinorlinux/) @@ -84,11 +79,13 @@ NVIDIA 已经提交了 XWayland 显示同步的相关补丁,主流的桌面环 ## OS -这里说的系不代表某个 OS 就是基于 Linux kernel 做的了,它可能也基于别的发行版,只不过我不知道了。下面关于发行版的截图大部分来自 Wikipedia 的图片,有一部分来自其在社交媒体上的官方账号发送的图片,当然也有几张是我自己截的。因为我自己懒得再装一遍,所以有的图片用的别人的,如果有机会装他们的发行版我就替换一下。 +下面关于发行版的截图大部分来自 Wikipedia 的图片,有一部分来自其在社交媒体上的官方账号发送的图片,当然也有几张是我自己截的。因为我自己懒得再装一遍,所以有的图片用的别人的,如果有机会装他们的发行版我就替换一下。 + +> **所以如果你是某张图片的利益相关人员,认为我使用这张和你利益相关的图片是种侵权行为,请通过一些我可以看到的方式(如评论)联系我** -### Debian 系 +### Debian 相关 -首先介绍 Debian 系,因为如果有国内软件是被官方支持开发 Linux 版本的,那么至少会给一个 deb 包(deb 就是 Debian 系使用的软件包格式)。Debian 系使用 dpkg 作为软件包管理器。 +首先介绍 Debian 的,因为如果有国内软件是被官方支持开发 Linux 版本的,那么至少会给一个 deb 包(deb 就是 Debian 系使用的软件包格式)。Debian 系使用 dpkg 作为软件包管理器。 #### Debian Linux @@ -108,7 +105,7 @@ NVIDIA 已经提交了 XWayland 显示同步的相关补丁,主流的桌面环 --- -Debian 默认不安装类似 sudo 这样的执行特权命令的程序,所以需要你自己安装,然后自己写相应的配置文件。(这个我有点忘了是不是了,sudo 这样的软件是很有必要的,老生常谈的就是尽量减少攻击面之类的,直接 su 切换到 root 用户去执行*和系统相关的命令*是很危险的行为) +Debian 默认不安装类似 sudo 这样的执行特权命令的程序,所以需要你自己安装,然后自己写相应的配置文件。(sudo 这样的软件是很有必要的,老生常谈的就是尽量减少攻击面之类的,直接 su 切换到 root 用户去执行*和系统相关的命令*是很危险的行为) Debian Linux 应该是随版本更新,不过貌似 testing 软件源可以让它作为滚动更新而存在。 @@ -164,11 +161,11 @@ Ubuntu 认知中是随版本更新。 Kali Linux 我记得是滚动更新。 -#### Deepin +#### Deepin 23 之前 官网链接:https://www.deepin.org/ -Deepin 操作系统作为我国国产的操作系统,我自然是要体验一番的(虽然只使用了一天左右吧),V20.x 都是基于 Debian 的,截止目前,Deepin 的 V23 还没有发布 stable 版本,V23 开始就要自己做包管理器,也就是不再基于任何 GNU/Linux 操作系统。Deepin 操作系统是我比较推荐新手使用的,不过我自己没使用过太久,所以可能这个 OS 没有我想象中那么新手友好。作为一款国产的操作系统,一些没有推出 Linux 版本的国内软件它有自带的解决方案(虽然我没记错的话,应该是用 wine 模拟的,wine 是一个类 Unix 平台中运行 exe 程序的解决方案),Deepin 自带的软件商店可以点击一下就安装了,还是比较方便的。Deepin 默认使用自家的 DE——DDE,这个 DE 我自认为不咋好看。 +Deepin 操作系统作为我国国产的操作系统,我自然是要体验一番的(虽然只使用了一天左右吧),V20.x 都是基于 Debian 的,Deepin 操作系统是我比较推荐新手使用的,不过我自己没使用过太久,所以可能这个 OS 没有我想象中那么新手友好。作为一款国产的操作系统,一些没有推出 Linux 版本的国内软件它有自带的解决方案(虽然我没记错的话,应该是用 wine 模拟的,wine 是一个类 Unix 平台中运行 exe 程序的解决方案),Deepin 自带的软件商店可以点击一下就安装了,还是比较方便的。Deepin 默认使用自家的 DE——DDE,这个 DE 我自认为不咋好看。 > Wine 通过提供一个兼容层来将 Windows 的系统调用转换成与 POSIX 标准的系统调用。它还提供了 Windows 系统运行库的替代品和一些系统组件(像 Internet Explorer,注册表,Windows Installer)的替代品 @@ -180,7 +177,9 @@ Deepin 操作系统作为我国国产的操作系统,我自然是要体验一 Deepin 应该是随版本更新。 -### RedHat 系 +Deepin 23 开始,包管理器就不再使用 Debian 的 dpkg 了,所以标题写的是 Deepin 23 之前。 + +### RedHat 相关 这个名字也不知道对不对。Redhat 使用的大概是 rpm 包管理器。 @@ -192,21 +191,21 @@ Deepin 应该是随版本更新。 确实是为开发者设计,默认安装了 QEMU 和 GNOME BOX 可以用来安装虚拟机,还安装了 podman 用于安装一些容器。 -Fedora 默认启用 firewalld 防火墙,使用了 [SELinux](https://fedoraproject.org/wiki/SELinux) 安全模块,安装时可选全盘加密,软件仓库中的软件编译的时候也都是开启了 NX,PIE,fstack-protector,ALSR 等选项,内核也开启了一些安全选项编译。 +Fedora 默认启用 firewalld 防火墙,使用了 [SELinux](https://fedoraproject.org/wiki/SELinux) 安全模块,安装时可选全盘加密,开箱即用的安全启动支持,软件仓库中的软件编译的时候也都是开启了 NX,PIE,fstack-protector,ALSR 等选项,内核也开启了一些安全选项编译。 Fedora 40 开始,会为每个 WIFI 连接生成一份单独的 MAC 地址保护隐私: https://fedoraproject.org/wiki/Changes/StableSSIDMACAddress ![Fedora_Workstation_39_Desktop](/img/introdistro/Fedora_Workstation_38_Desktop.png) -这里可以发现和 Debian 差不多,Kali Linux 那张没有体现出其对 GNOME 的主题美化。三家的 GNOME 都差不多,因为版本没有差出那么多,三家发行版其软件仓库中的软件版本可能不同,但仅局限于此。 +Fedora 和 GNOME 配合的很好,受 GNOME 的更新也是最新的那一批。 -Fedora 39 搭载的是 GNOME 45,Terminal 用的是 gnome-terminal,我认为还是不错的,gnome-console 这个 Terminal 可设置选项太少了(泪目) +这里可以发现和 Debian 差不多,Kali Linux 那张没有体现出其对 GNOME 的主题美化。三家的 GNOME 都差不多,因为版本没有差出那么多,三家发行版其软件仓库中的软件版本可能不同,但仅局限于此。 -Fedora 默认会开 lzo 算法的 zram,可以的。 +Fedora 默认会开 lzo 算法的 zram,这点可以的。 Fedora Linux 是随版本更新。 -### Arch 系 +### Arch 相关 Arch 系使用 pacman 作为软件包管理器。不过 Arch Linux 提供了[AUR,Arch User Reposiory](https://aur.archlinux.org/),这是一个用户软件仓库,提供了 Arch Linux 官方仓库没有的软件,比如 linuxqq,一些国产软件都在 AUR 里可以找到,不过 AUR 不过是一个构建软件的脚本,对应软件得在 AUR 的 PKGBUILD 中写好的网址去拿对应的包。如果是国内软件安装还好说,其他的比如有些从 GitHub 拿的就得配置好网络了。Arch 有个 archlinuxcn 软件仓库,有一些额外的软件可以直接安装,中科大有 archlinuxcn 的软件源。 AUR 应该是 GNU/Linux 平台中软件包数量很多的平台了,能超过它的可能只有 NixOS 的(在我的认知中)。 @@ -218,29 +217,33 @@ Arch Linux 我只用了五个月左右就换成 Gentoo Linux 了,时间不长 Arch Linux 是我推荐在 Deepin 待过一会就尝试的操作系统,虽然这个系统需要使用命令来安装,没有安装界面,所以可能有些困难,不过[Arch Wiki](https://wiki.archlinux.org/title/Main_page)写的还是不错的,可以结合着别人的安装指南来看,wiki 和指南一起看,虚拟机尝试一手,就差不多了。这样的命令安装也许能让你对你的操作系统更有一个掌握的感觉(自认为)。 -而且我认为有一个 Arch Linux 的启动盘是有必要的,因为这样能一定程度上解决一些你需要进入系统才能解决的类似无法进入系统的问题。 +而且我认为有一个 Arch Linux 的启动盘是有些必要的,因为这样能一定程度上解决一些你需要进入系统才能解决的类似无法进入系统的问题。 ![KDE5](/img/introdistro/KDE_5.png) -这里放一个 KDE Plasma 桌面的截图,之后也就不放截图了,因为后续的发行版没有对桌面环境有什么太出彩的美化,这里放截图纯属因为还没放过 KDE Plasma 的截图()。 +这里放一个 KDE Plasma 桌面的截图,之后也就不放截图了,因为后续的发行版没有对桌面环境有什么太出彩的美化,这里放截图纯属因为还没放过 KDE Plasma 的截图。 -很多软件在 AUR 上都有对应的 BUILD 脚本,这一块的生态是我选择 Arch Linux 的一个很重要的原因( +很多软件在 AUR 上都有对应的 BUILD 脚本,这一块的生态是我选择 Arch Linux 的一个很重要的原因 Arch Linux 给了用户很高的自由度,用户可以自己选择使用什么增强安全的方式。 +Arch Linux 提供了 [archinstall](https://github.com/archlinux/archinstall) 可以更方便地安装系统 + Arch Linux 是滚动更新。 #### Manjaro Linux 官网链接:https://manjaro.org -Manjaro 是基于 Arch Linux 做的 OS,比 Arch 仓库的软件推送慢了两周还是多长时间来着,旨在提供比 Arch 更稳定的软件(这个是听说)。Manjaro 的优势或许就在于它有一个安装界面,可以点点点就开始安装了,不需要输入命令。我看到过一个吐槽 Manjaro Linux 的,认为这降低了 Arch Linux 的门槛,反而让一些因此才使用的用户无法应对使用中可能遇到的问题。当然我并不认为这会有大不了的()。我曾经在某年冬天就抱着要装 Manjaro 双系统的想法,当然后来我是 Arch Linux 单系统(逃)。 +Manjaro 是基于 Arch Linux 做的 OS,比 Arch 仓库的软件推送慢了两周,旨在提供比 Arch 更稳定的软件(这个是听说)。Manjaro 的优势或许就在于它有一个安装界面,可以点点点就开始安装了,不需要输入命令。我看到过一个吐槽 Manjaro Linux 的,认为这降低了 Arch Linux 的门槛,反而让一些因此才使用的用户无法应对使用中可能遇到的问题。当然我并不认为这会有大不了的。我曾经在某年冬天就抱着要装 Manjaro 双系统的想法,当然后来我是 Arch Linux 单系统(逃)。 + +有人说 Manjaro 有一个很好的驱动管理软件。 Manjaro Linux 是滚动更新。 -### OpenSUSE 系 +### OpenSUSE 相关 -说是系,我目前还不知道哪个系统是基于 OpenSUSE 做的。OpenSUSE 使用 zypper 作为软件包管理器。 +说实话,我目前还不知道哪个系统是基于 OpenSUSE 做的。OpenSUSE 使用 zypper 作为软件包管理器。 #### OpenSUSE Linux @@ -250,21 +253,31 @@ OpenSUSE Linux 提供了滚动更新和版本更新两种更新方式,这对 就像上一段开头说的那样,OpenSUSE Linux 提供了滚动更新和依版本更新两种方式,分别是 OpenSUSE Tumbleweed 和 OpenSUSE Leap。 -OpenSUSE 默认启用了 Apparmor。 +OpenSUSE 默认启用了 Apparmor,GRUB 启动引导界面有自己的皮肤,虽然我认为这个皮肤不怎么好看。 -### Gentoo 系 +### Gentoo 相关 -Gentoo 系使用 portage 软件包管理器,软件大多都是从源码开始安装。部分大型软件提供了二进制软件包版本。 +Gentoo 使用 portage 软件包管理器,软件大多都是从源码开始安装。部分大型软件提供了二进制软件包版本。 #### Gentoo Linux 官网链接:https://www.gentoo.org -Gentoo Linux 的软件版本相较于 Arch Linux 没有那么新,而且对国内用户的支持没有那么友好,只有 gentoo 官方源才有镜像源,官方网站上还只有三个,实际上不止有三个,我比较推荐不在那三个之列的中科大源。~~Gentoo 官方软件仓库没有 fcitx5(如果你不知道 fcitx5 是什么,我会在 DE 介绍那里说一下),要用的话推荐添加 gentoo-zh 软件仓库安装 fcitx5~~(现在 Gentoo Linux 的官方软件仓库已经有 fcitx5 及其周边软件了),其他一些国内软件 gentoo-zh 仓库也有收录,由于这个仓库是在 GitHub 上的,所以需要解决了网络问题才能同步最新 gentoo-zh 的软件信息。 +所谓的元发行版,由于软件仓库分发的是源码而不是软件本身(需要用户自己在自己的电脑或者是用户个人的服务器上编译),给了用户其他发行版都没有的自由。 -Gentoo Linux 的安装并不完全依赖于它的安装介质,比如我是使用 Arch Linux 的系统安装盘去装的 Gentoo。 +这个自由是选择的自由 -emerge 的优点在于提供了 USE 变量,它允许用户自己决定软件的功能支持以确定依赖关系。Arch Linux 可能可以认为是可以定制你的系统,Gentoo Linux 就是可以定制你的软件。 +Gentoo Linux 是少数可以让你选择非 systemd 作为系统 init 系统的 Linux 发行版,但在这个世界,使用非 systemd 作为自己桌面操作系统的 init 系统就像用 linux-libre 作为自己的系统内核一样难绷,不过非 systemd 的 init(如 openrc 还算可用,不过我很怀疑 linux-libre 的使用情况)。 + +我不知道你是否对部分发行版打包的策略有意见,比如某些软件你希望直接上 O3 + lto 编译(虽然这些都是理论上的性能提升,用户难以直接感知到变化),但是为了稳定,少有软件会选择这个编译策略,但是 Gentoo Linux 可以让你的想法成真。 + +或者你不满软件的一些行为,但是你的 patch 一时还难以合并过去,portage 支持编译时应用用户自己的 patch。 + +> Fedora 41 选择了使用 O3 编译 Python,自称有 1.4 倍的性能提升 +> +> https://fedoraproject.org/wiki/Changes/Python_built_with_gcc_O3 + +portage 的优点在于提供了 USE 变量,它允许用户自己决定软件的功能支持以确定依赖关系。Arch Linux 可能可以认为是可以定制你的系统,Gentoo Linux 就是可以定制你的软件。 > USE 是 Gentoo 为用户提供的最具威力的变量之一。很多程序通过它可以选择编译或者不编译某些可选的支持。例如,一些程序可以在编译时加入对 GTK+或是对 Qt 的支持。其它的程序可以在编译时加入或不加入对于 SLL 的支持。有些程序甚至可以在编译时加入对 framebuffer 的支持(svgalib)以取代 X11(X 服务器)。 > @@ -276,15 +289,13 @@ emerge 的优点在于提供了 USE 变量,它允许用户自己决定软件 当然还有很多变量,比如 CFLAGS, L10N, VIDEO_CARDS 这些,可以指定编译选项,本地语言和显卡设备 -Gentoo Linux 的 USE 变量是一把双刃剑,完全靠用户自己。比如我曾经以为我只需要安装一个小软件,结果它的依赖还是它(我没细看)需要编译器的的几个 USE 变量也开启才行,结果我就还得把编译器以及依赖都编译一遍 😇。当然如果你都配置好了,日常使用的体验还是可以的。 - -Gentoo Linux 这种源代码发行的系统,优势在于软件都是自己的机器编译安装,你可以自定义 CFLAGS,从隐私或安全角度来说都还不错,可惜我的机器性能没那么强劲。 +Gentoo Linux 这种源代码发行的系统,优势在于软件都是自己的机器编译安装,从隐私或安全角度来说都还不错,可惜我的机器性能没那么强劲。 -Gentoo Linux 是少数可以让你选择非 systemd 作为系统 init 系统的 Linux 发行版,但在这个世界,使用非 systemd 作为自己桌面操作系统的 init 系统就像用 linux-libre 作为自己的系统内核一样难绷,不过非 systemd 的 init(如 openrc 还算可以使用,不过我很怀疑 linux-libre 的使用情况)。 +Gentoo Linux 的安装并不完全依赖于它的安装介质,比如也可以使用 Arch Linux 的 livecd 去安装。 Gentoo Linux 是滚动更新。 -### Nix 系 +### Nix 相关 Nix 系使用的是 Nix 作为包管理器,这是一个[是一个纯函数式包管理器,旨在使软件包管理可靠且可重现](https://wiki.archlinuxcn.org/wiki/Nix)。特点在于不遵守 FHS 标准,每个软件的每个版本都有一个独特的哈希值标明,并且通过符号链接的方式自由选择某些软件的某个版本作为当前使用版本,所以可以避免所谓依赖地狱这样的问题。Nix 系大抵只有 NixOS 吧,有个和 Nix 包管理器差不多的叫作[GNU Guix](https://en.wikipedia.org/wiki/GNU_Guix),基于这个包管理器也有一个 OS,就是 Guix OS。 @@ -294,13 +305,13 @@ FHS (Filesystem Hierarchy Standard)标准规定了文件系统中每个部分的 其实软件包管理器一定程度上解决了依赖地狱的一些问题,当然有的软件包管理器貌似没有版本的概念,也就没有刚刚我说的这个问题的存在。 -Nix 靠将每个软件包都安装在`/nix/store`文件夹中并附上一个唯一的哈希值作为标记,保证了软件包依赖的独立性,不同软件的相同的依赖会因为这个哈希值而被标识为是对方的依赖,从而解决了依赖地狱的问题。当然,这样的方式也造成了磁盘空间的占用。Nix 存在着大量的软链接,其通过链接的方式做到指定当前环境的每个软件的版本是多少。 +Nix 靠将每个软件包都安装在 `/nix/store` 文件夹中并附上一个唯一的哈希值作为标记,保证了软件包依赖的独立性,不同软件的相同的依赖会因为这个哈希值而被标识为是对方的依赖,从而解决了依赖地狱的问题。当然,这样的方式也造成了磁盘空间的占用。Nix 存在着大量的软链接,其通过链接的方式做到指定当前环境的每个软件的版本是多少。 #### NixOS 官网链接:https://nixos.org/ -NixOS 提供两种安装方式——图形化安装和手动安装。图形化安装就像 Fedora 这样的发行版一样提供一个带 DE 的 LiveCD 环境,不过这种安装受到我国网络环境的限制,不过都有 DE 了,是否在设置里设定一下代理,或者像 clash 这样的代理工具开 tun 模式可以完成下载软件的步骤 🤔。反正我是手动安装的。该系统的特点是大部分的配置可以写在`/etc/nixos/configuration.nix`中,比如对软件,services,用户的管理等等。在安装软件的时候可能涉及到从诸如 GitHub 之类的网站下载补丁或者源码,所以做好网络环境的配置是必要的。 +NixOS 提供两种安装方式——图形化安装和手动安装。图形化安装就像 Fedora 这样的发行版一样提供一个带 DE 的 LiveCD 环境,不过这种安装受到我国网络环境的限制,不过都有 DE 了,是否在设置里设定一下代理,或者像 clash 这样的代理工具开 tun 模式可以完成下载软件的步骤 🤔。反正我是手动安装的。该系统的特点是大部分的配置可以写在 `/etc/nixos/configuration.nix` 中,比如对软件,services,用户的管理等等。在安装软件的时候可能涉及到从诸如 GitHub 之类的网站下载补丁或者源码,所以做好网络环境的配置是必要的。 但是安装软件的是否可能涉及到从 GitHub 之类的网站下载东西,或者如果你使用 NUR 的话(我不清楚 NUR 是否有国内源),NUR 仓库在 GitHub 上,所以你需要配置好网络环境才行。 @@ -320,26 +331,26 @@ NixOS 的 flakes 和 home-manager 结合可以更好的声明你的系统配置 > 桌面环境将各种组件捆绑在一起,以提供常见的图形用户界面元素,如图标、工具栏、壁纸和桌面小部件。此外,大多数桌面环境包括一套集成的应用程序和实用程序。最重要的是,桌面环境提供了他们自己的窗口管理器,然而通常可以用另一个兼容的窗口管理器来代替。 -桌面环境我只浅谈一下 KDE Plasma, GNOME 和 Xfce。我在下面谈到了对 Wayland 的支持问题,如果你是 NVIDIA 独显驱动用户的话,GNOME 是禁用 Wayland 的,KDE plasma 不禁用。 +桌面环境我只浅谈一下 KDE Plasma, GNOME 和 Xfce。~~我在下面谈到了对 Wayland 的支持问题,如果你是 NVIDIA 独显驱动用户的话,GNOME 是禁用 Wayland 的,KDE plasma 不禁用。~~(GDM 会 检查 NVIDIA 是否开启了一些参数以选择是否禁用 Wayland,总体来说是可用的) 如果你要使用 Wayland,输入法框架方面就不能选择 fcitx,只能选择 fcitx5 了。~~ibus 我没用过,不知道怎么样。我一直是 fcitx5 用户(逃)~~ ibus 直接装就是支持 Wayland 的。我引入了输入法框架这个名词,但是没有太多解释,我这里就放一个 [Arch zhWiki 中输入法条目的链接](https://wiki.archlinuxcn.org/wiki/%E8%BE%93%E5%85%A5%E6%B3%95)。 -当然,各家 DE 都是有美化的空间的,具体你可以去搜一搜相关的美化教程,我本人是懒得做这些事情,所以也就没什么好说的了。 +当然,各家 DE 都是有美化的空间的,具体你可以去搜一搜相关的美化教程,我本人是懒得做这些事情,所以也就没什么好说的了。(我认为美化的空间都很有限) -一个桌面环境(DE)一般包括一个窗口管理器(WM)还有一堆相关的软件:文件管理,查看图片视频音频等,设置,文本编辑;还会有一些小组件:poklit 前端组件(我认为这类似 Windows 的那个 UAC,只不过 Windows 弹出那个窗口要求你是否要运行的时候点击即可,这个需要你输入密码),xdg-desktop-portal 组件(这是用来允许应用程序互相通信用的,比如选择文件,屏幕共享之类的),电源管理组件(这个我不知道是不是所有 DE 都会有,反正主流的桌面环境一般都会有),还有一些我一时间也想不起来了。 +一个桌面环境(DE)一般包括一个窗口管理器(WM)还有一堆相关的软件:文件管理,查看图片视频音频等,设置,文本编辑器等 在我看来,KDE Plasma 优秀的地方在于: - 家族有很多软件,并且其中存在很多有用的软件。 - 设置里存在很多可设置选项,可以调控的地方有很多很多很多 - 社区驱动,对很多系统的支持都不错 -- 对 XWayland 的 HIDPI 有一定的支持 +- 对 Wayland 的输入法协议实现的很全面,可以让一些尚没有使用新版 Wayland 输入法协议的应用用上中文输入法 在我看来,GNOME 的优秀的地方在于: - 比 KDE Plasma 更漂亮的外观 -- 对 Wayland 的支持优于 Plasma(不过 Plasma 现在出到 6 了,我还没用过 Plasma6,不知道目前二者差距如何) -- 也许因为貌似大部分代码由商业公司贡献,导致更加激进?RedHat 甚至发起过提案要让 GNOME 只使用 Wayland,RedHat 开发的 Fedora 在 Fedora 42 版本(目前正在开发中)貌似就要这么做了。 +- 也许因为貌似大部分代码由商业公司贡献,导致更加激进? + - RedHat 甚至发起过提案要让 GNOME 只使用 Wayland,RedHat 开发的 Fedora 在 Fedora 42 版本(目前正在开发中)貌似就要这么做了。 - 更新: Fedora 41 默认只提供 GNOME Wayland。 但 GNOME 难绷的地方在于: @@ -354,17 +365,7 @@ NixOS 的 flakes 和 home-manager 结合可以更好的声明你的系统配置 KDE Plasma 是相当受欢迎的 DE 了,而且一定程度上和 Win10 的桌面有些像,所以对于一些人来说可能会比较熟悉。KDE 设置提供了很多选项,可以说 KDE 可以设置的地方很多。KDE 的音频控制组件貌似不是很支持 pipewire,我知道的是 Arch Linux 用户可以安装 pipewire-pulse 兼容层解决这个问题,Gentoo 虽然也有这个,但貌似不是很好使的样子(后来好使了,不清楚我这两回之间有什么操作上的差异)。KDE 自带一些监控硬件参数的状态栏组件还是比较不错的,Xfce 也有类似的,GNOME 就没有这东西了(GNOME 也有 SystemMonitor 提供这个功能,但无法在状态栏上显示)。甚至 GNOME 默认是没有系统托盘的,这个还需要安装相应的插件来实现。 -KDE Plasma 目前貌似还存在一个问题—— Wayland 下的部分应用无法正确显示图标,而是显示一个 Wayland 默认图标。这个问题不清楚在 Plasma 6 中是否还存在。 - -KDE Plasma 支持 Wayland 输入法协议第一版,这使得用户基本不会在 Wayland 会话中遇到中文输入法不好使的情况。这里我说的是 Electorn 的应用,Chromium 可以通过 `--gtk-version=4` 开启对 Wayland 输入法协议第三版的支持(这是我的理解)可以在 GNOME 下使用中文输入法(GNOME 只支持第三版的协议),但 Electorn 仍不支持 gtk4,导致在 GNOME 下无法切换到中文输入法。 - ---- - -2024年4月更新: - -我安装了 KDE Plasma6,对 Wayland 的支持要优于 Plasma5,并且不显示应用图标而显示 Waylnad 默认图标的问题也不会出现了 - ---- +~~KDE Plasma 目前貌似还存在一个问题 —— Wayland 下的部分应用无法正确显示图标,而是显示一个 Wayland 默认图标。这个问题不清楚在 Plasma 6 中是否还存在。~~(24 年 11 月更新:印象中不存在了) 我认为 KDE Plasma 什么都不错,就是颜值差了些。 @@ -374,29 +375,37 @@ GNOME 默认使用 Wayland,~~当然如果检测到机器使用 NVIDIA 独显 Electron 和 Chromium 不同的是,你未必能够解决无法输入中文这个问题(在 Wayland 中),你可以通过传递 flag 的方式用以 Wayland 启动软件,但由于 Electron 目前还不支持 gtk4 导致无法在 GNOME 桌面环境中输入中文(如果用 Wayland 的话)。 -有的发行版的 GDM 是不可以和 NVIDIA 闭源驱动搭配正常工作的。我说的就是 NixOS 的 gdm,我在使用 GNOME 的时候使用的 lightdm 起的 gnome,但 gdm 和 gnome 是一套的,所以我猜测 GNOME 下 `Win + L` 不可以锁屏是因为 dm 不是 gdm 的原因?dm 是用来从 tty shell 上启动到桌面环境的图形化界面。目前我认为可能是因为 gdm 存在一个 rules,会检测 NVIDIA 的是否符合一些要求,我不好说是否是这个原因,我当时并没有太纠结于这个问题,这是我现在的猜测,但我懒得去查证了。 - -~~GDM 貌似就是检测到是 NVIDIA 驱动就不启动 Wayland 会话,但应该是你给 NVIDIA 驱动用什么“DRM 内核级显示模式”启动的话就可以上 Wayland 了。(不好评价真假,因为我忘了)~~(是真的,不过还需要 enable 一些 service) - -有一点我认为比较难绷的是,GNOME 的设置里没有分数缩放这个功能,屏幕的缩放只能是整数的,只能在*优化*这个软件(软件包名应该叫 gnome-tweaks,有的发行版可能有个 gnome3-前缀)。我不好评价 gnome-tweaks 那里的那个选项该不该认为是分数缩放,但反正,差不多吧。(可以使用 gsettings 开启实验性的分数缩放支持,该分数缩放会让 XWayland 的缩放变的模糊)。实际上也可以使用 gsettings 开启分数缩放的支持,具体可以参考 [Arch Wiki](https://wiki.archlinux.org/title/HiDPI#Wayland)。 +GNOME 的分数缩放仍然是实验性功能,Fedora 41 默认启用,其他的发行版可以自行使用 `gsettings` 或者 [dconf 编辑器](https://apps.gnome.org/DconfEditor/)设置 GNOME 的 night-light 只有根据地区设置和手动修改,没有一直开启(可能除了那俩选项还有别的,但反正没有一直开启),我只能手动修改,时间设置为 0:00 ~ 23:59 这个时间段。GNOME 46 就可以通过都设置同一个时间段达到全局开启的效果了好像?我这句话的意思不是说 GNOME 46 开始可以了,是我恰好用了这个版本,发现这个版本可以。 -这句话写于 23年10月18日:Redhat 试图让 GNOEME 之后只支持 Wayland,不知道什么时候能实现,当然 Wayland 被认为是下一代的桌面协议,应该是得替换掉 Xorg 的,性能上不清楚,安全性上好像是会好一些,而且 Wayland 好像原生支持分数缩放,Xorg 还不支持这个,桌面环境的分数缩放都是自己的功能? - -这句话写于 24 年 9 月 11 日:貌似 Fedora 41 默认就要移除 Xorg 的支持了,不过用户可以选择安装后下回来?GNOME 47 貌似也修复了 XWayland 分数缩放的问题。 +GNOME 47 支持了可选的 Xorg 支持,Fedora 41 也是默认提供的 GNOME Wayland。 ### Xfce -Xfce 这个 DE 有点就是简洁消耗小。Xfce 家族的软件都不是那么花哨,其大小也还不错,所以一些 WM 用户可能会选择安装 Xfce 家族的部分软件。你尝试装的时候就会发现 Xfce 需要装的软件真的少,所以功能也不是很多,当然核心的那些都有,没有什么问题。KDE Plasma 和 GNOME 都默认 Waylnd 了,Xfce 还是在下个版本才默认 Wayland 还是对 Wayland 有良好的支持来着? +Xfce 这个 DE 有点就是简洁消耗小。Xfce 家族的软件都不是那么花哨,其大小也还不错,所以一些 WM 用户可能会选择安装 Xfce 家族的部分软件。你尝试装的时候就会发现 Xfce 需要装的软件真的少,所以功能也不是很多,当然核心的那些都有,没有什么问题。 + +KDE Plasma 和 GNOME 都默认 Waylnd 了,Xfce 还是在下个版本才默认 Wayland 还是对 Wayland 有良好的支持来着? ## WM -WM(WIndow Manager,窗口管理器)是比 DE 更低级的东西,一般可以带来更低的消耗,尤其是平铺式的 WM 可以带来更好的视觉体验。由于 WM 大多数时候都是需要键盘就行,我还听到一个言论就是使用 WM 更不容易得鼠标手()。 +WM(WIndow Manager,窗口管理器)是比 DE 更低级的东西,一般可以带来更低的消耗,尤其是平铺式的 WM 可以带来更好的视觉体验。由于 WM 大多数时候都是需要键盘就行,我还听到一个言论就是使用 WM 更不容易得鼠标手。 WM 不会自带很多东西,比如应用程度启动器,壁纸,窗口渲染,声音和亮度调节,polkit 前端组件等等,这些都需要你去自己装上,当然有的 WM 可能会自带窗口渲染或是其他什么的。那些 DE 也都有自家的 Terminal,虽然 WM 也可能自家有 Terminal(比如开发 dwm 的组织也开发了 st Terminal)不过不会自动安装,这个也需要自己装上。 -WM 我只浅谈一下 i3wm, dwm 和 Hyprland。 +窗口管理器会少一些小组件: + +- poklit 前端组件 + - 类似 Windows 的 UAC,只不过 Windows 弹出那个窗口要求你是否要运行的时候点击即可,这个需要你输入密码 +- xdg-desktop-portal 组件 + - 用来允许应用程序互相通信用,比如选择文件,屏幕共享之类 +- 电源管理 && 空闲管理 + - 空闲管理指的是用于控制过一段时间锁屏休眠的东西 +- 音量 & 亮度控制等 +- 状态栏 + + +WM 我只浅谈一下 i3wm, dwm,sway 和 Hyprland。 ### i3wm @@ -406,11 +415,21 @@ WM 我只浅谈一下 i3wm, dwm 和 Hyprland。 ### dwm -这是比 i3wm 消耗更低的 wm,也是我比较推荐的 wm 了,缺点就是配置文件也是需要参与到编译环节的,每次更改配置文件都得重新编译 dwm。dwm 比 i3wm 还要简洁,所以你需要补丁才行。dwm 也是基于 X11 的。这里就要所说 Gentoo Linux 了,Gentoo 的 dwm 提供了一个 USE 变量 savedconfig,这会让 Gentoo 把默认的配置文件放到一个目录中,每次你更改这个文件再 `emerge dwm` 就行,它会读取那个目录的文件参与编译。 +这是比 i3wm 消耗更低的 wm,也是我比较推荐的 wm 了,缺点就是配置文件也是需要参与到编译环节的,每次更改配置文件都得重新编译 dwm。dwm 比 i3wm 还要简洁,所以你需要补丁才行。dwm 也是基于 X11 的。这里就要所说 Gentoo Linux 了,Gentoo 的 dwm 提供了一个 USE 变量 savedconfig,这会让 Gentoo 把默认的配置文件放到一个目录中,每次你更改这个文件再 `emerge dwm` 就行,它会读取那个目录的文件参与编译。 + +### sway + +sway 是 Wayland 版本的 i3,i3 的配置文件可以直接拿来用。 + +开发更加保守,NVIDIA 需要附加 `--unsupported-gpu` 选项才能使用。 + +sway 依赖于 wlroots 这个 compositor,很多 Wayland 的窗口管理器都使用的这位。Hyprland 0.42 之前也是使用的它,后来自己写了一个。 + +sway 没有 XWayland 分数缩放的支持,sway 和 Hyprland 貌似都倾向于让 XWayland 自己实现这个功能,但是 Hyprland 提供了一个将 XWayland 的缩放设为 0,不跟配置的缩放走的选项,这样用户可以自己显示地通过设置或者命令行参数的方式单独 XWayland 的应用的缩放,sway 并没有提供这个方式。 ### Hyparland -Hyprland 是基于 Wayland 做的 WM,官网对 NVIDIA 独显驱动用户的使用列了一个非官方的解决方案。不过我选择使用 Intel 核显体验一手,当时 Hyprland 戳我的点就是官网主页列的截图。 +Hyprland 是基于 Wayland 做的 WM,Hyprland 戳我的点就是官网主页列的截图。 ![Hyprland](/img/introdistro/hyprland.png) @@ -422,15 +441,4 @@ Hyprland 可以很好的设置环境变量,并且自带对窗口的美化。 Hyprland 比 sway 好的地方则是实现了 text-input-v1。并且支持将 XWayland 的缩放设置为 0,而不是直接按照全局的缩放比例走(我本身只有一个 electron 的应用只能跑在 XWayland 下,所以我用 flatpak 安装了它,并用 electron 命令行的方式缩放,这样还是可用的,所以 XWayland 设置为 0 缩放,我自己手动给应用缩放这个办法我还算接受) -Hyprland 官方可能是用 Arch Linux 和 NixOS 的多?文档中的部分解决方案基本都是针对这两个发行版的。 - -### sway - -sway 基本上就是 Wayland 版本的 i3,配置文件和 i3 兼容,基本就是复制过来就能用。 - -目前 sway 的使用存在两个可能影响到你的问题 - -- 最新版(sway 1.9)下的 fcitx5 无法正常显示候选框,可以选择直接下载 https://github.com/swaywm/sway 源码自己编译,因为相关补丁已经合并到 master 上了。Gentoo Linux 的话只需要安装 sway-9999 即可。如果是 Arch Linux,我记得 AUR 应该有个 sway-im 的包可以用? -- 对 XWayland 也走默认设置里的缩放,无法直接设置为 0。 - -sway 好的地方是周边软件还算齐全:swaybg,swaylock,swayidle 等。 +Hyprland 官方可能是用 Arch Linux 和 NixOS 的多?文档中的部分解决方案基本都是针对这两个发行版的。 \ No newline at end of file diff --git a/content/posts/whywinorlinux.md b/content/posts/whywinorlinux.md index 60128b7..3f560cb 100644 --- a/content/posts/whywinorlinux.md +++ b/content/posts/whywinorlinux.md @@ -2,7 +2,7 @@ title: 为什么你应该(不)使用 GNU/Linux 作为日用操作系统 author: suo yuan date: 2024-04-13T11:58:25 -lastmod: 2024-11-20T08:31:25Z +lastmod: 2024-11-22T13:35:11Z draft: false categories: - Linux_杂谈 @@ -32,13 +32,13 @@ description: "一个简单的评价文章,关于是否应该选择使用 GNU/L 网易云音乐已经不再分发官方的 Linux 版本的软件包了,如果需要使用可以选择安装其他的第三方网易云音乐客户端。 -Microsoft office 365 没有 Linux 的版本,目前要么用 WPS。要么用 onlyoffice。虽然很多 Linux 用户貌似会用 libreoffice? +Microsoft office 365 没有 Linux 的版本,目前要么用 WPS。要么用 onlyoffice。很多 Linux 用户貌似会用 libreoffice? 我倾向于使用 Wayland 而不是 Xorg。Wayland 和 Xorg 是两套显示服务协议,虽然部分用户认为 Wayland 并不是用于取代 Xorg 的,但是我认为 Wayland 应该全面取代 Xorg,因为 Wayland 相比于 Xorg 无论是性能还是安全性都要优于 Xorg。 但是 Chromium 对 Wayland 的支持还没有那么完美,这导致了 Electorn 的程序大概率也不会对 Wayland 支持那么完美(缩放存在问题)。并且 Chromium 不支持 text-input-v3(Wayland 输入法协议第 3 版,目前有了一些支持)导致在 GNOME 下需要为其附加环境变量 `GTK_IM_MODULE` 才能正常使用(印象中还需要附加 `--gtk-version=4`)。但是 `--gtk-version=4` 并没有被 Electorn 所支持(目前是 2024 年 4 月,它并没有支持),所以 ibus 或者 fcitx5 是无法切换到中文输入的。 -Plasma 5.27+支持 text-input-v1,text-input-v2 和 text-input-v3。所以只需要附加`--enable-wayland-ime`(这是因为 text-input-v1)即可使用。GNOME 仍不支持 text-input-v1,根据 [Mutter 的一个 pr](https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3751) 上的讨论来看,他们貌似更倾向于让 Chromium 实现 text-input-v3,但自家的 mutter 不会合并其他协议实现的补丁。(mutter 是 GNOME 的窗口管理器) +Plasma 5.27+ 支持 text-input-v1,text-input-v2 和 text-input-v3。所以只需要附加`--enable-wayland-ime`(这是因为 text-input-v1)即可使用。GNOME 仍不支持 text-input-v1,根据 [Mutter 的一个 pr](https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3751) 上的讨论来看,他们貌似更倾向于让 Chromium 实现 text-input-v3,但自家的 mutter 不会合并其他协议实现的补丁。(mutter 是 GNOME 的窗口管理器) 我这里说的 GNOME 和 Plasma 都是一种桌面环境,具体可以参考我在另一篇文章:[面向 beginner: GNU/Linux 发行版浅评与介绍](../distrointro/)中的图片,我在那篇文章的最后还介绍了一下桌面环境。 @@ -48,11 +48,7 @@ Plasma 5.27+支持 text-input-v1,text-input-v2 和 text-input-v3。所以只 ### 从硬件的层面来看 -对于 NVIDIA 不算老的卡,基本上都需要安装 NVIDIA 闭源的显卡驱动才能使其正常工作。目前来说,该驱动可以较为正常的工作。~~但是我在使用 GNOME Wayland 的时候,安装 NVIDIA 闭源的显卡驱动的情况下运行 XWayland 无法正常的工作。不过我需要 XWayland 运行的情况基本都是 Electorn 的软件。~~ - -~~等到 NVIDIA 闭源驱动更新到 555 版本的时候应该是会解决无法正常运行 XWaylnad 的程序的问题。具体可以参考[我的随笔](../notes#nvidia-即将支持-xwaylnad-显示同步)中记载的。~~ - -我尝试使用 KDE Plasma 6.1 + nvidia-driver 555.58.02,这个问题基本解决了。 +芯片厂商对于 Linux 的支持总是落后于 Windows 的。 对于硬件视频加速来说,Firefox 的支持还可以,Chromium 只是实验性支持(不过貌似也可以用)。这里 Intel 和 AMD 都会使用 VAAPI,NVIDIA 开发了一套 VDPAU 和 NVDEC。不过貌似 VDPAU 那个 driver 好久不开发了,NVIDIA 可以安装 nvidia-vaapi-driver,这样可以将 NVDEC 转成 VAAPI 供 Firefox 使用。视频播放器,录屏软件都支持 NVIDIA 原有的编解码格式。nvidia-vaapi-driver 只支持解码,不支持编码。 @@ -78,15 +74,15 @@ Plasma 5.27+支持 text-input-v1,text-input-v2 和 text-input-v3。所以只 从安全角度来讲, -- 你不应该使用 linux-kernel,而是 [linux-hardened](https://github.com/anthraxx/linux-hardened) +- 你不应该使用原版的 linux-kernel,而是 [linux-hardened](https://github.com/anthraxx/linux-hardened) - 这样的 kernel 使用了基本内核加固补丁集和更多安全相关的编译时配置选项。 + - 还应该使用 sysctl 更加细粒度的调整一些安全相关的参数。 - 不应该使用 pulseaudio 这个音频服务,而是使用 pipewire - 这一点还好,现在应该都在使用 pipewire。 -- 应该使用 SELinux 或者 AppArmor 这样的软件更细致的管控权限。 -- flatpak 安装的软件,应该使用 flatseal 管理软件的权限。 -- 使用 sudo 这样的软件应该只允许用户执行部分软件而不是直接允许执行全部软件。 -- 应该尽可能不要用 Xorg。 -- 磁盘应该加密。 +- 应该使用 SELinux 或者 AppArmor 这样的软件更细致的管控文件权限。 +- flatpak 安装的软件,应该使用 flatseal 用于管理软件的权限。 +- 使用 sudo 应该只允许用户执行部分软件而不是直接允许执行全部软件。 +- 硬盘/文件系统应该加密。 - grub 这个 bootloader 也应该加密。 - 一些文件目录挂载的时候可以禁用读写权限或者执行权限之类的。 - 应该尝试使用 firejail 或者 bwrap 这样的沙盒程序。