GUN/Linux 不同发行版的常识普及
Linux科普
1、预备知识
1.1、PC操作系统概述
在PC上广为人知到操作系统大概可以分为Windows、MacOS、Linux,而这其中MacOS和Linux又是基于UNIX架构发展而来的,所以在PC操作系统中大概可以分为Windows操作系统与类UNIX操作系统(包含UNIX、Linux、MacOS),关于UNIX的发展历史以及主要功能大家可以参考我上传的图书UNIX&Linux大学教程。下面我来主要讲一讲Linux。
Linux作为操作系统而言是GNU项目最主要的产出结果,它给人们带来了可以免费获取的操作系统,因而Linux在ToB端(主要对象是企业)应用是相当广泛的,举个例子,我们熟知的各种Linux发行版、智能手表、Android手机操作系统以及更为广泛的嵌入式操作系统都是基于Linux核心二次开发而来的。Linux操作系统的天然特性(多用户以及并发操作等特性)特别适用于程序开发,所以不少软件时天然支持Linux操作系统,而后支持Windows操作系统的。而在ToC端(主要对象是个人消费者),Window由于良好的GUI交互界面和较低的学习成本获得了大量的用户,而用户数量往往是一些软件开发商适配软件的首要考虑条件,所以这也导致了Windows在个人PC领域占据了庞大的市场份额。接下来的内容是有关EDA软件的,这一方面的知识与本科教学相关性不大,同学们可以在就业前再做充分了解,除非兴趣特别浓厚,在保证不影响学业的情况下可以做深入的探究。(无论是数字IC设计还是模拟IC设计都是一个深坑,在完成基础的理论储备后仍需要长时间培养相关工具的使用技能)
当讲到芯片设计,无论是模拟还是数字,都以UNIX&Linux作为第一适配平台,有些软件甚至是Linux操作平台独占,所以有必要对在接下来的一段时间里,我会向大家介绍逐渐介绍一下目前设计领域主要主要使用的软件的主要作用,仅作为一个敲门砖,更深入的内容将会在踏入研究生生涯或工作中进一步学习。
1.2、不同的Linux发行版
下面是RHEL、Debian和Arch系列的Linux发行版的简要介绍和比较:
Red Hat Enterprise Linux (RHEL) | Debian | Arch Linux |
CentOS/AlmaLinux | Ubuntu | Manjaro |
Fedora | Mint | Antergos |
OpenSUSE | Elementary OS | Artix Linux |
下面主要讲下RHEL、CentOS、AlmaLinux三者之间的关系
RHEL(Red Hat Enterprise Linux)是一个由红帽公司开发的商业版Linux操作系统,具有稳定性、安全性和高可靠性等特点,并提供长期支持。
CentOS(Community Enterprise Operating System)是一个开源的、基于RHEL源代码构建的Linux发行版。它是完全免费的,并且由社区维护和支持。CentOS在企业和个人用户中都有广泛应用,可以说是RHEL的一个克隆版。
AlmaLinux是一个基于RHEL源代码构建的免费Linux发行版,由CloudLinux公司开发。它旨在填补CentOS调整的空缺,并提供一个可靠的、长期支持的替代品。AlmaLinux与CentOS的主要区别是由不同的公司支持和维护。
2019年,Red Hat公司宣布将停止支持CentOS Linux 8(以及之后的版本)的更新和维护,取而代之的是CentOS Stream。CentOS Stream是一个滚动更新的发行版,更加注重开发和测试。这一决定引起了社区的不满,因为CentOS用户已经习惯了长期支持和稳定性。
作为对CentOS用户的回应,CloudLinux公司宣布了AlmaLinux,提供了一个长期支持的替代品,目标是提供与CentOS相同的稳定性和可靠性,并提供与RHEL相同的更新速度。
因此,可以这样概括这三者之间的关系:RHEL 是企业级 Linux 操作系统的领导者和标杆,CentOS 是一个由社区驱动的基于 RHEL 的发行版,而AlmaLinux则是在 CentOS 停止更新后诞生的,由社区驱动的 RHEL 克隆发行版,目标是为企业提供长期的稳定性和支持。
个人可以使用 RHEL(Red Hat Enterprise Linux),但是需要购买许可证,并支付相应的订阅费用。RHEL 是一款商业级的企业操作系统,主要定位于企业级服务器和应用程序环境,因此它的订阅费用通常比较昂贵。
对于个人使用来说,如果不需要使用 RHEL 提供的商业级技术支持和服务,建议使用 CentOS 、Fedora 或 AlmaLinux 这样的免费开源发行版,它们提供的功能和应用程序与 RHEL 相当,但不需要支付任何费用。同时,RHEL 的免费版也有提供,称为 CentOS Stream,提供了相同的 RHEL 技术和包,但不提供 RHEL 官方支持和保障,AlmaLinux 由 CloudLinux 公司提供维护。
- RHEL系:Red Hat Enterprise Linux (RHEL)是一款商业级别的Linux发行版,由Red Hat公司开发和支持。RHEL具有稳定性和可靠性,适用于大型企业、服务提供商和政府机构等机构。CentOS是RHEL的开源版本,它是由志愿者开发和维护,与RHEL非常相似。Fedora是由Red Hat公司支持的开源社区项目,为用户提供最新的软件包和技术。OpenSUSE是一款稳定、易用和功能强大的发行版,由SUSE公司开发和支持。
- RHEL 的一些学习资料RHEL 参考文档:Red Hat Customer Portal - Access to 24x7 support and knowledgeThe Linux Command Line 的中文版——快乐的Linux 命令行:TLCL (billie66.github.io)Linux 命令行大全(手册):Linux命令大全(手册) – 真正好用的Linux命令在线查询网站 (linuxcool.com)Linux Journey:Home | Linux Journey
学习资料 2、3、4 不仅适用于RHEL,其中大部分内容也适用于其他 Linux 发行版。
- Debian系: Debian是一款流行的Linux发行版,它是由社区维护的,以稳定性、安全性和易用性著称。Ubuntu是基于Debian的Linux发行版,由Canonical公司开发和支持,具有易用性和广泛的软件支持。Mint是一款基于Ubuntu的发行版,它的目标是提供易用的桌面环境。Elementary OS是基于Ubuntu的发行版,专注于美学和易用性。
- Debian Linux 的一些学习资料: Debain 初学者手册(入门常用,涵盖常见问题):The beginner’s handbook --- 初学者手册 (arpinux.org)Debian 管理员手册(高级参考手册,介绍最为全面):The Debian Administrator's Handbook --- Debian 管理员手册 (debian-handbook.info)Debain 用户手册(FAQ):Debian -- Debian 用户手册Debain FAQ Debian GNU/Linux 常见问题(FAQ)
FAQ 是英文 Frequently Asked Questions 的缩写,中文意思是“常见问题解答”。它通常是一个文档或页面,收集了针对某个主题或产品的常见问题及其答案,为用户提供方便的参考和解决问题的方法。一般来说,FAQ 包含了对于该主题或产品的一些基本概念、常见问题及其解决方案、使用技巧和注意事项等方面的介绍。很多软件和网站都会提供 FAQ 来帮助用户解决问题,同时也可以减轻客服的工作量。
- Arch系: Arch Linux是一款面向高级用户的Linux发行版,它的目标是提供最新的软件和最小化的系统配置。Manjaro是基于Arch Linux的发行版,为用户提供了更简单的安装和配置。Antergos是一个用户友好的发行版,它是基于Arch Linux的,但更注重易用性。Artix Linux是一款轻量级的Linux发行版,它使用独立的init系统和包管理器来提供纯净的Arch体验。
- Arch Linux 的一些学习资料 手册页面:Arch manual pages (archlinux.org)用户手册中文:Arch manual pages (archlinux.org)用户手册英文:Arch manual pages (archlinux.org)
1.2.1 不同Linux发行版的常用命令
文件和目录操作 | ls, cd, pwd, mkdir, rmdir, cp, mv, rm, chmod, chown, chgrp | ls, cd, pwd, mkdir, rmdir, cp, mv, rm, chmod, chown, chgrp | ls, cd, pwd, mkdir, rm, chmod, chown, chgrp, cp, mv |
系统信息 | uname, hostname, uptime, top, free, df, du | uname, hostname, uptime, top, free, df, du | uname, hostname, uptime, top, free, df, du |
网络操作 | ifconfig, ping, traceroute, netstat, curl, wget, ssh, scp | ifconfig, ping, traceroute, netstat, curl, wget, ssh, scp | ip, ping, traceroute, netstat, curl, wget, ssh, scp |
软件管理 | rpm, yum, dnf | dpkg, apt-get, aptitude | pacman, yay, yaourt |
用户和权限管理 | useradd, usermod, passwd, su, sudo, chmod, chown | adduser, usermod, passwd, su, sudo, chmod, chown | useradd, usermod, passwd, su, sudo, chmod, chown |
进程管理 | ps, top, kill, pkill, nice | ps, top, kill, pkill, renice | ps, top, kill, pkill, nice |
系统服务管理 | systemctl, service, chkconfig | systemctl, service, update-rc.d | systemctl, service, enable, disable |
注意:这张表格只列出了每个发行版的常用命令示例,并非所有命令,每个命令的具体用法和参数也可能因发行版而异。
1.2.2 RHEL、Debain、Arch 系Linux 常用的命令示例
下面介绍一下这三个Linux发行版的常用命令,并给出示例:
RHEL(Red Hat Enterprise Linux)系:
- yum:包管理器,用于安装、升级和删除软件包。例如:
- systemctl:用于管理系统服务,包括启动、停止、重启、查看状态等。例如:
- firewall-cmd:用于管理防火墙,包括开启、关闭、添加规则等。例如:
Debian系:
- apt:包管理器,用于安装、升级和删除软件包。例如:
- systemctl:同样用于管理系统服务。例如:
- ufw:用于管理防火墙,包括开启、关闭、添加规则等。例如:
Arch系:
- pacman:包管理器,用于安装、升级和删除软件包。例如:
- systemctl:同样用于管理系统服务。例如:
- iptables:用于管理防火墙,包括开启、关闭、添加规则等。例如:
1.3 一些注意事项
- 在使用 Linux 时我们在查询遇到相关问题时最好加上具体的发行版本,因为不同发行版的 Linux 可能会在某些文件的命令及使用方法上的不同,方法不一定通用。
- 在选择 Linux 不同发行版时要考虑使用目的和不同Linux发行版的特点(维护方,市占率,维护周期,适用领域等)去选择合适的 Linux 发行版使用,通常市占率更高的 Linux 发行版遇到问题的话可以在互联网中更轻松地找到解决方案。
- 使用具体 Linux 发行版时最好去它的官网看看相关的文档,有些问题可能会在文档中有记录。
- 一篇 Linux 的使用感受,来自微信:使用 Linux 作为主力机一年后 (qq.com)
2、不同发行版 Linux 的版本与 Kernel 的对应关系
内核版本可以在系统中使用命令 uname -r
查看。
常见处理器架构代号 amd64 (AMD64 & Intel EM64T)、armhf (32-bit hard-float ARMv7)、arm64 (64-bit ARM)、i386 (Intel 32-bit PC)、powerpc (IBM/Motorola PowerPC)、ppc64el (PowerPC 64-bit Little-endian)、ppc64el (PowerPC 64-bit Little-endian)、s390x (IBM System z)。
2.1、RHEL(Red Hat Enterprise Linux)版本与 Kernel 的对应关系:
8.5 | 4.18.0 |
8.4 | 4.18.0 |
8.3 | 4.18.0 |
8.2 | 4.18.0 |
8.1 | 4.18.0 |
8.0 | 4.18.0 |
7.9 | 3.10.0 |
7.8 | 3.10.0 |
7.7 | 3.10.0 |
7.6 | 3.10.0 |
7.5 | 3.10.0 |
7.4 | 3.10.0 |
7.3 | 3.10.0 |
7.2 | 3.10.0 |
7.1 | 3.10.0 |
7.0 | 3.10.0 |
2.2、CentOS 版本与 Kernel 的对应关系:
8.5 | 4.18.0 |
8.4 | 4.18.0 |
8.3 | 4.18.0 |
8.2 | 4.18.0 |
8.1 | 4.18.0 |
8.0 | 4.18.0 |
7.9 | 3.10.0 |
7.8 | 3.10.0 |
7.7 | 3.10.0 |
7.6 | 3.10.0 |
7.5 | 3.10.0 |
7.4 | 3.10.0 |
7.3 | 3.10.0 |
7.2 | 3.10.0 |
7.1 | 3.10.0 |
7.0 | 3.10.0 |
需要注意的是,由于CentOS是由Red Hat Enterprise Linux(RHEL)源代码克隆而来,因此与RHEL的内核版本非常相似。此外,由于CentOS在2019年重组了其开发团队和架构,因此这些信息可能会随着时间而变化。
2.3、AlmaLinux 版本与 Kernel 的对应关系:
8.4 | 4.18.0 |
8.3 | 4.18.0 |
8.2 | 4.18.0 |
8.1 | 4.18.0 |
8.0 | 4.18.0 |
7.8 | 3.10.0 |
7.7 | 3.10.0 |
7.6 | 3.10.0 |
7.5 | 3.10.0 |
7.4 | 3.10.0 |
7.3 | 3.10.0 |
7.2 | 3.10.0 |
7.1 | 3.10.0 |
7.0 | 3.10.0 |
AlmaLinux wiki AlmaLinux Wiki | AlmaLinux Wiki
2.4、Debain 版本与 Kernel 的对应关系
1.1 | 1.1.x |
1.2 | 1.2.x |
1.3 | 1.3.x |
2.0 | 2.0.x |
2.1 | 2.0.7x |
2.2 | 2.2.x |
3.0 | 2.2.x/2.4.x |
3.1 | 2.4.x |
4.0 | 2.6.8 |
5.0 | 2.6.26 |
6.0 | 2.6.32 |
7.0 | 3.2.x |
8.0 | 3.16.x |
9.0 | 4.9.x |
10.0 | 4.19.x |
11.0 | 5.10.x |
注意,不同版本的 Debian 可能会包含多个内核版本,表格中列出的是每个版本的主要内核版本。
2.5、Ubuntu 版本与 Kernel 的对应关系:
4.10 | 2.6.8 |
5.04 | 2.6.10 |
5.10 | 2.6.12 |
6.06 LTS | 2.6.15 |
6.10 | 2.6.17 |
7.04 | 2.6.20 |
7.10 | 2.6.22 |
8.04 LTS | 2.6.24 |
8.10 | 2.6.27 |
9.04 | 2.6.28 |
9.10 | 2.6.31 |
10.04 LTS | 2.6.32 |
10.10 | 2.6.35 |
11.04 | 2.6.38 |
11.10 | 3.0.x |
12.04 LTS | 3.2.x |
12.10 | 3.5.x |
13.04 | 3.8.x |
13.10 | 3.11.x |
14.04 LTS | 3.13.x |
14.10 | 3.16.x |
15.04 | 3.19.x |
15.10 | 4.2.x |
16.04 LTS | 4.4.x |
16.10 | 4.8.x |
17.04 | 4.10.x |
17.10 | 4.13.x |
18.04 LTS | 4.15.x |
18.10 | 4.18.x |
19.04 | 5.0.x |
19.10 | 5.3.x |
20.04 LTS | 5.4.x |
20.10 | 5.8.x |
21.04 | 5.11.x |
21.10 | 5.13.x |
Ubuntu 文档 Official Ubuntu Documentation
注意,不同版本的 Ubuntu 可能会包含多个内核版本,表格中列出的是每个版本的主要内核版本。