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信号基础中已经说明,信号可以看作一种粗糙的进 ...
随机推荐
- u-boot-2016.01移植(一)
1.了解uboot: 阅读uboot源码顶层目录下的README.TXT可以提取如下信息: made to support booting of Linux images. //引导内核程 ...
- docker使用命令汇总
docker命令 docker ps 容器列表 docker ps -a 所有容器列表,包含未运行的容器 docker image ls 镜像列表 docker logs -f xxx 容器日志 do ...
- ThinkPHP中的pathinfo模式和URL重写
语文一直不太好,要我怎么解释这个pathinfo模式还真不知道怎么说,那就先来一段代码说下pathinfo模式吧 http://serverName/appName/module/action/id/ ...
- linux下磁盘分区、格式化、挂载
(1)fdisk /dev/sdb进行分区 (2)选择n表示添加一个分区,选择d表示删除一个分区.可通过m获取帮助信息 (3)选择p表示主分区,然后输入分区大小 (4)分区完成后,可通过fdisk - ...
- nodejs环境变量配置
步骤 创建文件夹:安装包 配置环境变量: export NODE_HOME=/root/安装包/node-v7.6.0-linux-x64 export PATH=$NODE_HOME/bin:$PA ...
- 8 TFTP代码详解 协议写在程序中
1.版本1:发送请求 # -*- coding:utf-8 -*- import struct from socket import * #0. 获取要下载的文件名字: downloadFileNam ...
- Phoenix映射HBase数据表
1. 说明 安装好phoenix后对于HBase中已经存在的数据表不会自动进行映射,所以想要再phoenix中操作HBase已有数据表就需要手动进行配置. 2. 创建HBase表 > creat ...
- java Spring boot使用spring反射
spring 反射 当你配置各种各样的bean时,是以配置文件的形式配置的,你需要用到哪些bean就配哪些,spring容器就会根据你的需求去动态加载,你的程序就能健壮地运行. 1.可以通过类名去实例 ...
- 洛谷P1364 医院设置
LITTLESUN的第一道图论,撒花~~ 题目链接 这道题是Floyd的板子题 注意对于矩阵图的初始值赋值要全部赋值成最大值 十六进制的最大值表示方式是0x3f3f3f3f memset(G,0x3f ...
- 【jQuery】 常用函数
[jQuery] 常用函数 html() : 获取设置元素内的 html,包含标签 text() : 获取设置元素内的文本, 不包含标签 val() : 获取设置 value 值 attr() : 获 ...