news 2026/8/19 17:02:57

操作系统的鼻祖unix和linux那点“过去事”,你都清楚吗?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
操作系统的鼻祖unix和linux那点“过去事”,你都清楚吗?

20世纪40-50年代的计算机是用户独占式的,批处理式(一个步骤一个步骤地批量处理)的,低效和不易维护的。

Dartmouth学院与M.I.T(麻省理工学院)发明了分时系统,但它只能运行basic,经历了短暂的商业成功后就消失了。

M.I.T的系统CTSS(兼容分时系统)用途广泛,在科学界取得了巨大成功。

后来Bell实验室,通用电器的研究者和M.I.T合作,开始设计第二代系统MULTICS(多路复用信息与计算服务)。

后来Bell实验室撤出了这个项目,仅留下一位研究人员Ken Thompson。

Ken Thompson决定在一台废弃的PDP-7小型机上自己写一个精简版的MULTICS(当时是使用汇编语言)。这个系统确实能正常运行并能支持他的开发工作。

Bell实验室的另一位研究者Brian Kernighan开玩笑地把它叫做UNICS(单路信息与计算服务)。没想到这个名字留了下来,后来变成了UNIX。

很快Dennis Ritchie加入进来。

UNIX系统有两个重大的发展。

第一,UNIX移植到PDP-11(当时算是容量很大的物理内存256K与2M),同时它有内存保护硬件。支持多个用户。但是它是16位的机器,单个进程只有64k的指令空间和64k的数据空间。

第二,为每台机器重写整个系统显然是一件很无趣的事情,Tompson决定自己设计一个高级语言B重写UNIX,B的种种缺陷,尤其是缺乏数据结构,使得这次尝试不成功。Ritchie设计了C语言,为C写了一个编译器,Tompson和Ritchie一起工作,用C重写了UNIX,从此统治了操作系统编程。

1974年,Tompson和Ritchie发表了一篇UNIX的里程碑的论文,获得了图灵奖。
Bell实验室的母公司AT&T受监管(不允许经营计算机业务),但愿意通过向大学出售UNIX获得适度的费用。

PDP-11正好是几乎所有大学的计算机系选择的计算机,它预装的操作系统使老师和学生望而生畏,UNIX很快填补了这个空白,因为UNIX提供了全部的源代码。

UNIX7是第一个可移植版本,培养了整整一代的学生,他们促进了它的传播。很多公司购买源代码开发自己的UNIX版本,其中有一家年轻小公司(微软),它以XENIX的名义出售版本7好几年了。

可移植的UNIX

移植首先要为新机器写一个C编译器,为新机器的I/O设备,如显示器,打印机,磁盘等编写设备驱动(C写的),但没有两个磁盘按照同样的方式工作,不能移植。导致了一小部分依赖于机器代码,如中断处理或内存管理程序,必须重写,通常使用汇编语言。

Bell实验室的Steve johnson设计并实现了可移植的C编译器,只需要适量的修改工作。

“为什么不把两台机器用电线连接起来”,UNIX网络诞生了。

1984年,AT&T被美国政府拆分后,不久就发布了第一个商业化的UNIX产品-system 3,在一年后被System 4取代。


AT&T最后决定,在1993年把它卖给了。那时候谁拥有UNIX的生意已经无关紧要了,因为主要的计算机公司都已经拥有了其许可。


Berkeley UNIX

加州大学伯克利分校对UNIX 6系统进行了充分的修改。4BSD版本应用了虚拟内存和分页,允许文件名长14个字符,网络的引入。TCP/IP成为Internet的实际标准。

Berkeley 也为UNIX添加了很多其他的应用程序。

标准UNIX

UNIX世界的分裂(没有标准化),阻碍了UNIX的商业成功。

IEEE,POSIX委员会定制了一个1003.1的标准。它规定了每一个符合标准的UNIX系统必须提供的库函数,大多数库函数会引发系统调用,典型的库函数包括open,read和fork。

IEEE委员会并没有采用System 4和BSD的特性的并集作为标准的起始点,而是采用了两者的交集。他们和共同的祖先UNIX7很相似。

MINIX
所有现代的UNIX系统共有的一个特点是它们大又复杂。这于UNIX的初衷背道而驰。

Andrew编写了一个新的类UNIX系统,它足够小,容易理解。它的所有源代码公开,可以用于教学目的。在功能上于UNIX7几乎相同。

MINIX是采用微内核设计的,它的思想是在内核中只提供最少的功能,从而使其可靠和高效。内存管理和文件系统被做为用户进程实现。内核只负责进程间的信息传递

Linux

一位芬兰的学生Linus,决定编写另外一个类UNIX系统,称为linux。它是一个整体式设计,将整个操作系统包含在内核中,非MINIX的微内核设计。

Linux是linus对MINIX的一次重写,当时,他也只能得到MINIX的系统源码了。

当加入了虚拟内存这样一个更加复杂的文件系统后linux大小急速增长。


linux和UNIX之间还是有一个很明显的不同,linux利用了gcc编译器的很多特性,需要做大量的工作,才使linux能够被ANSI标准C编译器编译。

到这个时候,linux已经和UNIX充分兼容,大量的UNIX软件被移植到了linux上。

linux的一个特征就是它的商业模式:它是自由软件。但是它的这个许可GPL,比微软windows的许可更长,主要的限制是以linux内核为基础开发的产品,其源码必须要么和产品一起发送,要么可以随意获取

很多linux用户放弃了互联网上免费分发的版本,转而购买众多商业公司的版本。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/19 16:55:12

Isaac Lab仿真数据录制与回放完整指南:3种数据收集方式全解析

Isaac Lab仿真数据录制与回放完整指南:3种数据收集方式全解析 【免费下载链接】IsaacLab Unified framework for robot learning built on NVIDIA Isaac Sim 项目地址: https://gitcode.com/GitHub_Trending/is/IsaacLab 数据是机器人学习的燃料,…

作者头像 李华
网站建设 2026/8/19 16:36:42

Android 设备投屏神器 QtScrcpy

简述 QtScrcpy 可以通过 USB / 网络连接 Android 设备,并进行显示和控制。无需root权限。 同时支持 GNU/Linux ,Windows 和 MacOS 三大主流桌面平台。 它专注于: 精致 (仅显示设备屏幕)性能 (30~60fps)质量 (19201080以上)低延迟 (35~70ms)快速启动 …

作者头像 李华
网站建设 2026/8/19 16:36:23

机器人关节角度传感器:从增量到绝对编码的技术原理与选型指南

1. 项目概述:从“感觉”到“知道”的关节进化 在机器人领域,关节就是它的“筋骨”。要让这些筋骨灵活、精准地运动,核心在于关节必须“知道”自己当前处于什么位置。这个“知道”的过程,就依赖于我们今天要深入探讨的核心部件——…

作者头像 李华
网站建设 2026/8/19 16:36:19

MyBatis 高级映射与延迟加载完全指南

MyBatis 高级映射与延迟加载完全指南 一、概述 在实际企业级开发中,数据库表之间往往存在复杂的关联关系(一对一、一对多)。MyBatis 作为优秀的持久层框架,通过 resultMap 的高级映射 功能,提供了优雅的解决方案来处…

作者头像 李华
网站建设 2026/8/19 16:32:39

手机电视接着玩PC游戏:Sunshine免费自托管串流服务器完整体验

手机电视接着玩PC游戏:Sunshine免费自托管串流服务器完整体验 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 周五晚上,你想窝在客厅沙发继续《博德之门3》…

作者头像 李华