Linux产生背景
By francis_hao Oct 26,2016
很久很久以前,大概在1965年左右,由贝尔实验室(Bell)、麻省理工学院(MIT)及通用电气公司(GE)共同发起了一个叫做Multics的项目,目的是充分压榨当时的计算机的资源,期望能实现同时提供三百台以上的终端连接。项目本身非常复杂,看不到希望,于是贝尔实验室在1969年左右退出了该项目。(项目最终是成功了,但是这不是重点)
退出项目的贝尔实验室的一个成员,Ken Thompson。时间就稍稍的充裕了一点,于是想玩玩"太空旅游"的游戏消遣下,但为了玩的更舒服,自己就移植了这个游戏到PDP-7上,当然这需要一个操作系统,因为有之前项目的经历,很快就做好了一个简化版的系统Unics,虽然他的目的在游戏上,但是这个系统却在实验室内部广为流传开了。
因为Unics系统是汇编写的,想要再移植到其他机器上很不方便,Thompson和他的同事Ritchie就想用高级语言来重写以下,但是当时最合适的只有B语言,而编译出来的性能并不能满足他们,于是Dennis Ritchie将B语言重新改写成了C语言,并用C语言编写了了Unics内核,改名为UNIX,1973年,UNIX和C语言出现了。
在这之后,UNIX和C首先风靡学术界,其中加州伯克利大学(Berkeley)的Bill Joy,对源码进行了移植并添加了一些工具软件和编译程序,并命名为Berkeley Software Distribution(BSD),Bill Joy也是后来Sun这家公司的创办者之一。除此之外,IBM也有自己的AIX,以及HP,DEC都开发了适合自己机器UNIX的版本
贝尔实验室是隶属于美国电信大厂AT&T公司的,它们的系统名称是System V,因为商业上的考虑,在1979年发行的第七版UNIX收回了版权,并且特别提出"不可对学生提供源码"。因此UNIX的发展到此也告一段落了。
目前被成为纯种的UNIX就是System V和BSD这两套。
时间来到了1984年,同样是伟大的一年,荷兰的一位大学教授为了能在课上教授UNIX并且避免版权的争议,于是自己开始编写一个类UNIX系统Minix,用了两年多的时间才得以完成。同时,在这一年Richard Mathew Stallman(史托曼)发起了GNU项目,并成立了自由软件基金会(Free Software Foundation,FSF),为避免GNU开发的自由软件被其他人利用而成为专利软件,发布了通用公共许可证(General Public License,GPL),GPL强调软件可以自由的地获取、复制、修改与再发行,并继承GPL的授权模式,不可仅单纯销售其软件,也不可修改软件版权。当时GNU开发的几个重要软件
Emacs
GNU C(GCC)
GNU C Library(GLIBC)
Bash shell
1991年, Linus Torvalds在学习了Minix后,觉得Minix还是有一些不足,于是参考Minix自己写了一个操作系统,放在了网上并在BBS上贴了消息,大家可以自由的下载使用,由于一些软件的兼容性问题,他按照POSIX标准修改了部分内核代码,使得linux兼容了UNIX。Linux不久也加入了GNU,作为GNU项目的内核,我们平时所说的Linux操作系统应该是GNU/Linux。(感觉GNU好可怜,风头都被Linux抢了)
目前,GNU/Linux几个比较重要的发行版
Red Hat、Fedora、Mandriva、SuSE、Debian、Slackware、Gentoo、Ubuntu、CentOS
GNU/Linux发布时间线(GNU/Linux Distribution Timeline)可以到这里去看:http://futurist.se/gldt/
截取部分
参考
鸟哥 《鸟哥的Linux私房菜基础学习篇》人民邮电出版社,2010
Linux产生背景的更多相关文章
- 『Linux基础 - 2 』操作系统,Linux背景知识和Ubuntu操作系统安装
这篇笔记记录了以下几个知识点: 1.目前常见的操作系统及分类,虚拟机 2.Linux操作系统背景知识,Windows和Linux两个操作系统的对比 3.在虚拟机中安装Ubuntu系统的详细步骤 OS( ...
- Linux常用命令[转]
在博客的草稿箱里一直有一份"Linux命令"的草稿,记录了一些常用的Linux命令,用于需要的时候查询.由于是出于个人使用的目的,所以这个清单并不完整.今天整理了一下这个清单,调整 ...
- Linux进程间通信
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们在Linux信号基础中已经说明,信号可以看作一种粗糙的进程间通信(IPC, i ...
- Linux用户与“最小权限”原则
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 作为一个Linux用户来说,我们并不需要特别关心下面的机制.但是,当我们去编写一个 ...
- Linux文件管理相关命令
Linux文件管理相关命令 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在了解了Linux文件管理背景知识之后, 我们可以 ...
- Linux命令行与命令
Linux命令行与命令 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Linux的命令是很重要的工具,也往往是初学者最大的瓶 ...
- Linux 的多线程编程的高效开发经验(转)
http://www.ibm.com/developerworks/cn/linux/l-cn-mthreadps/ 背景 Linux 平台上的多线程程序开发相对应其他平台(比如 Windows)的多 ...
- Linux 的多线程编程的高效开发经验
http://www.ibm.com/developerworks/cn/linux/l-cn-mthreadps/ 背景 Linux 平台上的多线程程序开发相对应其他平台(比如 Windows)的多 ...
- (转)Linux进程间通信
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 谢谢nonoob纠错 我们在Linux信号基础中已经说明,信号可以看作一种粗糙的进 ...
随机推荐
- MR执行流程
1.Map任务处理 1.1 读取HDFS中的文件.每一行解析成一个<k,v>.每一个键值对调用一次map函数. <0,hello you> <10,hello me& ...
- kivy学习三:打包成window可执行文件
根据官方文档写出如下内容,主要是为了记录自己遇到的坑! 一.打开命令行 1.win+r 2.输入CMD(没错,就是那个黑窗口就是命令行) 二.新建一个新文件夹,用来存放我们打包成的文件(这里一定要注意 ...
- print(__file__)返回<encoding error>的问题
今天写了一下代码,本来是想得到当前文件的上面三层的目录的,结果返回的却是错误 import os import sys print(__file__) # 得到上上层目录的路径之后,加入到默认的环境变 ...
- 清华大学《C++语言程序设计基础》线上课程笔记02---类与对象
类与对象 public是类的对外访问接口: 类内初始值 在定义类时对数据成员写初始值,在创建对象的时候,会使用类内初始值初始化数据成员: class Clock { public: void show ...
- Apache Tomcat 整合
Infi-chu: http://www.cnblogs.com/Infi-chu/ 一.Apache+Tomcat整合是什么: 1.Apache默认访问端口是80,Tomcat默认访问端口是8080 ...
- P1049 装箱问题
装箱问题 题目描述 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30,每个物品有一个体积(正整数). 要求n个物品中,任取若干个装入箱内,使 ...
- 笔记-python-常见特殊变量
笔记-python-常见特殊变量 类似__xx,以双下划线开头的实例变量名,就变成了一个私有变量(private),只有内部可以访问,外部不能访问: 类似__xx__,以双下划线开头,并且以双下划线结 ...
- WPF中的线程使用
原文:WPF中的线程使用 简介 但凡涉及到图形界面,往往的设计都是不支持或者不推荐使用多个线程操作界面内容.而且通常会有一个专门的线程调度器来处理任务线程和界面线程的问题.下面提供两个两个方案. 使用 ...
- 一步一步学Linq to sql(五):存储过程
普通存储过程 首先在查询分析器运行下面的代码来创建一个存储过程: create proc sp_singleresultset as set nocount on select * from cust ...
- MFC随笔记录——1
这段时间用MFC做完了项目里的一个对图像处理(字迹匹配)的软件,通过项目的具体要求的一步一步的实现,我也学习到了很多以前困惑很久的问题,算是对自己的一个提高吧,把一些有技巧性的操作记在这里,给以后的自 ...