什么是Linux

什么是 Linux?

Linux 其实是一个操作系统内核,它是 Windows 和 macOS 的“第三种操作系统家族”。
不同组织和社区会在 Linux 内核的基础上做出各种“发行版”(distribution,简称 distro),比如:

  • Ubuntu(最常见,适合初学者和服务器)
  • Debian(Ubuntu 的“上游”,更稳定)
  • FedoraCentOSRedHat(企业常用)
  • Kali Linux(专门做渗透测试和安全研究的 Linux)

Linux 内核是什么?

  • Linux 最原始的东西是 内核 (kernel),1991 年由 Linus Torvalds 发布。
  • 内核负责操作系统最底层的功能:
    • 管理硬件(CPU、内存、硬盘、网卡等)
    • 提供系统调用给用户程序
    • 负责进程调度、文件系统、网络等

内核本身并不是一个完整的操作系统,它只是一个核心程序。

为什么要有“发行版 (distribution)”?

如果你只给用户一个裸的内核,其实什么都干不了。
为了让人类方便使用,需要在内核外面打包一整套软件环境,比如:

  • 基本命令行工具(ls, cp, mv, vim…)
  • 包管理器(apt, yum, pacman…)
  • 桌面环境(GNOME, KDE…)
  • 驱动程序
  • 系统配置
  • 文档和更新机制

这些东西 + Linux 内核 组合起来,才是一个真正可用的 Linux 操作系统。而这些组合包就是 Linux 发行版(Linux distributions,简称 distro)

为什么有这么多发行版?

因为 Linux 是开源的(GPL - general public license协议),任何人都可以在内核基础上定制一套自己的系统,满足不同需求:

  • Ubuntu:适合桌面和服务器,简单易用
  • Debian:强调稳定性
  • RedHat / CentOS / Fedora:面向企业和服务器
  • Kali:面向渗透测试和安全研究
  • Arch Linux:极度自由,用户自己配置一切

这就像大家都拿到一块“发动机”(Linux 内核),然后不同厂商自己造车身、内饰,形成不同的车型(发行版)。

发行版的作者是谁?

  • Linux 内核:Linus Torvalds 发起,但现在是全球开发者社区一起维护(成千上万人贡献代码)。

  • 发行版 (distro):是不同的组织或公司基于内核做的整合。比如:

    • Ubuntu:由 Canonical 公司开发和维护
    • Debian:由 Debian 社区维护(志愿者组织)
    • Fedora/RedHat/CentOS:由 Red Hat 公司维护
    • Kali Linux:由 Offensive Security 公司维护
    • Arch Linux:由社区志愿者维护

它们都基于同一个 Linux 内核,但围绕内核打包了不同的软件组合和工具。

这些发行版源码开放吗?

  • 内核本身:开源(GPL 协议)。
  • 发行版的软件:大部分开源(GNU 工具链、桌面环境、驱动程序等),但有些可能打包了闭源组件(比如显卡驱动)。
  • 所以,你可以自由下载源码,甚至自己组装一个属于自己的发行版(有个项目叫 Linux From Scratch 就是教你这么干)。

“原生的 Linux”可以直接用吗?

可以,但很难。

  • 你可以从 kernel.org 下载最新的内核源码(就是 Linus 和内核社区维护的“原生 Linux”)。
  • 但你需要自己手动编译、安装,还要配套加上所有常用软件,否则你只能得到一个“能启动但几乎没法用”的最小系统。
  • 对一般用户和初学者来说,这太麻烦,所以才需要发行版。

Linux 内核开源代码在哪里?

你完全可以去看源码,甚至参与贡献。但要注意:那是内核源码,和 Ubuntu/Kali 这种“完整系统”不是一回事。

内核 vs 软件环境

你可以把操作系统分成两层:

  • 内核 (kernel):最底层,直接跟硬件打交道(CPU/内存/硬盘/网络)。
  • 用户空间 (user space):内核之上的环境,包括:
    • Shell(命令解释器)
    • 常用命令(ls, cp, mv, vim…)
    • 包管理器(apt, yum…)
    • 图形界面(GNOME, KDE)

区别在于:

  • 内核是发动机,只能让机器“跑起来”。
  • 用户空间是车身+驾驶舱,让你能“开车、坐车”。

OS 和 App 的区别

可以这么理解:

  • OS (操作系统) = 内核 + 基础软件环境
  • App (应用程序) = 用户额外安装的软件(浏览器、游戏、IDE…)

没有 App 的 OS

  • 你还能启动电脑,但只能在命令行输入指令。
  • 就像一个新买的手机,只有系统自带的设置,没有微信/Instagram 之类的软件。
  • 举例:刚装完最小化的 Ubuntu,你会看到黑屏终端,啥图形界面都没有,但能用命令 ls, cd 来操作文件。

Shell 的历史

  • 1969 Unix:最早的 Unix 系统,Ken Thompson 写了第一个 shell(Thompson Shell)。
  • 1977 Bourne Shell (sh):Unix 的标准 shell,由 Steve Bourne 开发。
  • 1989 Bash:GNU 项目写了一个兼容 Bourne Shell 的改进版,叫 Bourne Again SHell (bash),功能更强大,从此成为 Linux 默认 shell。
  • 后来又有了很多其他 shell:zsh(更炫酷),fish(交互更好),但 bash 仍然是教学和服务器上的默认标准

BASH 是什么

  • Bash (Bourne Again SHell):Linux/Unix 系统里最常见的 shell(命令行解释器)。
  • Shell 的角色:人和内核之间的“翻译官”。
    • 你输入 ls → Shell 把它翻译成系统调用 → 内核执行 → 返回结果。

Windows 的 PowerShell 和 macOS 的 Terminal

  • Windows PowerShell:Windows 提供的 shell(支持命令行+脚本),用的是 Windows API,而不是 Linux 内核。
  • macOS Terminal:其实就是运行一个 Unix Shell(默认 zsh,之前是 bash)。因为 macOS 内核本身是基于 Unix 的 Darwin 内核,所以命令和 Linux 很像。

所以:

  • Linux/Kali/Ubuntu → 默认 shell = bash/zsh
  • macOS → 默认 shell = zsh(历史上是 bash)
  • Windows → 默认 shell = PowerShell(但可以安装 WSL 用 bash)

  • 内核 = OS 的核心,只管硬件和系统调用。
  • 发行版 = 内核 + 软件环境(命令、桌面、工具),让 OS 可用。
  • App = 你在 OS 上安装的额外程序。
  • Shell = 人和 OS 的接口,Linux 常用 bash,Windows 用 PowerShell,macOS 默认 zsh。
  • Bash 的地位就像英语里的“普通话版本”,大多数 Linux 教程都以它为准。

Last modified on 2025-09-02 • Suggest an edit of this page
← Prev: 什么是Unix
Next: 德行培训和无根性 →