Linux
Linux,作为一个复杂而又引人入胜的操作系统,有以下的一些本质特点:
- 开源精神: Linux 的最大特点和优势之一是其开源性质。这意味着它的源代码可以被公众访问和修改。这种透明度使得开发者和用户都可以深入到系统的每一个角落,自行进行定制和优化。这也促进了全球范围的协作和知识共享,进而加速了技术进步和创新。
- 模块化与灵活性: Linux 是模块化的,这意味着它是由许多不同的、可独立工作的部分组成的。这种设计方式使得用户可以选择自己所需的组件,进行定制和优化,从而创造出符合自己需求的操作系统。
- 一切皆文件: 在 Linux 中,几乎一切都被视为文件,无论是硬件设备还是网络连接。这种设计理念简化了数据管理和进程交互。
- 安全与稳定性: Linux 采用了多用户设计和严格的权限管理,这意味着恶意软件和用户很难获得系统级别的控制权。这种设计理念使 Linux 成为了一个非常稳定和安全的操作系统。
- 广泛的社区支持: 由于其开源性质,Linux 吸引了一个庞大且活跃的开发者和用户社区。这意味着问题和错误往往能够快速得到解决,同时也有丰富的资源和教程供新用户参考。
- 跨平台性: Linux 可以在各种硬件平台上运行,从大型服务器、桌面计算机,到嵌入式设备和智能手机。
- 持续创新: Linux 与其生态系统(如容器技术、云计算等)一直处于技术前沿,持续地进行创新和进步。
总的来说,Linux 的本质在于其开源、模块化、灵活和社区驱动的特点,这些都共同使它成为了一个强大、稳定和广泛应用的操作系统。
工作原理
加载 Linux(或任何其他操作系统)是一个复杂的过程,涉及多个步骤和组件。以下是计算机从开机到加载 Linux 操作系统的过程简述:
- BIOS/UEFI 启动:
- 当计算机上电后,首先运行的是 BIOS (基本输入输出系统) 或 UEFI (统一扩展固件接口)。这是固化在主板上的一个小型程序,负责进行硬件初始化,如检测 RAM、加载硬盘控制器等。
- BIOS/UEFI 将控制权交给设定的启动设备,通常是硬盘、USB 设备或网络。
- 启动加载器 (Bootloader):
- 最常见的 Linux 启动加载器是 GRUB (GNU GRand Unified Bootloader)。有些系统也可能使用 LILO 或其他启动加载器。
- 启动加载器的主要任务是加载 Linux 内核到内存中,并提供一个可选的菜单,允许用户选择要启动的操作系统或特定的内核版本。
- 内核初始化:
- 一旦被加载到内存中,Linux 内核开始执行初始化任务。它将检测并初始化系统上的硬件组件和驱动程序。
- 内核会设置中断、调度程序、内存管理等核心系统服务。
- 内核还读取
initramfs
(初始化 RAM 文件系统),这是一个临时的文件系统,用于支持内核启动过程中的用户空间初始化。
- 启动 init 进程:
- 内核成功初始化后,它会启动第一个用户空间程序,通常是
init
进程。此进程的 PID (进程标识符) 通常是 1。 - 在现代 Linux 发行版中,
init
可能被其他系统初始化系统替代,如 systemd、Upstart
或SysV init
。
- 内核成功初始化后,它会启动第一个用户空间程序,通常是
- 系统服务与守护进程:
init
或其替代者会根据系统配置启动各种系统服务和守护进程。这些服务和进程负责如网络、日志、系统监控、数据库等功能。
- 用户空间初始化:
- 在所有系统服务和守护进程都开始运行后,系统将继续完成用户空间的初始化。例如,它会启动登录提示符或图形用户界面。
- 用户登录:
- 用户现在可以通过命令行或图形用户界面登录系统。
这就是从开机到用户登录 Linux 系统的整个过程。当然,每一步都可以进一步深入,每个过程背后都有大量的技术细节,但上面的描述为您提供了一个高层次的概览。
可以通过 从0到1构建 Linux 操作系统 了解 Linux 的构建过程。
Linux 的发行版
- CentOS 是从 RedHat 红帽系统发展而来的开源版本,软件包生态完全兼容,所以在商业场景使用的非常广泛。
- Ubuntu 是基于 Debian 系统的发行版,主要在软件包生态和易用性上做了不少优化,此外它还在 Desktop 桌面环境上做了不少工作,所以广为人知。
- ArchLinux 是没有版本的概念的(相对 debian 9/ ubuntu 22)它最大的特点是支持滚动升级,可以永远保持最新版本。
- Alpine Linux 是高度精简的发行版,一般被用来在 Docker 镜像中使用。
- OpenWRT 是一种嵌入式系统,广泛应用在路由器设备中,最初来自 Linksys 被迫开源
不同的发行版有什么区别?
不同的发行版通常搭配了不同的软件包管理器和软件生态
我应该如何选择发行版
安装 Linux 系统
从安装媒介来说可以分为
- ISO 安装,物理介质
- PXE 安装,网络介质
从安装方式来来说可以分为
- GUI 安装
- CLI 安装 从个人喜好来说我更喜欢 CLI 安装,因为大部分服务器的显卡渲染能力都很弱,GUI 安装操作会很不便,使用 CLI 安装可以更简单直接。
可以参考 Archlinux#Installation 章节
推荐了解以下内容: