Skip to content

Linux 学习总结

引子

笔者接触 Linux 已有 6 年之久。第一次接触的 Linux distro(下文称发行版)是Raspberry Pi OS(以前叫Raspbian),基于Debian Jessie(也就是Debian 8)。后来知识面扩展,又接触了DebianUbuntuCentOSArch Linux等发行版。本文仅代表笔者粗浅的理解,如有错误还请读者给予斧正。

什么是 Linux?

Linux 一词在不同语境有不同的意思。如果一个人说"我在用 Linux",那么这一词应理解为"Linux 发行版"或者"Linux 系统";如果某个系统宣称"我们基于 Linux",应理解为"Linux 内核"。

那么,什么是 Linux 系统?Linux 发行版又是什么?Linux 内核又代表什么呢?

笔者先从最核心开始说起:Linux 内核。Linux 内核是整个"系统"的核心,由它来负责与下层硬件进行通信,调控 CPU,RAM,Bus 等系统资源;如果用汽车来打比方,那么 Linux 内核的地位就相当于发动机:没有发动机对传动轴等等部件进行驱动,那这辆车肯定是开不动的。(这个比方笔者感觉打的不好...)

然后,Linux 系统。笔者的理解是,Linux 内核+外围软件,就可以称之为 Linux 系统。还是那个汽车的比方:如果整车只有底盘和发动机,没有转速表、方向盘、刹车油门等等输入输出(I/O)设备,那这辆车一定开不起来。表现到 Linux 系统上,就是内核(kernel)、系统管理进程(init)、交互式人机界面(也叫外壳,shell)以及一些实用的程序组合在一起,就变成了一个可用的 Linux 系统。

最后,Linux 发行版。就像汽车可以改装一样,Linux 系统也可以改装:你可以往仪表盘上加一个转速表,也可以在 Linux 中安装一个htop(一款 TUI 系统监视器软件);你可以改掉汽车的中控系统,也可以在 Linux 中把systemd替换成sysvinit;方向盘、座椅等等可以换成更好的,Linux 中也可以用zsh来替换bash...就是这样的自定义(customization)过程,催生出了各种各样的 Linux 发行版。

Linux 和 Windows 的区别在哪?

Linux 内核是由Linus Torvalds开发的一款开源操作系统内核,而 Windows 由Microsoft开发,是一款闭源且收费的操作系统。笔者不从技术角度出发,单纯比较两个系统在使用方面上的差异。

Windows 对于图形用户界面(GUI)的支持很好,而 Linux 在图形界面(X11/Wayland)上还有所欠缺。

Windows 对本地化(localization)的支持较好虽然有一部分能看出来是机翻,Linux 对本地化的支持相对较差(某些发行版支持还算过得去吧)。

Linux 比较依赖命令行(毕竟服务器用的多),而 Windows 可以通过图形界面操作大部分常用功能,较为简便。

Windows 支持 3A 大作,而 Linux 不支持(滑稽)。

技术方面就更多了:宏内核 vs 微内核、POSIX vs NT、可执行文件格式、架构支持...由于笔者水平有限,就不在这里妄加评论了。

架构支持

Linux 内核支持多种架构,具体可以去内核源码目录arch/下查看。
比较常用的有这些:

架构简介
x86_64英特尔/AMD 的 64 位处理器架构
arm32 位 arm 架构
arm6464 位 arm 架构
i38632 位英特尔架构
mipsMIPS 公司的架构,AR93xx/MT76xx 这类处理器很喜欢用
mips64同上,但是 64 位
RISC-V开源 RISC 架构

其中笔者较为熟悉的 arm 架构还有各种变种: armv5,armv6,armv7,armv7l,armv8...而且关系还比较混乱,armel,armhf,aarch64...至于其它架构,笔者对其了解还不够,这里不再介绍。

常用发行版

这里列几个笔者用过的发行版:

发行版胡言乱语
Debian最喜欢的发行版
Ubuntu还行,装 NVIDIA 驱动很方便
Arch Linux大佬专用,有助于学习系统急救知识
CentOS老东西早该爆金币了
Fedora浅尝辄止
Windows呐呐,说的是 wsl 啦

烂尾

想到什么再写吧...