Blog/content/linux-for-PC-3.md
2024-04-22 14:08:39 +08:00

10 KiB
Raw Blame History

+++ title = "Linux-For-PC(二):内核/shell/包管理/文件系统" date = 2023-07-22

[taxonomies] tags = ["Tech","Linux"] +++

前言 在Linux世界中内核/shell/包管理/文件系统构成了Linux系统的核心它们相互配合共同构建了一个强大而稳定的操作环境。本文将深入探讨这些关键组成部分解释它们的作用和原理帮助读者更好地理解Linux系统的运作机制。

一.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-getapt-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 installzypper 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和闪存卡等闪存设备。

五.后记

个人使用推荐Zen+Zsh+Pacman+Btrfs。