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信号基础中已经说明,信号可以看作一种粗糙的进 ...
随机推荐
- C# 实现程序开机自启动
最近在做一个自动备份文件的小工具,需要用到开机自启动 下面是代码 private void checkBox8_CheckedChanged(object sender, EventArgs e) { ...
- 6-C++远征之封装篇[上]-学习笔记
C++远征之封装篇(上) 课程简介 类(抽象概念),对象(真实具体) 配角: 数据成员和成员函数(构成了精彩而完整的类) 构造函数 & 析构函数(描述了对象的生生死死) 对象复制和对象赋值 ( ...
- Matplotlib 子图的创建
在matplotlib中,整个图像为一个Figure对象 在Figure对象中可以包含一个或者多个Axes对象 每个Axes对象相当于一个子图了 每个Axes(ax)对象都是一个拥有自己坐标系统的绘 ...
- ALVのイベントを取得する方法
概要 表示されたALVをダブルクリックした時に別画面へ遷移する方法を説明しよう.下記サンプルのように標準トランザクションへ遷移したり.別のALVを表示したりする事が可能である. サンプルコード ABA ...
- urllib.request.urlretrieve()
urllib模块提供的urlretrieve()函数.urlretrieve()方法直接将远程数据下载到本地. urlretrieve(url, filename=None, reporthook=N ...
- .Net 面试题 汇总(二)
51..net中读写XML的类都归属于哪些命名空间? 答:System.Xml 52.解释一下UDDI.WSDL的意义及其作用. 答:UDDI即统一描述.发现和集成协议.作用: 用来说明一个Web服务 ...
- 【转】Django添加静态文件设置
STATIC_URL = '/statics/'STATIC_ROOT= os.path.join(BASE_DIR, 'statics')STATICFILES_DIRS = ( os.path.j ...
- P2340 奶牛会展(状压dp)
P2340 奶牛会展 题目背景 奶牛想证明它们是聪明而风趣的.为此,贝西筹备了一个奶牛博览会,她已经对N 头奶牛进行 了面试,确定了每头奶牛的智商和情商. 题目描述 贝西有权选择让哪些奶牛参加展览.由 ...
- CSS实现自适应下保持宽高比
在项目中,我们可能经常使得自己设计的网页能自适应.特别是网站中的图片,经常要求在网页放大(或缩小)时,宽高同时放大(或缩小),而且不变形(即保持正常的长宽比).为了不变形,常用的方法就是设置width ...
- [OpenCV]DMatch类和KeyPoints类:特征点匹配
DMatch struct CV_EXPORTS_W_SIMPLE DMatch { CV_WRAP DMatch() : queryIdx(-), trainIdx(-), imgIdx(-), d ...