Linux

Linux,作为一个复杂而又引人入胜的操作系统,有以下的一些本质特点:

  1. 开源精神: Linux 的最大特点和优势之一是其开源性质。这意味着它的源代码可以被公众访问和修改。这种透明度使得开发者和用户都可以深入到系统的每一个角落,自行进行定制和优化。这也促进了全球范围的协作和知识共享,进而加速了技术进步和创新。
  2. 模块化与灵活性: Linux 是模块化的,这意味着它是由许多不同的、可独立工作的部分组成的。这种设计方式使得用户可以选择自己所需的组件,进行定制和优化,从而创造出符合自己需求的操作系统。
  3. 一切皆文件: 在 Linux 中,几乎一切都被视为文件,无论是硬件设备还是网络连接。这种设计理念简化了数据管理和进程交互。
  4. 安全与稳定性: Linux 采用了多用户设计和严格的权限管理,这意味着恶意软件和用户很难获得系统级别的控制权。这种设计理念使 Linux 成为了一个非常稳定和安全的操作系统。
  5. 广泛的社区支持: 由于其开源性质,Linux 吸引了一个庞大且活跃的开发者和用户社区。这意味着问题和错误往往能够快速得到解决,同时也有丰富的资源和教程供新用户参考。
  6. 跨平台性: Linux 可以在各种硬件平台上运行,从大型服务器、桌面计算机,到嵌入式设备和智能手机。
  7. 持续创新: Linux 与其生态系统(如容器技术、云计算等)一直处于技术前沿,持续地进行创新和进步。

总的来说,Linux 的本质在于其开源、模块化、灵活和社区驱动的特点,这些都共同使它成为了一个强大、稳定和广泛应用的操作系统。

工作原理

加载 Linux(或任何其他操作系统)是一个复杂的过程,涉及多个步骤和组件。以下是计算机从开机到加载 Linux 操作系统的过程简述:

  1. BIOS/UEFI 启动:
    • 当计算机上电后,首先运行的是 BIOS (基本输入输出系统) 或 UEFI (统一扩展固件接口)。这是固化在主板上的一个小型程序,负责进行硬件初始化,如检测 RAM、加载硬盘控制器等。
    • BIOS/UEFI 将控制权交给设定的启动设备,通常是硬盘、USB 设备或网络。
  2. 启动加载器 (Bootloader):
    • 最常见的 Linux 启动加载器是 GRUB (GNU GRand Unified Bootloader)。有些系统也可能使用 LILO 或其他启动加载器。
    • 启动加载器的主要任务是加载 Linux 内核到内存中,并提供一个可选的菜单,允许用户选择要启动的操作系统或特定的内核版本。
  3. 内核初始化:
    • 一旦被加载到内存中,Linux 内核开始执行初始化任务。它将检测并初始化系统上的硬件组件和驱动程序。
    • 内核会设置中断、调度程序、内存管理等核心系统服务。
    • 内核还读取 initramfs(初始化 RAM 文件系统),这是一个临时的文件系统,用于支持内核启动过程中的用户空间初始化。
  4. 启动 init 进程:
    • 内核成功初始化后,它会启动第一个用户空间程序,通常是 init 进程。此进程的 PID (进程标识符) 通常是 1。
    • 在现代 Linux 发行版中,init 可能被其他系统初始化系统替代,如 systemdUpstartSysV init
  5. 系统服务与守护进程:
    • init 或其替代者会根据系统配置启动各种系统服务和守护进程。这些服务和进程负责如网络、日志、系统监控、数据库等功能。
  6. 用户空间初始化:
    • 在所有系统服务和守护进程都开始运行后,系统将继续完成用户空间的初始化。例如,它会启动登录提示符或图形用户界面。
  7. 用户登录:
    • 用户现在可以通过命令行或图形用户界面登录系统。

这就是从开机到用户登录 Linux 系统的整个过程。当然,每一步都可以进一步深入,每个过程背后都有大量的技术细节,但上面的描述为您提供了一个高层次的概览。

可以通过 从0到1构建 Linux 操作系统 了解 Linux 的构建过程。

Linux 的发行版

  • CentOS 是从 RedHat 红帽系统发展而来的开源版本,软件包生态完全兼容,所以在商业场景使用的非常广泛。
  • Ubuntu 是基于 Debian 系统的发行版,主要在软件包生态和易用性上做了不少优化,此外它还在 Desktop 桌面环境上做了不少工作,所以广为人知。
  • ArchLinux 是没有版本的概念的(相对 debian 9/ ubuntu 22)它最大的特点是支持滚动升级,可以永远保持最新版本。
  • Alpine Linux 是高度精简的发行版,一般被用来在 Docker 镜像中使用。
  • OpenWRT 是一种嵌入式系统,广泛应用在路由器设备中,最初来自 Linksys 被迫开源

不同的发行版有什么区别?

不同的发行版通常搭配了不同的软件包管理器和软件生态

我应该如何选择发行版

安装 Linux 系统

从安装媒介来说可以分为

  1. ISO 安装,物理介质
  2. PXE 安装,网络介质

从安装方式来来说可以分为

  1. GUI 安装
  2. CLI 安装 从个人喜好来说我更喜欢 CLI 安装,因为大部分服务器的显卡渲染能力都很弱,GUI 安装操作会很不便,使用 CLI 安装可以更简单直接。

可以参考 Archlinux#Installation 章节


推荐了解以下内容:


Table of contents