从Multics到Linux:操作系统的自由之路

讲Linux指令和权限之前,有必要知道这东西从哪来、为什么长成这样。篇幅不长,只挑关键节点和底层脉络。

目录

UNIX:一切的起点

Linux:始于一个"爱好"

GPL与开源:不只是免费

发行版:Linux的世界版图

企业应用:Linux统治的后端

操作系统在做什么?


UNIX:一切的起点

1968年,Bell Labs、GE和MIT搞了个Multics操作系统,目标是复杂的分时多任务。项目后来停了,但参与其中的Ken Thompson和Dennis Ritchie没闲着。69-70年,他们在Multics的基础上写出了一个更精简的系统------UNIX。

最早的UNIX免费给大学使用,加州大学伯克利分校在70年代中后期搞出了BSD版本,加入了TCP/IP协议栈(后来成了互联网的基石)和很多新特性。另一边,AT&T的商业版本System V也在演进。两条主流分支并行发展,标准之争持续了十年。

1991年,AT&T的UNIX系统实验室综合各方成果发布了System V Release 4。而此时,一个芬兰大学生正准备把UNIX带到个人电脑上。

Linux:始于一个"爱好"

1991年10月5日,Linus Torvalds在Usenet新闻组里发帖,说他正在写一个类似于Minix的小操作系统,只是一个"爱好",不会搞大。这个版本号是0.02,能跑bash和gcc。很快,全世界的程序员开始聚集、贡献代码,版本号从0.02跳到0.95,最终在1994年发布1.0正式版。

Linux严格说只是内核(kernel)。把内核和GNU的编译器、shell、库等用户空间工具组合在一起,才构成一个完整的操作系统。今天大家说"装个Linux",指的是某个发行版,而不是裸内核。

GPL与开源:不只是免费

Linux基于GNU通用公共许可证(GPL)发布。GPL的精髓在于:你可以自由使用、修改、再发布,但如果你分发了二进制的衍生作品,就必须同时开源其源代码。这种"传染性"让Linux和大量上游软件始终保持开放。只要遵循GPL,任何个人和机构都能从源码开始构建自己的系统。

由此,Linux也成了开源运动的代名词。它的成长彻底证明了大规模分布式协作可以产出工业级品质的基础设施。

发行版:Linux的世界版图

内核加用户态软件打包成可安装的系统就是发行版。几个主流分支:

  • Debian:极致稳定,服务器首选,对新手不太友好。

  • Ubuntu:基于Debian,易用性强,桌面、服务器、云都有份额。

  • Red Hat Enterprise Linux (RHEL):商业企业版,背后有认证体系和付费支持。

  • CentOS:RHEL的社区重建版,免费且二进制兼容,曾是很多公司的默认选择(注:CentOS已流变更替,但定位思路不变)。

  • Fedora:Red Hat的前沿试验场,想尝鲜新技术的可以玩。

  • Kali Linux:基于Debian,集成大量渗透测试工具,安全领域标配。

选择哪个取决于应用场景------服务器求稳,桌面求易用,安全测试用专用版。

企业应用:Linux统治的后端

今天Linux在服务器领域的市场份额超过75%,政府、金融、电信的核心系统大量运行在Linux上。

云计算和大数据时代,Linux更是占据核心位置。据Linux基金会统计,86%的企业使用Linux构建云平台,它已经实质取代Unix成为云时代的主力OS。

移动端更不用说------Android的内核就是Linux。路由器、智能电视、车机、工控设备,大量的嵌入式系统也在用定制版Linux。低成本、可深度定制、良好的移植性,这些特性让它几乎无处不在。

操作系统在做什么?

一句话:让计算机更好用。CPU只会机械地执行指令,内存是一片平坦的地址空间,硬盘是一堆扇区。操作系统在这一堆硬件资源上构建出进程、文件、虚拟内存等抽象,让程序员能在一个可理解、可控制的模型下工作,而不必直面硬件细节。

Linux的开放特性,意味着你可以看到这些抽象的实现源码。对C++/系统开发者来说,这不仅是学一个工具,更是学习现代操作系统设计思想的最佳范本。

相关推荐
wdfk_prog11 小时前
嵌入式面试真题第 10 题:高优化等级下共享状态可见性、内存模型与系统级同步设计
java·linux·开发语言·面试·职场和发展·架构·c
x-cmd13 小时前
Mac 涨价后,本地 AI 还能千元入门吗?
linux·人工智能·macos·ai·agent·amd·本地ai入门
Sirius Wu14 小时前
OpenClaw Skill:Matplotlib 可视化技能 + 沙箱双层隔离完整详解
服务器·网络·人工智能·安全·ai·架构·aigc
J-Tony1114 小时前
【Redis】 Redis 是单线程还是多线程
服务器·数据库·mysql
AOwhisky15 小时前
下一代容器来了?Docker 宣布原生支持 WebAssembly
java·运维·docker·容器·rust·wasm
YYYing.19 小时前
【C++大型项目之高性能服务器框架 (七) 】Socket与ByteArray模块
服务器·c++·后端·框架·高性能·c/c++
摇滚侠19 小时前
Linux 零基础教程 09、11、77
linux·运维·服务器
Lottie202619 小时前
电商自动化提质增效:API接口落地的核心价值与实战用法
运维·自动化
Hardworking66621 小时前
第6章 数据工程
运维·服务器·数据库·数据工程
jieyucx21 小时前
Docker 入门第六阶段:综合实战项目
运维·docker·容器