Blog/content/learn-linux-for-PC-3.md
2025-01-21 19:11:02 +08:00

176 lines
16 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

+++
title = "Linux-For-PC(三):内核/shell/包管理/文件系统/桌面环境"
date = 2023-07-22
[taxonomies]
tags = ["Linux"]
+++
前言 在Linux世界中内核/shell/包管理/文件系统构成了Linux系统的核心它们相互配合共同构建了一个强大而稳定的操作环境。本文将深入探讨这些关键组成部分解释它们的作用和原理帮助读者更好地理解Linux系统的运作机制。
<!-- more -->
## **一.Linux内核**
有许多不同的版本每个版本都包含了一系列的功能改进、bug修复和性能优化。在Linux发行版中通常会使用某个特定版本的Linux内核或者在需要时进行升级。以下是一些常见的Linux内核及其主要特点
**Zen内核**
- Zen内核是Linux内核的一个变体旨在提供更好的性能和响应性。它通常包含了一些特定的调度程序和调优参数以提高系统的负载均衡和响应速度。Zen内核也可能包含一些来自其他内核变体的功能和补丁以进一步优化性能。
**LTS内核**
- LTSLong-Term Support内核是一种长期支持的内核版本它会获得更长时间的更新和维护。LTS内核通常会选择一些相对稳定和经过充分测试的功能并对其进行长期支持以确保系统的稳定性和安全性。
**Real-Time内核**
- Real-Time内核是一种专门针对实时应用场景进行优化的内核变体。它通常包含了一些实时调度算法和机制以确保系统能够及时响应各种事件并满足实时性要求。Real-Time内核适用于一些对实时性要求较高的应用如工业控制、机器人控制等领域。
**Hardened内核**
- Hardened内核是一种针对安全性进行优化的内核变体。它通常包含了一些安全增强功能和补丁以提高系统的安全性和抵御攻击的能力。Hardened内核适用于一些对安全性要求较高的应用如服务器、云计算等场景。
**XanMod内核**
- XanMod内核是一个基于Linux内核的自定义内核旨在提供更好的响应性和性能。它包含了一些针对桌面和工作站系统优化的功能和补丁如MuQSS调度器、BFQ I/O调度器等以提高系统的响应速度和性能稳定性。XanMod内核还支持一些实时性应用如音视频处理等适用于对系统响应速度要求较高的用户。
**CachyOS内核**
- CachyOS内核是一个专门针对缓存优化的Linux内核变体。它包含了一些针对缓存系统优化的功能和调整以提高系统的缓存性能和数据访问速度。CachyOS内核通常适用于需要高性能缓存的应用场景如数据库服务器、Web服务器等。
这些内核变体针对不同的需求和使用场景进行了优化可以根据具体的应用需求来选择合适的内核版本。例如如果您需要更好的性能和响应性可以选择Zen内核如果您需要长期支持和稳定性可以选择LTS内核如果您需要实时性能可以选择Real-Time内核如果您需要更高的安全性可以选择Hardened内核。
## **二.Linux Shell**
在Linux系统中有许多不同的Shell命令行解释器每种Shell都有自己的特点和用途。以下是一些常见的Linux Shell及其主要特点
**BashBourne Again Shell**
- Bash是Linux系统中最常用的Shell之一也是默认的命令行解释器。它是Bourne Shell的增强版提供了丰富的功能和扩展性包括命令历史、命令补全、作业控制等。Bash具有良好的兼容性和易用性适用于日常的系统管理和脚本编程。
**ZshZ Shell**
- Zsh是一种功能强大的Shell提供了丰富的功能和扩展性如更强大的命令补全、自动纠正拼写错误、主题和插件系统等。Zsh具有良好的可定制性和用户体验适用于高级用户和程序员。
**FishFriendly Interactive Shell**
- Fish是一种用户友好的交互式Shell提供了直观的命令提示和自动补全功能以及丰富的语法高亮和命令提示信息。Fish具有良好的用户体验和易用性适用于初学者和普通用户。
**DashDebian Almquist Shell**
- Dash是一种轻量级的Shell专门设计用于系统启动过程和脚本执行。Dash具有较高的执行速度和较低的内存占用适用于系统启动脚本和简单的脚本编程。
Bash是最常用的Shell之一具有良好的兼容性和功能性Zsh提供了更多的高级特性和定制选项适用于高级用户和程序员Fish具有友好的交互式体验和直观的用户界面适用于初学者和普通用户Dash则是一个轻量级的Shell专门用于系统启动过程和简单的脚本编程。用户可以根据自己的需求和偏好选择合适的Shell。
## **三.Linux包管理器**
在Linux系统中有几种常见的包管理器它们各自管理着不同的发行版具有不同的特点和用途。以下是一些常见的Linux包管理器及其主要特点
**APTAdvanced Package Tool**
- APT是Debian系如Debian、Ubuntu中最常用的包管理器之一。它使用基于命令行的工具`apt-get``apt-cache`等来安装、升级和删除软件包。APT还支持依赖关系的自动解决使得软件包的安装和管理变得更加方便。
**YUMYellowdog Updater, Modified**
- YUM是Red Hat系如CentOS、Fedora中常用的包管理器之一。它使用基于命令行的工具`yum`来管理软件包。YUM具有良好的依赖关系解决能力和事务处理功能使得系统升级和软件包管理变得更加简单和可靠。
**DNFDandified YUM**
- DNF是YUM的下一代版本逐渐取代了YUM在Fedora和RHEL系列中的地位。DNF具有更快的包查询和事务处理能力以及更友好的用户界面。它是未来主流的包管理器之一。
**PacmanPackage Manager**
- Pacman是Arch Linux中常用的包管理器也被一些其他发行版如Manjaro采用。Pacman使用简洁的命令`pacman -S`安装软件包、`pacman -Syu`更新系统等来管理软件包。Pacman具有简单、直观的界面和快速的操作速度适用于对系统有一定了解的用户。
**zypper**
- zypper是openSUSE中常用的包管理器它使用基于命令行的工具`zypper install``zypper update`等来管理软件包。zypper具有良好的依赖关系解决能力和事务处理功能使得系统升级和软件包管理变得更加简单和可靠。
**dpkg**
- dpkg是Debian系如Debian、Ubuntu中的低级别软件包管理工具用于直接管理软件包的安装、升级和删除。它提供了一系列的命令`dpkg -i`安装软件包、`dpkg -r`删除软件包等。
**RPMRPM Package Manager**
- RPM是Red Hat系如CentOS、Fedora中的低级别软件包管理工具用于直接管理软件包的安装、升级和删除。它提供了一系列的命令`rpm -i`安装软件包、`rpm -e`删除软件包等。
**Portage**
- Portage是Gentoo Linux中的包管理器它使用源代码进行软件包的安装和管理。Portage具有高度定制化和灵活性允许用户根据需要自定义软件包的编译参数和依赖关系。
**Snap**
- Snap是一种跨发行版的软件包格式和包管理器允许用户在不同的Linux发行版上安装和管理软件包。Snap具有自包含性和隔离性使得软件包的安装和升级变得更加简单和安全。
**Flatpak**
- Flatpak是另一种跨发行版的软件包格式和包管理器类似于Snap允许用户在不同的Linux发行版上安装和管理软件包。Flatpak提供了一种统一的应用分发和运行环境使得软件包的安装和升级更加简单和可靠。
## **四.Linux文件系统**
Linux系统支持多种文件系统每种文件系统都有自己的特点和优势适用于不同的应用场景和需求。以下是一些常见的Linux文件系统及其主要特点
**ext4**
- ext4是Linux系统中最常用的文件系统之一它是ext文件系统的后续版本提供了更好的性能和扩展性。ext4支持更大的文件和分区大小更快的文件系统检查和恢复速度以及更高的性能和稳定性。
**Btrfs**
- Btrfs是一种先进的文件系统具有许多先进的功能和特性如快照、数据校验、数据压缩等。Btrfs支持在线扩展和收缩分区大小以及动态添加和删除磁盘适用于需要高级特性和灵活性的应用场景。此外Btrfs对快照功能支持较好。
> 快照功能是一种文件系统的特性,它允许用户在特定时间点对文件系统的状态进行快照或备份,并且可以在需要时一键恢复到该时间点的状态。
快照允许用户轻松地创建文件系统的历史版本,并在需要时回滚到特定的版本;快照允许用户在文件系统中进行实验和测试,并在测试失败或不需要时轻松地回滚到初始状态,以避免对系统造成影响。在升级或安装过程中出现问题时快速恢复到原始状态
**XFS**
- XFS是一种高性能的日志文件系统适用于大型文件和高吞吐量的应用场景。XFS支持大容量的文件和分区具有较低的碎片化和较高的并发性能适用于大规模存储和数据分析等应用。
**ZFS**
- ZFS是一种先进的文件系统具有强大的数据管理和保护功能如快照、数据校验、数据压缩等。ZFS支持软件RAID和存储池pool以及动态添加和删除磁盘适用于数据中心和大规模存储等应用场景。
**F2FS**
- F2FS是一种针对闪存存储设备进行优化的文件系统具有高性能和高可靠性。F2FS支持闪存特性如块擦除计数block erase count和块生命周期管理block lifetime management适用于固态硬盘SSD和闪存卡等闪存设备。
## **五.Linux桌面环境**
Linux系统有多种不同的桌面环境每种环境都有其独特的特点、风格和用户体验。以下是一些常见的Linux桌面环境及其主要特点
**GNOME**
- GNOME是一个功能强大、现代化的桌面环境具有直观的用户界面和丰富的功能。它采用了扁平化的设计风格和简洁的用户界面提供了丰富的应用程序和插件适用于普通用户和开发人员。
**KDE Plasma**
- KDE Plasma是一个灵活、可定制的桌面环境提供了丰富的特性和选项如桌面特效、窗口管理器、小部件等。它采用了现代化的设计风格和强大的桌面管理功能适用于高级用户和技术爱好者。
**XFCE**
- XFCE是一个轻量级、快速的桌面环境具有简洁的用户界面和低资源消耗。它采用了传统的桌面布局和简约的设计风格提供了基本的桌面管理功能和应用程序适用于老旧计算机和资源有限的环境。
**LXQt**
- LXQt是一个轻量级、快速的桌面环境是LXDE和Razor-qt的合并项目。它采用了现代化的设计风格和简洁的用户界面提供了丰富的特性和可定制选项适用于资源有限的环境和嵌入式系统。
**Cinnamon**
- Cinnamon是一个基于GNOME的桌面环境具有类似于传统Windows桌面的用户界面和功能。它采用了传统的桌面布局和直观的用户体验提供了丰富的特性和可定制选项适用于对传统桌面风格有需求的用户。
GNOME和KDE Plasma提供了丰富的特性和高度定制化选项适用于高级用户和开发人员XFCE和LXQt则提供了轻量级和快速的用户体验适用于资源有限的环境Cinnamon则提供了类似于传统Windows桌面的用户界面和功能适用于对传统桌面风格有需求的用户。可以根据自己的需求和偏好选择合适的桌面环境。
> 当然,也可以使用轻量级的窗口管理器。
窗口管理器是Linux系统中控制窗口布局、管理窗口行为的关键组件。它们决定了窗口的外观和行为方式以及如何管理和排列窗口。以下是一些常见的窗口管理器及其主要特点
**X Window Manager (XWM)**
- X Window Manager是最基本的窗口管理器用于管理X Window系统中的窗口。它提供了最基本的窗口布局和管理功能如窗口移动、调整大小、最小化等。XWM本身并不提供任何外观效果但可以与其他工具配合使用来实现更丰富的窗口管理和外观特性。
**Openbox**
- Openbox是一个轻量级的窗口管理器具有简洁的用户界面和低资源消耗。它提供了丰富的自定义选项和扩展功能如虚拟桌面、窗口装饰、键盘快捷键等。Openbox适用于资源有限的环境和对简洁风格有需求的用户。
**i3**
- i3是一个动态平铺窗口管理器采用了平铺式布局将窗口按照一定规则自动排列在屏幕上。它提供了快速的窗口切换和管理功能支持键盘操作和自动布局调整适用于需要高效多任务处理的用户。
**Awesome**
- Awesome是一个高度可定制的动态平铺窗口管理器具有丰富的特性和扩展功能。它采用Lua脚本语言进行配置和定制支持强大的自定义选项和扩展功能适用于高级用户和技术爱好者。
**KWin**
- KWin是KDE桌面环境中的默认窗口管理器具有丰富的特性和功能。它提供了多种窗口布局和管理选项支持虚拟桌面、窗口效果、窗口组织等功能适用于需要丰富特性和高度定制化的用户。
这些窗口管理器之间的主要异同在于窗口布局、外观效果、自定义选项和功能特性等方面。Openbox和i3提供了简洁的用户界面和低资源消耗适用于资源有限的环境Awesome和KWin则提供了丰富的特性和扩展功能适用于高级用户和技术爱好者。用户可以根据自己的需求和偏好选择合适的窗口管理器。
> Wayland和X11
Wayland和X11都是用于Linux系统的图形显示协议它们负责管理图形用户界面GUI的显示和交互。下面是它们的简要介绍以及异同点
- **X11X Window System**
X11是一个由MIT开发的图形显示协议长期以来一直是Linux系统中最常用的图形显示系统。它采用客户端-服务器模型图形应用程序客户端通过X服务器与显示设备服务器进行通信。X11提供了丰富的图形特性和功能如窗口管理、窗口装饰、多任务处理等。
- **Wayland**
Wayland是一个由Red Hat主导开发的新一代图形显示协议旨在取代X11成为Linux系统的标准图形显示系统。Wayland采用了现代化的设计理念和架构取消了X11中复杂的客户端-服务器模型将图形显示功能直接集成到操作系统中。Wayland具有更低的延迟和更高的性能支持更好的硬件加速和多触摸设备以及更简洁的代码结构。
**异同点**
- **架构差异**X11采用了客户端-服务器模型图形应用程序通过X服务器与显示设备进行通信而Wayland取消了这种模型将图形显示功能直接集成到操作系统中减少了中间层的复杂性。
- **性能差异**Wayland具有更低的延迟和更高的性能支持更好的硬件加速和多触摸设备使得图形显示更加流畅和响应。
- **功能差异**X11提供了丰富的图形特性和功能如窗口管理、窗口装饰、多任务处理等Wayland在功能上相对较少但提供了更简洁的代码结构和更好的性能。
- **兼容性差异**X11在Linux系统中被广泛使用拥有大量的应用程序和工具的支持而Wayland在兼容性方面仍在发展中尚未完全取代X11成为Linux系统的标准图形显示系统。
总的来说Wayland是未来Linux系统中的趋势具有更好的性能和更简洁的架构但在兼容性和功能丰富度上仍有待改进。X11则是当前仍然广泛使用的图形显示系统拥有丰富的生态和大量的应用程序支持。
## **六.后记**
个人使用推荐Zen+Zsh+Pacman+Btrfs+Hyprland,并使用 paru xxx 来搜索软件包使用paru -S xxx 安装软件。