Unix Basic
导言
一些linux相关的知识和概念:
- Unix Linux Debian Centos Ubuntu
Unix\Linux¶
Unix、Linux、Debian、CentOS 和 Ubuntu 这些名词和系统之间的关系可以通过一个层次结构来理解:
Unix 是一个操作系统家族
- 最早由 AT&T 贝尔实验室在 1970 年代开发。
- Unix 是现代操作系统的奠基石,许多操作系统的设计思想和概念(如多用户、多任务、文件系统层次结构等)都源自 Unix。
- Unix 自身有多个商业化版本,如 AIX、HP-UX、Solaris 等。
Linux 是一个 Unix 类操作系统的内核(kernel)
- 由林纳斯·托瓦兹(Linus Torvalds)于 1991 年首次发布。
- Linux 并不是一个完整的操作系统,而只是内核。为了使用 Linux 内核,开发者们创建了包括应用程序、系统工具和用户界面在内的完整系统,这些系统被称为 Linux 发行版。
Linux 发行版"¶
- Linux 发行版 是基于 Linux 内核的完整操作系统,每个发行版通常包括了内核、系统工具、应用程序包管理器和用户界面。
- 常见的 Linux 发行版有:
- Debian:一个以稳定性和自由软件为核心的社区驱动的发行版。Debian 是许多其他发行版(如 Ubuntu)的基础。
- Red Hat Enterprise Linux (RHEL):一个由红帽公司开发和维护的商业发行版,以企业级应用为目标。
- Fedora:由红帽公司赞助的社区发行版,RHEL 的上游源头,主要用于测试和开发。
- Arch Linux:一个以简洁和灵活为特点的发行版,适合高级用户。
- Gentoo:一个源代码编译的发行版,用户可以自行优化和定制。
Debian 家族¶
- Debian 作为基础,衍生出了许多其他发行版:
- Ubuntu:最流行的 Debian 衍生发行版之一,由 Canonical 公司维护,目标是提供易用的桌面和服务器系统。
- Linux Mint:基于 Ubuntu 的用户友好发行版,侧重于提供更符合传统用户习惯的桌面体验。
- Raspberry Pi OS(原 Raspbian):基于 Debian 的发行版,专门为 Raspberry Pi 硬件设计。
Red Hat 家族¶
- Red Hat 及其衍生发行版包括:
- CentOS:一个基于 RHEL 源代码的社区支持发行版,曾被广泛用于服务器环境。CentOS Stream 是其更新的版本,它是 RHEL 的开发版。
- Fedora:RHEL 的上游发行版,是一个社区驱动的发行版,用于测试新技术。
- OpenEuler: EulerOS 华为开发的版本,对华为的硬件有特殊优化。
macOS¶
- macOS: 基于 UNIX 的内核,称为 XNU(X is Not Unix),它结合了 Mach 微内核和部分 BSD 组件。macOS 属于 UNIX 系统,并且通过了 UNIX 认证。
- macOS: macOS 原生不带包管理器,但可以通过 Homebrew、MacPorts 等第三方工具来管理软件包。
关系概述¶
- Unix 是现代操作系统的起源。
- Linux 是基于 Unix 设计思想的开源内核。
- Debian 和 Red Hat 是两个不同的 Linux 发行版家族,各自衍生出多个著名的发行版,如 Ubuntu 和 CentOS。
这些系统之间的关系可以看作是从 Unix 的起源发展到 Linux,再到 Linux 发行版的一个演变过程。
apt
、yum
和dnf
¶
apt
、yum
和dnf
是Linux系统中常用的包管理工具,它们用于安装、更新、配置、卸载和管理软件包。尽管它们的基本功能相似,但它们在不同的Linux发行版中使用,并且有一些关键的区别:
- apt (Advanced Package Tool)
- 发行版兼容性:主要用于基于Debian的系统,如Ubuntu、Debian等。
- 软件包格式:使用
.deb
格式的软件包。 - 特点:
apt
支持自动处理依赖关系,可以从多个源(repositories)安装软件包。 -
命令:使用
apt-get
、apt-cache
和apt-config
等命令行工具。 -
yum (Yellowdog Updater Modified)
- 发行版兼容性:最初是为Red Hat Linux设计的,现在主要用于基于Red Hat的系统,如CentOS、Fedora、RHEL(Red Hat Enterprise Linux)等。
- 软件包格式:使用
.rpm
格式的软件包。 - 特点:
yum
同样支持自动处理依赖关系,它使用元数据来管理软件包,可以进行快速的依赖分析和安装。 -
命令:主要通过
yum
命令来执行各种包管理任务。 -
dnf (Dandified YUM)
- 发行版兼容性:是
yum
的升级版,被设计为更加高效和灵活。它被用作Fedora和一些其他发行版的默认包管理器,并且正在逐渐取代yum
。 - 软件包格式:也使用
.rpm
格式的软件包。 - 特点:
dnf
提供了更快的包管理操作,改进了依赖处理和软件包搜索功能。它支持yum
的所有功能,并且增加了一些新的功能,如模块管理和更灵活的仓库配置。 - 命令:使用
dnf
命令来执行包管理任务,它的命令行选项与yum
类似,但更加现代化和用户友好。
主要区别:
- 性能和效率:
dnf
通常被认为比yum
更快,因为它采用了更高效的算法和数据结构。 - 依赖关系处理:所有这三个工具都能处理依赖关系,但它们的内部实现可能有所不同。
- 用户界面:
dnf
提供了更好的用户体验,包括更清晰的错误信息和更直观的命令行界面。 - 未来发展方向:
apt
和dnf
都在持续发展中,而yum
则逐渐被dnf
取代。
选择哪个工具通常取决于你使用的Linux发行版。例如,如果你使用的是Ubuntu,那么apt
是默认的选择;如果你使用的是Fedora,那么dnf
可能是更好的选择。