从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++/系统开发者来说,这不仅是学一个工具,更是学习现代操作系统设计思想的最佳范本。

相关推荐
李白你好27 分钟前
Windows 离线 Linux 提权辅助查询工具
linux
Lust Dusk1 小时前
记一次Linux应急响应题目解析
linux·运维·服务器·网络·安全·网络安全
ShineWinsu2 小时前
对于Linux:五种IO模型以及非阻塞IO的详细解析
linux·c++·面试·io·阻塞·非阻塞·fcntl
千千寰宇2 小时前
[Linux/Ollama] Termux : 一款运行在 Android 平台上的开源终端模拟器与 Linux 环境应用、支持在手机上基于Ollama部署LLM
linux
凌肖战2 小时前
TCP网络通信中setsockopt()函数解决地址已占用问题
服务器·网络·tcp/ip
轻揉小乔 真新人2 小时前
使用memc-nginx和srcache-nginx模块构建高效透明的缓存机制
运维·nginx·缓存
Yan_chen6662 小时前
SSH(Secure Shell)安全外壳协议详解
运维·网络协议·ssh
隔窗听雨眠3 小时前
OceanBase旁路导入与自增主键冲突深度解析:原理、排查与解决方案
java·服务器·数据库
lingran__4 小时前
Linux 基础常用指令万字详解(上)|文件目录命令,结合底层原理剖析
linux·运维·服务器·后端·centos·linux基础指令
轻揉小乔 真新人4 小时前
T-SQL查询进阶—理解SQL Server中的锁
服务器·数据库·sql