《Linux系统编程之入门基础》【Linux的前世今生】

《Linux系统编程之入门基础》【Linux的前世今生】

【Linux的前世今生】目录

hi ~,小伙伴们大家好啊!(ノ≧∀≦)ノ
叮叮叮 ~鼠鼠来晚了吗?(・ω・)ノ,啊让你久等了!哈哈,那真是太棒了!(≧▽≦)
哦不是,鼠鼠的意思是,真的很抱歉让你久等了,不过鼠鼠又回来啦 ~╰(✿´∀`✿)╯
啊,什么你说鼠鼠是如约而至!天呐,你难道就是……啊,好幸福啊!!!(゚∀゚)☆
那就让我们在10月10日这天开启一个不知道什么时候才会完结的Linux之旅吧。(ง •̀_•́)ง🐧

---------------前言---------------

一句话概括Linux到底是个什么东西?

Linux:是一个 开源免费类Unix 的操作系统内核,由 林纳斯·托瓦兹(Linus Torvalds)1991 年在芬兰赫尔辛基大学首次发布。
“类Unix”指的是:在核心行为、功能逻辑、用户交互方式上高度贴近原始 Unix 系统,但完全未使用 Unix 源代码,通过独立开发实现兼容效果的操作系统。它不仅是全球最重要的服务器操作系统还广泛应用于个人电脑、嵌入式设备、超级计算机和移动设备(如:Android)等领域

🐧(Linux 吉祥物:企鹅 Tux)
在这里插入图片描述

如何获取Linux的内核源代码?

上面我们提到了Linux是开源免费的,这也就意味着我们可以免费的获取到Linux的源代码。

那问题来了:我们应该怎么获取Linux的源代码呢?

获取Linux内核源代码的官方网站The Linux Kernel Archives
Linux 内核的版本名称(版本号命名规则)在不同发展阶段有明显差异

主要可分为以下几个时期:


一、早期版本(0.01 - 1.0,1991-1994)

这是 Linux 内核的初创阶段,版本号以简单的递增方式命名,从最初的 0.01 版本开始,逐步迭代到 0.10、0.11…… 直到 1994 年发布 1.0 版本。此阶段版本号仅体现开发进度,无复杂规则,重点是内核的基础功能搭建

二、1.0 - 2.6 版本(1994-2004)

版本号采用“A.B.C” 三段式结构:
A(主版本号):仅在 kernel 发生 “重大架构级变化” 时更新(如:1.0→2.0,1996 年)B(次版本号):核心区分 “稳定版”“开发版”偶数 B 稳定版:面向生产环境,仅修复 bug 和更新驱动(如:2.4、2.6)奇数 B 开发版:用于测试新特性,不稳定(如:2.3、2.5)C(修订号):记录小幅度更新(如:bug 修复安全补丁驱动新增等),随更新递增(如:2.4.1、2.6.32)

三、2.6 之后(2004 年至今):时间驱动的版本命名

2004 年 2.6.0 发布后,内核放弃了 “奇数开发 / 偶数稳定” 的规则,改为按时间周期更新

版本号结构进一步简化:2.6.x 系列(2004-2011):保留 “2.6” 作为前两位,第三位 x 随每次更新递增(如:2.6.1、2.6.39)不再区分开发/稳定,而是通过 “长期支持版(LTS)” 标记适合长期使用的版本(如:2.6.32 LTS)3.0 及以后(2011 年至今):版本号简化为“A.B.C”:A 和 B 合并为 “主版本号”,随大版本迭代递增(如:3.0→4.0→5.0→6.0)C 为修订号,记录小更新(如:6.1.1)稳定性通过 “LTS” 标记(如:5.15 LTS、6.1 LTS,支持周期通常为 5-10 年)

---------------前世---------------

1980 年代:不自由的土壤,催生反抗的种子

Unix的诞生与统治 (1969 - 1980s)

故事要从 1969 年讲起,贝尔实验室的 肯·汤普森(Ken Thompson)丹尼斯·里奇(Dennis Ritchie) 为了解决当时大型机系统的复杂与低效,在一台闲置的 PDP-7 小型机上开发了Unix操作系统Unix的设计理念 ——“简洁模块化可移植(用 C 语言而非汇编编写,首次实现跨硬件移植)和多用户多任务特性”—— 彻底改变了操作系统的发展方向1970 年代,贝尔实验室的母公司 AT&T 因反垄断法限制不得进入计算机市场,Unix 被免费授权给高校和研究机构,逐渐形成了丰富的生态(如:加州大学伯克利分校的 BSD 分支)1980 年代 AT&T 解除限制后,开始对 Unix 收费并收紧授权,导致商业版本(如:Sun 的 Solaris)与开源分支(如:BSD)分裂,自由使用和修改 Unix 的时代结束
在这里插入图片描述

GNU的雄心与壮志 (1983 - 1991)

这一背景催生了 自由软件运动,1983年,麻省理工学院(MIT)的理查德·斯托曼(Richard Stallman)发起了GNU项目,目标是开发一个 完全自由类Unix 的操作系统。他的动机是反对专有软件的封闭性,倡导软件自由(自由使用学习修改分发)GNU项目开发了大量高质量的、自由的开源工具和组件:GCC编译器、Glibc库、Bash shell命令行解释器、Emacs文本编辑器、以及无数核心工具(ls, cp, grep, sed, awk等)到1990年代初,GNU项目几乎拥有了一个完整操作系统所需的所有部件——除了最关键的核心:操作系统内核本身(操作系统的核心,负责管理硬件资源),因为他们的Hurd内核开发进展缓慢且复杂

Minix的启发与局限 (1987 - 1991)

1987 年,荷兰的阿姆斯特丹自由大学教授安德鲁·塔能鲍姆为了教学目的开发了Minix操作系统,一个精简的类Unix的操作系统,能在当时流行的 IBM PC 上运行。Minix 的源码是开放的(但版权受限,不允许自由修改和再分发)Minix在计算机科学教育中非常流行,吸引了大量爱好者,其中就包括一位芬兰赫尔辛基大学的学生——林纳斯·托瓦兹
在这里插入图片描述

---------------诞生---------------

1991 年:一封邮件,一颗Linux种子落地

一个学生的爱好 (1991)

1991 年,芬兰赫尔辛基大学的学生林纳斯・托瓦兹(Linus Torvalds) 对 Minix 非常着迷。他渴望在自己的 386 PC 上获得一个更强大更自由的类 Unix 体验,于是他想为 Minix 添加新功能,却受制于其严格的许可条款(作者安德鲁·塔能鲍姆不允许用户自由修改)失望之余,他决定干脆自己从头写一个新的操作系统内核

那个著名的公告 (1991年8月25日)

1991年夏天,林纳斯开始动手编写操作系统的内核。8月25日,林纳斯在Minix新闻组里发了封 “求助信”,语气有点腼腆:“各位 Minix 用户,我正在写一个免费的操作系统,只是个人爱好,不会像 GNU 那么庞大…… 现在已经能运行 bash(GNU 的 shell)和 gcc 了,需要反馈。有兴趣的可以留邮箱,我发源码给你们。”

这个帖子标志着一个新时代的开始,他发布了最初非常简陋的0.01版本(甚至不能独立启动,需要依赖Minix环境)

这个名字的由来

林纳斯最初想给自己的项目起名叫 “Freax” (Free + Freak + Unix/X) ---> 中文:怪物负责托管早期代码的 FTP 服务器管理员阿里·莱姆克觉得这个名字不好听,自作主张在服务器上创建了一个名为 linux (取自 Linus + Minux /Un ix) 的目录来存放代码林纳斯一开始不喜欢,觉得 “太自大”,但最终还是接受了这个更响亮的名字——Linux就此诞生

---------------今生---------------

第一章:星星之火,可以燎原 (1991 - 1992)

开源协作:早期的互联网(Usenet 新闻组、邮件列表)成为全球协作的催化剂。

林纳斯开放了开发过程:任何人都可以阅读代码任何人都可以报告 Bug任何人都可以提交补丁(Patch)

林纳斯扮演着“仁慈的独裁者”,负责审阅和合并高质量的代码。
这种前所未有的 “集市”开发模式爆发出惊人的能量。从最初只有林纳斯一人维护,到如今全球数万开发者贡献代码,Linux 内核以令人目眩的速度发展和成熟。

GPL许可证的抉择:早期版本的 Linux 许可证比较宽松,但在 1992 年初,林纳斯做出了一个关键性决定:采用 GNU GPL(GNU 通用公共许可证)许可证发布 Linux 内核。

这意味着:Linux 内核本身是彻底自由的任何基于 GPL 代码修改或衍生的作品也必须以 GPL 发布(Copyleft 精神)

GNU + Linux = 完整的操作系统:这个决定产生了神奇的化学反应。GNU 项目:拥有几乎所有操作系统组件(编译器、工具、库、Shell),唯独缺少一个成熟的内核Linux 项目:提供了一个功能日益完善、性能不错且采用 GPL 的自由内核

完美结合:将 GNU 的丰富组件与 Linux 内核结合起来,一个 完整的自由的类Unix 的操作系统 终于成为了现实!

虽然严格来说应该叫 GNU/Linux 系统(斯托曼一直坚持),但“Linux” 这个名字因其简洁和内核的核心地位,最终被更广泛地接受和传播。
Linux 的爆发源于两个关键选择开源协作 + 兼容GNU工具

Linux 的成功不仅是技术的胜利,更代表了开源协作模式的可行性。林纳斯曾说:“开源的优势在于,有足够多的眼睛,所有漏洞都无处遁形。”
在这里插入图片描述

第二章:发行版的诞生与商业的萌芽 (1993 - 1990s 末)

从内核到系统:对于普通用户而言,仅有操作系统内核和 GNU 工具是远远不够的。毕竟,没有图形界面,安装系统时还得手动敲入几十行命令,甚至连鼠标操作都不支持而用户真正需要的是一个易于安装配置管理完整系统包并且这个系统包要包含常用的软件

发行版登场:不同组织将 Linux 内核与软件打包,形成 发行版(Distros)发行版的差异主要体现在这些 组件的选择定制化程度 以及 目标用户群体 上。

Linux 发行版=

Linux 内核 + GNU 基础工具 + 软件包管理 + 桌面/服务器配置 + 社区/商业支持1993年:一个叫Patrick Volkerding的人把 Linux内核和 GNU工具打包,做成了第一个 “发行版” Slackware,普通人终于不用从零编译代码了同年Debian 发行版诞生,由 Ian Murdock 发起,他搞了套 “社区投票” 机制,谁来维护、加什么功能,大家说了算,成了开源治理的典范1994年:Red HatMarc EwingBob Young 创立。他们不仅打包发行版 (Red Hat Linux),更重要的是开始提供商业支持和服务,探索开源软件的商业模式1994年:SUSE 在德国成立 (最初基于 Slackware)2004年Ubuntu 发布(基于 Debian,主打易用性)…………

许多发行版并非完全独立开发,而是基于某个 “母版” 衍生,形成家族体系。

最主要的两大分支是:
分支核心代表发行版软件包管理工具特点
Debian 系DebianUbuntu
Linux MintKali
APT(.deb 包)软件库丰富
用户基数大
Red Hat 系RHELCentOS
FedoraAlmaLinux
RPM(.rpm 包)企业级支持完善
稳定性强
在这里插入图片描述
到 1990 年代末,互联网爆发,Linux 因为 “免费稳定能跑在廉价服务器上”,成了网站的首选。雅虎、亚马逊都悄悄换成了 Linux谷歌早期的服务器更是塞满了跑 Linux 的廉价电脑

“集市”模式的胜利:Linux 的发展模式彻底颠覆了传统闭源软件的 “大教堂”模式(由少数精英在内部秘密开发)。
这种开放协作快速迭代“集市”模式被证明在复杂系统开发中具有惊人的效率和创新能力。

第三章:企业级认可与互联网狂潮 (1990s 末 - 2000s 初)

巨头的拥抱: 许多闭源软件公司开始拥抱开源模式,成立了“开放源代码促进会”,开源概念得到更广泛传播和商业认可。1998年网景公司 (Netscape) 在微软浏览器的强大竞争压力下,宣布将其 Navigator 浏览器的源代码开源(Mozilla 项目),引发巨大轰动,让“开源”概念首次大规模进入商业视野同年“开放源代码促进会” (OSI) 成立,试图用更商业友好的术语推广开源理念1999年:多家重量级公司纷纷宣布支持 Linux:IBM:宣布将投入大量资源支持 Linux 在其服务器上的应用Oracle:宣布将其旗舰数据库产品移植到 Linux, Oracle 的埃里森说:“Linux 比 Windows 可靠 10 倍。”英特尔、惠普 等硬件巨头也加入支持行列,巨头们的加入,让 Linux 有了钱搞研发,支持更多硬件,连银行、电信这些 “保守派” 也开始用它跑核心业务2000年:震撼世界的赌注:IBM 宣布砸 10 亿美元支持 Linux! 这是对企业级 Linux 应用的巨大背书,彻底打消了市场的疑虑要知道 IBM 自己就有 Unix 系统(AIX),这波操作让业界懵了,但 IBM 的算盘很精:Linux 能帮它卖服务器硬件,还能对抗微软的垄断,有时候开源并非单纯的技术共享,更像是巨头资本之间博弈的重要手段

LAMP 栈的崛起:Linux 凭借其稳定性、高性能和高性价比,成为运行互联网基础设施的理想平台。它与 Apache (Web服务器)、MySQL (数据库)、PHP/Perl/Python (动态网页脚本语言) 组成了黄金搭档——LAMP 栈,成为构建网站Web应用的基石无数初创公司和互联网巨头(如:Google 早期的基础设施)都建立在 Linux 之上

服务器市场的攻城略地: Linux 开始在企业服务器市场(尤其是 Web 服务器、文件服务器、数据库服务器)快速取代昂贵的 Unix 专有系统(如:Solaris, AIX, HP-UX)和不太可靠的 Windows NT 服务器,市场份额节节攀升。

这时候的林纳斯,已经从学生变成了 “Linux 教皇”。他搞了套 “独裁式民主” 管理内核:所有人都能提代码,但最终拍板权在他手里。

他脾气直,看到烂代码会骂 “这是我见过最蠢的设计”,但没人不服 —— 因为他只认代码质量,不认公司大小。

有次英特尔的工程师提交代码,被他怼回去:“别拿你们公司名头压我,代码不行就是不行。”

第四章:开枝散叶,无处不在 (2000s - 至今)

移动霸主:Android (2008 - )2005 年,谷歌收购了成立仅 22 个月的 Android Inc.2007 年,谷歌联合多家厂商成立开放手机联盟 (OHA)2008 年,第一款 Android 手机 HTC Dream (G1) 发布。基于 Linux 内核 的 Android 系统凭借其开放性灵活性谷歌服务的整合,迅速席卷全球智能手机市场,成为当之无愧的霸主。

这是 Linux 在终端用户设备上最广泛、最成功的应用(尽管用户通常意识不到)



云计算与容器化的基石 (2010s - )云计算:亚马逊 AWS、微软 Azure、谷歌云平台 (GCP)、阿里云等全球主流云服务商的虚拟机服务底层基础设施,绝大部分都运行在 Linux 上,Linux 是云计算的隐形骨架容器革命Docker (2013) 的出现彻底改变了应用打包部署的方式其核心技术(命名空间 Namespaces、控制组 Cgroups)直接依赖于 Linux 内核 的特性容器编排之王 Kubernetes (K8s, 2014) 更是构建管理大规模分布式应用的行业标准它们都运行在 Linux 集群之上,Linux 是云原生时代的绝对核心

超级计算机的心脏:自 1990 年代末开始,Linux 逐渐统治了超级计算机领域近二十年来,全球 TOP500 超级计算机榜单上,超过 90% 甚至 100% 的系统都运行着 Linux

嵌入式的世界: Linux 凭借其可裁剪性稳定性强大的网络功能丰富的驱动支持,广泛应用于:路由器、交换机等网络设备智能电视、机顶盒等消费电子汽车信息娱乐系统、车载控制系统工业自动化控制器、机器人物联网 (IoT) 网关和设备智能手表、电子阅读器………………

Linux 已经嵌入到我们数字生活的方方面面。

桌面的坚持与演进: Linux 桌面环境(如:GNOME, KDE Plasma)在易用性、美观度和软件生态上取得了巨大进步。Ubuntu, Fedora, Linux Mint 等发行版为普通用户提供了良好的选择虽然市场份额仍远小于 Windows 和 macOS,但在开发者、系统管理员、隐私/安全关注者、教育机构以及特定地区(如:一些欧洲国家政府部门)中拥有稳定且忠实的用户群Valve 的 Steam Deck 掌机运行基于 Arch Linux 的 SteamOS,也为 Linux 游戏生态带来了新活力

如今的 Linux 内核,已经有超过 3000 万行代码,由全球数万开发者共同维护。林纳斯早就不写代码了,转而盯着 “代码质量”,他说:“我最大的贡献不是写了 Linux,而是建立了一套让大家能一起把它做好的规则。”

最终章:传奇仍在继续

今天(2025年),Linux 的故事远未结束:内核长青: 林纳斯·托瓦兹仍然是 Linux 内核开发的最终仲裁者,一个庞大而活跃的全球开发者社区,在严格的代码审查流程下:持续不断地推动内核演进支持新硬件(AI加速器、新架构)、提升性能增强安全(如:eBPF 技术)和完善功能统治性地位:在服务器、云计算、超级计算、移动设备(Android)、嵌入式系统领域,Linux 已确立了无可争议的统治性地位开源协作的典范:Linux 是历史上最大、最成功的开源协作项目之一,它证明了开放、透明、社区驱动的开发模式能够创造出世界级、改变世界的软件。无处不在的隐形基石:从你口袋里的手机,到你访问的网站背后的服务器,再到街头的智能设备,甚至遥远的太空探测器,Linux 作为数字世界的隐形基石,默默地支撑着我们的现代生活。

---------------结语---------------

总结:Linux 的历史是一个现代科技神话。它始于一个21岁学生解决个人需求的“小爱好”,在互联网的东风和自由软件精神的感召下,通过全球开发者社区的智慧和热情,奇迹般地成长为一个驱动全球信息基础设施的巨人它挑战了商业软件的垄断,证明了协作与开放的力量,并深刻地重塑了整个计算产业的面貌

这个故事关于技术,更关于人、理想和可能性。

Read more

【开源发布】FinchBot (雀翎) — 当 AI 说“让我想办法“,而不是“我不会“(已获Gitee官方推荐)

【开源发布】FinchBot (雀翎) — 当 AI 说“让我想办法“,而不是“我不会“(已获Gitee官方推荐)

玄同 765 大语言模型 (LLM) 开发工程师 | 中国传媒大学 · 数字媒体技术(智能交互与游戏设计) ZEEKLOG · 个人主页 | GitHub · Follow 关于作者 * 深耕领域:大语言模型开发 / RAG 知识库 / AI Agent 落地 / 模型微调 * 技术栈:Python | RAG (LangChain / Dify + Milvus) | FastAPI + Docker * 工程能力:专注模型工程化部署、知识库构建与优化,擅长全流程解决方案 「让 AI 交互更智能,让技术落地更高效」 欢迎技术探讨与项目合作,解锁大模型与智能交互的无限可能! FinchBot (雀翎) — 当 AI 说"让我想办法"而不是"我不会&

By Ne0inhk
AI 开发必用的4个skills组合,用来流畅掌控AI开发流程 ,灵活控制AI(opencode skills)

AI 开发必用的4个skills组合,用来流畅掌控AI开发流程 ,灵活控制AI(opencode skills)

skills 一种技能增强器。 skills 可以理解为升级版的提示词,它的文件记录了某个skill(技能)的元信息,就是描述这个skills的名称等信息, 另外它的文件中还记录了skills的技能实现步骤。 以下4个skills在AI项目开发中,我认为必不可缺一。 这4个skills的引入,可更为方便我们去介入AI,控制AI,给AI制定边界。 我会用一个音乐机器人项目开发来介绍这4个skills,如何介入AI开发流程,如何行云流水的控制AI。 指令式 控制AI 开发流程的主控调度器:有4个SIKLLS 在我的项目中.opencode目录中存在4个skills, 4个skills技能结合和.opencode目录同级的AGNETS.md文档,AGNETS.md是主控配置文件, 是AI 开发流程的主控调度器,负责协调三个专业技能包(毒蛇产品经理、UI设计师、全栈开发工程师、ui-ux-pro-max) ui-ux-pro-max技能包,我120%的推荐,减少了不少UI配色的塑料感,可在文末看我此次,用技能包开发的UI界面,做一个效果对比。 skills技能指令: 我

By Ne0inhk
LangChain实战:工具调用+结构化输出,让AI从“聊天“变“干活“

LangChain实战:工具调用+结构化输出,让AI从“聊天“变“干活“

文章目录 * 工具调用(Tool Calling) * 1.Tool创建的三种方式 * 1.1. **直接用 `@tool` 装饰函数** * 1.2. **用 `@tool` + 自定义参数结构(Pydantic)** * 1.3. **继承 `BaseTool` 写类** * 2. 本地自定义工具 * 2.1 定义工具 * 2.2 绑定工具到模型 * 2.3 工具调用流程 * 2.4 AI 响应结构解析 * 3. 第三方工具集成(Tavily搜索([https://www.tavily.com/](https://www.tavily.com/))) * 3.1

By Ne0inhk
2026年Gemini学生认证实战指南:如何将免费Pro权限转化为AI求职核武器!

2026年Gemini学生认证实战指南:如何将免费Pro权限转化为AI求职核武器!

“AI时代的求职差距,不在于是否拥有工具,而在于能否用工具创造可验证的价值——Gemini学生计划,正是给学生的‘低门槛实战入场券’” 本文核心:解读Gemini学生计划的职业价值+AI岗位能力要求+3大实战方向,帮你把免费福利转化为职场硬实力! 💡 为什么2026年,Gemini学生计划成了AI求职的“隐形加分项”? 梳理近半年大厂AI岗位招聘需求、面试反馈,发现一个明确信号:企业对“会用大模型解决问题”的候选人需求激增,而Gemini学生计划恰好提供了“零成本实战”的机会: ✅ 腾讯AILab 岗位要求:“熟悉主流大模型API调用(Gemini/Claude等优先)” ✅ 字节智能创作团队 面试题:“如何用大模型优化内容生产效率?请举例说明” ✅ 某独角兽CTO分享:“能展示大模型实战项目的候选人,比仅列‘熟悉AI工具’的通过率高2倍” ✅ LinkedIn 2026职业趋势报告:“大模型应用能力已成为AI相关岗位的‘基础门槛’,而非‘加分项’” 📌 关键洞察: 企业关注的从来不是“你是否通过了Gemini认证”,而是你是否能借助Gemini这类工具,解决真实业务场景

By Ne0inhk