Linux入门(一):起源、生态与基础使用

一. Linux 的起源与发展

要理解 Linux,我们首先要追溯其精神源头------Unix。Unix 的发展历程不仅见证了技术的演进,更是一部关于标准与开放的博弈史


1. Unix 发展历史

Unix 的诞生

20 世纪 70 年代初,Unix 在贝尔实验室诞生。因其卓越的简洁性与强大的多用户处理能力,迅速被 Sun Microsystems(昇阳)等各大主流硬件厂商采纳

权力的干预引发了生态系统的剧变。20世纪80年代中期,Unix系统进入了群雄割据的"战国时代",逐渐分化为两大对立阵营:

  • System V:基于 AT&T 官方版本的商业派系

  • BSD:由伯克利大学主导、更具极客精神的派系

这种碎片化给当时的开发者带来了巨大的困扰:同一份程序,在不同版本的 Unix 上运行可能需要完全重写。这种生态屏障让软件开发商在版本适配中消耗了大量精力,也让行业意识到:缺乏统一标准,技术就会走向封闭与内耗


商业巨头的标准之争

为了终结这种混乱,AT&T 成立了 Unix 系统实验室(USL),致力于整合异构版本

  1. SVR4 的整合 :1991 年,USL 推出了 System V Release 4 (SVR4),它综合了 System V、SunOS 和微软公司开发的 Xenix 的核心特点,试图建立一个大一统的商业标准

  2. OSF 的反击:为了对抗 AT&T 的垄断,IBM、惠普等巨头联手组成了开放软件基金会(OSF),推出了自己的 Unix 标准

  3. 最终结果:1993 年,AT&T 将 Unix 业务转手给 Novell,而 Sun 公司则将 SVR4 融入其 Solaris 系统中。尽管各大厂商最终在图形界面标准(CDE)上达成了一致,但 Unix 昂贵的授权费用和封闭的源码,依然将无数开发者拒之门外


2. Linux 的出现

当商业巨头们在为标准争执不休时,赫尔辛基大学的 Linus Torvalds 正在寻找一个可以在个人电脑上运行的、类似 Unix 的系统

受 Andrew S. Tanenbaum 教授开发的教学系统 Minix 的启发,Linus 决定自己动手实现一个内核

  • 0.01 版:这是 Linux 系统的雏形。尽管功能尚不完善且未正式发布,但它在 FTP 服务器上公开的源代码,却成功吸引了全球黑客的关注

  • 0.02 版(1991年10月) :这是 Linux 第一个正式向公众宣告的版本。它已经能够运行 GNU BashGCC 编译器。这意味着它不仅仅是一个玩具,而是一个具备自生长能力的系统原型

  • 1.0 正式版(1994年):随着全球程序员的疯狂涌入,Linux 经历了 0.10、0.95 等版本的快速迭代,最终在 1994 年发布了 1.0 版本,宣告了一个基于协作而非垄断的新时代正式开启

GNU 与 Linux

从严格的技术视角来看,Linux 仅仅是一个内核(Kernel) 。一个真正能让用户操作、让程序运行的完整系统,离不开 GNU 计划 的基石作用

1983 年,理查德·斯托曼(Richard Stallman)发起了 GNU 计划G NU's N ot Unix)。他的目标极其纯粹:开发一套完全自由、兼容 Unix 的操作系统

在 Linux 诞生之前,GNU 已经完成了操作系统中绝大部分核心组件的开发,包括:

  • GCC:功能强大的 C 语言编译器。

  • Emacs:极客必备的文本编辑器。

  • Bash:我们今天在终端输入命令时最常用的 Shell 环境。

  • Glibc:几乎所有 Linux 程序运行都依赖的标准 C 库

到了 20 世纪 90 年代初,GNU 计划已经拥有了世界级的编译器和工具链,唯独缺一个性能稳定的内核(当时 GNU 自研的内核 Hurd 开发进度缓慢)

就在这个历史节点,1991 年 Linus Torvalds 发布了 Linux 内核。Linux 的出现,正好填补了 GNU 计划中最后一块、也是最核心的空白。当 Linus 将 Linux 内核以 GPL(GNU 通用公共许可证) 协议开源后,全球的开发者迅速将 GNU 的各种工具移植到 Linux 内核之上

  • Linux 负责:管理硬件资源、驱动程序、进程调度、内存分配

  • GNU 负责:提供用户交互接口、开发工具、系统函数库

这种结合是如此紧密,以至于自由软件基金会(FSF)一直主张将我们使用的系统称为 GNU/Linux

二. 什么是开源

Linux 是自由软件和开源软件发展中最成功的典范。在 GNU GPL(通用公共许可证) 的框架下,开源赋予了使用者四项核心自由:

  1. 使用自由:无论商业还是个人,都可以无限制地运行程序

  2. 研究自由:你可以阅读每一行底层源代码,理解系统是如何工作的

  3. 修改自由:你可以自由定制所需功能,这在闭源的 Windows,macOS 中是绝对禁止的

  4. 分发自由:你可以自由地传播原始版本或你修改后的衍生版本

理查德·斯托曼撰写的 GPL 协议 是 Linux 能够长盛不衰的根本保障。它规定:任何基于 GPL 软件开发的衍生产品,在发布时必须同样采用 GPL 许可证,并强制公开源代码

这种保护机制,确保了技术成果不会被某个商业公司私有化。正是因为有了 GPL,Linux 才能从一个人的业余爱好,演变成由全球成千上万机构(包括谷歌、英特尔、华为等)共同维护的公共基础设施

在阅读技术文档时,我们需要严谨地区分两个概念:

  • Linux 内核(Kernel):这是林纳斯·托瓦兹在 1991 年发布的那个核心程序。它负责最底层、最脏累的活------管理硬件、调度进程

  • Linux 操作系统:通常指以 Linux 内核为基础,集成了 GNU 工具链、GUI 图形组件以及各类应用程序后的完整生态系统

由于 Linux 是开源软件的代名词,今天我们提到的 "学习 Linux",实际上是在学习一整套由开源组件构建的生产环境


开源带来了哪些好处

对于一名开发者来说,理解并使用开源系统有以下两个不可替代的好处:

1. 安全性与稳定性

开源意味着全世界顶尖的程序员都在义务充当 Linux 的安检员。相比于闭源系统的黑盒状态,Linux 的透明性让它在处理高并发、防御网络攻击时具备天然优势。这也是为什么全球 90% 以上的高性能服务器都选择 Linux 的原因

2. 技术锁死

如果你使用某种闭源商业软件,一旦厂商停止支持或大幅涨价,你将毫无还手之力。但 Linux 是属于全人类的。只要遵循 GPL 协议,你可以永远拥有它的控制权,自由地进行底层调优或安全加固

学习 Linux,不仅仅是学习一个系统,而是学会如何在一个透明、标准化的环境中构建软件。这种开源思维能帮助我们在云计算、大数据、AI 等前沿领域迅速上手,因为这些领域的尖端工具几乎都植根于 Linux 这片开源沃土

Linux 的内核源代码:

kernel 官网http://kernel.org

三. 什么是 OS

在深入了解Linux的历史之前,我们必须先弄清楚操作系统(Operating System, OS)到底是什么。从宏观上讲,操作系统是一组统筹硬件资源、管理系统软件、并为用户提供交互接口的系统软件集合。参考这张结构图,操作系统的核心作用一目了然

图的最底层是底层硬件,如网卡、硬盘等,它们需要通过直接其上的驱动程序进行操控。而操作系统的核心就在第三层,如图所示,它内部精细地划分了内存管理、进程管理、文件管理、以及驱动管理等核心模块。操作系统的第一个核心作用就是对下管理硬件。 统一调度这些复杂的硬件资源,确保它们井然有序地工作,并将硬件细节对上层隐藏

再看图的最顶层,也就是用户层。用户并不需要知道硬盘是如何读取扇区的,或者网卡是如何处理数据包的,他们只需要通过指令操作、开发操作和管理操作与操作系统交互。这就引出了操作系统的第二个核心作用:对上提供接口。 操作系统就像一个功能强大的中介,将复杂的硬件功能抽象成简单易用的服务提供给用户

操作系统充当了一个计算机系统的管家:对内管理硬件资源,对外提供便捷的操作接口。没有操作系统,用户将不得不直面复杂的裸机,而有了操作系统,用户才能轻松地工作和创造

四. Linux 应用领域

我们可以将 Linux 的版图划分为以下四大核心领域:

1. 服务器领域

如果说互联网有一块基石,那一定是 Linux。凭借极高的稳定性、安全性和开源带来的低成本,Linux 在服务器市场占据了绝对的主导地位

  • 市场统治力: 早在几年前,Linux 在服务器领域的份额就已突破 75% ,在高性能计算和超级计算机领域甚至接近 100%

  • 关键行业: 无论是政府、金融、电信还是交通等关乎国计民生的核心领域,Linux 都是后台系统的首选

  • 未来趋势: 随着国产化替代的推进,龙芯、飞腾等架构下的 Linux 服务器产品正在进一步冲击传统闭源系统的领地

2. 桌面领域

近年来,特别在国内市场,Linux 桌面操作系统的发展趋势非常迅猛

  • 主流发行版: 国际上有老牌的 UbuntuSUSE ,国内则有深度(Deepin)中标麒麟红旗等优秀系统,它们在 UI 设计和易用性上已经有了长足进步

  • 现状与挑战: 虽然在政府办公、OEM 预装等领域应用广泛,但客观来看,Linux 桌面在生态丰富度 (尤其是大型游戏和专业生产力工具)以及硬件驱动兼容性上,与 Windows 仍有一定的差距

3. 移动嵌入式领域

你可能没用过 Linux 电脑,但你大概率每天都在用 Linux 内核的产品。

  • Android 内核: 全球最流行的手机操作系统 Android,其底层正是构建在 Linux 内核之上的

  • 嵌入式: 生活设备包括智能手机、平板电脑、智能电视和电子游戏机。在网络基础设施方面,例如思科(Cisco)的路由器、防火墙以及各类智能家居网关设备

  • 定制化优势: Linux 凭借低成本和高可移植性,成为智能硬件厂商的理想解决方案

4. 云计算与大数据

云计算、大数据作为一个基于开源软件的平台,Linux占据了核心优势

  • 天然契合: 云计算平台本质上是基于开源软件构建的,而 Linux 拥有核心的架构优势

  • 企业首选: 据统计,超过 86% 的企业在构建云平台或大数据处理系统时会首选 Linux。它已经基本取代了传统的 Unix,成为分布式计算、容器化(Docker)以及人工智能训练的标准化环境


为什么各大厂商更愿选择 Linux

各大厂家(从 Google、华为到阿里、特斯拉)之所以义无反顾地选择 Linux,不仅仅是因为它免费,更多是因为它在商业和技术上的优势

1. 不会被卡脖子

对于大厂来说,最怕的是供应商锁定

  • 闭源: 使用 Windows 或老牌 Unix,如果你发现一个 Bug 或者想要一个新功能,你只能写邮件给微软或 Oracle 跪求更新。如果对方不理你,或者要收巨额授权费,你毫无办法

  • Linux 优势: 源码就在你手里。华为可以为了自研芯片深度修改内核,阿里可以为了双十一的并发压力自研龙蜥(Anolis)。这种将核心技术命脉握在手中的掌控感,是商业竞争中最重要的底牌

2. 定制化

  • 剪裁能力: 它的内核是模块化的。如果你做的是路由器,你可以把不需要的图形界面、音频驱动全部删掉,只留下几兆大小的核心,运行在极低功耗的芯片上

  • 性能榨取: 厂家可以根据硬件特性(如 ARM 架构或自研 NPU)定制调度算法。这种灵活性是任何闭源系统都无法提供的

3. 安全与稳定

有一个著名的林纳斯定律"只要眼睛足够多,所有的 Bug 都会浮出水面。"

  • 全球众包: Linux 的代码每天都被全球数以万计的顶级工程师审视。大厂发现漏洞后会贡献补丁,这种全球智力众筹的修复速度远超任何一家公司的商业闭源团队

  • 稳定性: Linux 可以做到几年不关机依然流畅运行,这对于金融和云计算等断电即亏损的行业来说是刚需

4. 成本

尽管大型企业资金充裕,但在部署数万乃至数十万台服务器的数据中心时,软件授权费用仍会累积成巨额开支

  • **边际成本趋零:**采用 Linux 系统可免除每台新服务器的微软授权费用。节省的开支可用于采购更高配置的硬件或投入研发领域

5. 生态

现在的技术栈(Docker, Kubernetes, Python, AI 框架)几乎都是原生跑在 Linux 上

  • 默认标准: 对于大厂来说,选择 Linux 意味着拥有最庞大的开发者群体和现成的技术轮子。如果非要搞个自研闭源系统,光是招募开发者和适配生态就能让你破产

厂家们选择 Linux,是因为它提供了一个公平、透明、且效率最高的协作平台。大家在 Linux 这一层停火,共同维护基础设施,然后在应用层面展开差异化竞争

五. 发行版本

Linux 发行版 = Linux 内核 + 软件包 + 包管理器 + 界面 / 配置

如果把 Linux 内核 比作一台汽车的引擎 ,那么发行版就是不同的厂商根据这台引擎组装出来的整车。有的组装成了稳定的重型卡车(服务器版),有的组装成了灵活的赛车(渗透测试版),有的则是舒适的家用轿车(桌面版)

以下是目前主流的 Linux 发行版及其特点:

1. Debian

Debian 以追求极致稳定著称,它的软件包更新策略非常保守,确保每一个进入稳定版的软件都经过了大量的测试

  • 特点: 运行极其稳健,是服务器的首选之一

  • 适用: 系统管理员和高级用户。由于其安装过程和配置相对原始,对新手有一定门槛

  • **包管理器:**APT

2. Ubuntu

Ubuntu 基于 Debian 开发,但它走的是一条用户友好的道路。它侧重于市场的应用,在服务器、云计算、甚至一些运行 Ubuntu Linux 的移动设备上很常见

  • 特点: 界面美观,硬件兼容性极佳,拥有庞大的社区支持

  • 适用: 无论是 Linux 新手、桌面用户还是云开发工程师,Ubuntu 都是最佳的起步选择

  • 包管理器: APT

3. RHEL

这是第一款大获成功的商业化 Linux 发行版,由红帽公司维护

  • 特点: 极其严谨的商业支持和认证体系。红帽提供的 RHCSA / RHCE 认证也是行业内含金量极高的证书

  • 适用: 需要专业技术支持的企业级生产环境

  • 包管理器: DNF(由 YUM 进化而来)

4. CentOS

注: 这里的定位在近年发生了重大变化

  • 经典版(CentOS 7 / 8): 曾是 RHEL 的完全克隆版,去掉了红帽的商标,是追求红帽级稳定性但又不想花钱的小型企业的首选

  • 现状: 现在 CentOS 已转型为 RHEL 的上游。这意味着新功能会先在 CentOS Stream 上跑通,再去 RHEL 发布

  • 包管理器: DNF / YUM

5. Fedora

Fedora 是红帽公司的测试场,许多前沿技术(如最新的内核特性、文件系统)都会先在 Fedora 上试水

  • 特点: 更新速度极快,追求新鲜感

  • 适用: 喜欢尝试最新技术的极客和红帽系的开发者

  • 包管理器: DNF

6. Kali Linux

同样基于 Debian,但 Kali 的强大在于它内置的渗透测试工具包

  • 特点: 开箱即用,预装了数百种用于网络安全审计、无线测试和数据库渗透的专业工具

  • 适用: 网络安全从业者(俗称白帽子)。对于普通用户来说,由于其默认权限较高且并非针对日常办公优化,并不建议作为常用系统

  • 包管理器: APT

对于初涉 Linux 领域的开发者,Ubuntu 无疑是降低上手门槛的首选;若目标是后端开发或系统架构,DebianCentOS Stream 则是行业公认的生产环境标准;而针对网络安全与渗透测试的专业人士,Kali Linux 即是最好的选择

六. Linux 环境搭建与远程登录

核心逻辑很简单:需要一台运行 Linux 的机器,以及一个能从你的 Windows / Mac 连过去操作它的窗口


1. Linux 安装方式

目前最常见的安装方式有两种

**1. 虚拟机:**在现有的电脑里用软件虚拟出一台新电脑

优点: 完全免费,不用联网也能用,可以随时通过快照恢复

缺点: 极度吃内存和 CPU,且没有公网 IP,想搞外网访问比较麻烦

**2. 云服务器:**租用大厂机房里的服务器

优点: 拥有独立公网 IP,随时随地都能连,且不用担心自己电脑配置不够

缺点: 需要花钱(虽然学生优惠很便宜),且必须在有网环境下使用

如果打算长期学习,强烈建议搞一个最基础的云服务器,它能让你提前适应真实的生产环境逻辑


2. 远程登录工具

即便我们购买了云服务器,也不建议直接在控制台黑框里敲代码。建议使用 Xshell 这类专业工具进行远程连接和操作

Xshell 支持多标签管理、自定义配色方案,最重要的是它非常稳定,且支持拖拽上传文件。它就像是连接你本地 Windows 与远程 Linux 之间的一座坚固桥梁

如何使用 Xshell 连接 Linux

通过 Xshell 连接 Linux 系统,需要使用以下命令格式

复制代码
ssh 用户名@主机IP

操作时需要以下三个要点:

  1. 主机 IP: 云服务器的公网 IP 或虚拟机的内网 IP

  2. 用户名: 默认为最高权限管理员 root

  3. 密码: 在重置服务器或安装系统时设置的密码

核心协议:SSH

这是目前最常用的加密网络传输协议。它会在你的电脑和服务器之间建立一个加密隧道,确保你输入的密码和敲下的指令不会被中途拦截窃听

在 Xshell 这种终端窗口中,传统的 Ctrl + C 和 Ctrl + V 是不管用的,因为 Ctrl + C 在 Linux 里代表终止程序

  • **复制:**ctrl + insert

  • **粘贴:**shift + insert

总结

综上所述,Linux 并不仅仅是一个操作系统,更是一套以开源理念为核心、以内核为基础、由丰富软件生态构建而成的完整技术体系。从 Unix 的诞生到 Linux 的发展,再到其在服务器、云计算、移动与嵌入式等领域的广泛应用,我们可以看到,Linux 已经成为现代计算基础设施的重要支柱。

与此同时,Linux 发行版的多样化,使得不同场景下的需求都能够得到良好支持;而通过远程登录工具接入 Linux 环境,则是我们迈入实际操作与开发的重要第一步。

在本篇中,我们主要从宏观角度建立了对 Linux 的整体认知。而在后续的学习中,我们将逐步深入到 Linux 的实际使用与底层机制,包括基本命令、文件系统、进程管理以及网络等核心内容,真正从了解 Linux迈向掌握 Linux

相关推荐
米糕闯编程2 小时前
xshell使用CentOS10 root用户登录,权限问题
java·linux
安科士andxe2 小时前
实操指南|安科士EPON OLT光模块选型、部署与运维全流程解析
运维·服务器·网络
s09071362 小时前
Zynq-7000 PetaLinux 千兆网卡 Link UP 但无法 Ping 通的终极排查与解决(以 KSZ9031 为例)
linux·skew·zynq·ksz9031·ping不通
Joker 0073 小时前
Ubuntu上安装FreeSurfer的详细流程
linux·深度学习·ubuntu
默默前行的虫虫3 小时前
声音触发器。用于自动化场景检测器
运维·自动化
okra-3 小时前
什么是接口?
服务器·前端·网络
想你依然心痛3 小时前
从零开始:Mac/Windows/Linux 三系统开发环境配置完全指南
linux·windows·macos
陳10303 小时前
Linux:第一个系统程序--进度条
linux·运维·服务器
克莱因3583 小时前
Linux 进程(2)服务管理指令
java·linux·服务器