1.1969年以前:一个伟大的梦想—Bell,MIT与GE的“Multics”系统

由于早期的计算机不想现在这样普遍,所以往往出现这样的情况,主机只有一台而多人等待使用。好在20世纪60年代初期的麻省理工学院MIT开发了分时操作系统(Compatible Time-Sharing System,CTSS)解决这一问题。为了加强主机的功能,为了让主机的资源可以提供更多用户使用,所以在1965年前后Bell,MIT与GE提出了“Multics”项目,项目的目标是大型主机可以同时提供300台以上的终端机使用。

2.1969年:Ken Thompson使用汇编语言写出了UNIX的原型—Unics系统

3.1973年:Thompson与Ritchie合作用C语言重新编写Unics写出第一个正式的UNIX内核

汇编语言对硬件具有专一性,所以移植起来不方便,所以改用更高级的语言来编写

4.1979年:System V架构的诞生与版权声明

System V支持了x86架构的个人计算机系统,同时AT&T想回收UNIX的版权所以在这版UNIX推出后,特别提出不可以对学生提供源码的限制,引发了很多的商业纠纷

5.1984年:x86系统的Minix操作系统诞生以及GNU项目

由于AT&T公司的版权限制,谭宁邦教授为教学需求开发出Minix操作系统,但是因为主要用在教育上所以Minix没有的到很好地开发,但是Linux的创建者就参考了该操作系统的设计思想。

1984年,史托曼开始了GNU(GNU's Not UNIX的缩写)项目,这个项目的目标是创建一个自由开放的UNIX操作系统,虽然这个目标没有实现但是该项目开发了很多重要的软件:

  • Emacs(文本编辑器)
  • GNU C(GCC C语言编译器)
  • GNU C Library(C函数库)
  • Bash shell

托瓦兹就是利用这些优秀的开源的自由软件开发出Linux内核的。

通用公共许可证GPL(General Public Licence) 是GNU为了防止开发出来的自由软件被其他人利用成为专利软件的协议。具有GPL许可证的自由软件具有以下特性:

  • 取得软件与源码
  • 复制
  • 修改
  • 再发行:但是你不能将一个GPL授权自由软件在你修改后将它取消GPL授权

现在的Linux开发商为什么可以销售Linux这个GPL授权的软件?因为他们主要销售是售后服务,例如:相关的手册说明,软件升级与数年咨询等等。

6.1994年在托瓦兹和网上众多志愿者努力下终于完成了Linux内核的正式版本Version 1.0

注意:次版本为奇数:开发中版本,这种内核主要用于测试和开发新版本 例如:2.5.*;次版本为偶数:稳定版本 例如:2.6.*

此文参考《鸟哥的Linux私房菜基础学习篇》,主要是记录学习过程之用。

Linux学习之路—Linux的历史发展的更多相关文章

  1. Linux学习之路—Linux目录配置

    所有内容来自鸟哥私房菜 FHS标准的重点在于规范每个特定的目录下应该要放置什么样子的数据而已.事实上,FHS针对目录树架构仅仅定义三层目录下面应该放置什么数据,分别是: /(root,根目录):与开机 ...

  2. Linux学习之路—Linux文件权限

    内容来源于鸟哥私房菜 1.Linux文件属性 1)第一列为文件类型与权限 第一个字符表示文件的类型: [d]表示目录 [-]表示文件 [l]表示连接文件 [b]表示设备文件中可供存储的接口设备,例如硬 ...

  3. Linux学习之路—Linux文件与目录管理

    该内容来自鸟哥私房菜 1.目录的相关操作 1.1 特殊的目录 .  代表此层目录 .. 代表上一层目录 -  代表前一个工作目录 ~ 代表"目前用户身份"所在的主文件夹 ~acco ...

  4. Linux学习之路-Linux-at及cron命令【7】---20171215

    Linux学习之路-Linux-at及cron命令[7]---20171215 DannyExia000人评论986人阅读2017-12-24 17:28:03   ntpdate 命令 [root@ ...

  5. Linux学习之二-Linux系统的目录结构

    Linux学习之二-Linux系统的目录结构 在Linux的根目录下,有很多的目录,但是需要记住,对于Linux而言,一切皆文件.因此此处的目录也是文件.用ls / 命令就能看到根目录下的各类不同的目 ...

  6. Linux学习心得之 Linux下命令行Android开发环境的搭建

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下命令行Android开发环境的搭建 1. 前言2. Jav ...

  7. Linux学习心得之 Linux下ant安装与使用

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下ant安装与使用 1. 前言2. ant安装3. 简单的a ...

  8. linux学习书籍推荐linux学习书籍推荐

    引用地址:http://www.cnblogs.com/notepi/archive/2013/06/15/3137103.html Linux 学习书目推荐 Linux基础 1.<Linux与 ...

  9. linux 学习之路

    很多同学接触Linux不多,对Linux平台的开发更是一无所知. 而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机IT行业从业人员, 掌握Linux是一种很重要的谋生资源与手段. 下来我将 ...

随机推荐

  1. DEV控件中GridView中的复选框与CheckBox实现联动的全选功能

    最初的界面图如图1-1(全选框ID: cb_checkall  DEV控件名称:gcCon ): 要实现的功能如下图(1-2  1-3  1-4)及代码所示: 图1-2 图1-3 图1-4 O(∩_∩ ...

  2. ASP.NET MVC 多语言实现——URL路由

    考虑实现一个完整的基于asp.net mvc的多语言解决方案,从路由到model再到view最后到数据库设计(先挖好坑,后面看能填多少). 我所见过的多语言做得最好的网站莫过于微软的msdn了,就先从 ...

  3. java web学习之初识jsp

    用java语言(+html语言)开发动态资源的技术: jsp的运行过程,1:tomcat服务器将jsp代码翻译成java代码,并且编译成class文件 2:tomcat服务器构造类对象 3:tomca ...

  4. [转]查看Flash Log输出

    1.安装Debug版本的FlashPlayer 2.mm.cfg配置文件 xp:C:\Documents and Settings\username\mm.cfg Vista/7: C:\users\ ...

  5. C# SQLite编程总结

    1.如果自己手动创建了数据库和字段,则不需要再创建table,基本流程: 1)SQLiteConnectionStringBuilder sb = new SQLiteConnectionString ...

  6. boost和std中的thread的引用参数

    boost 1.60.0 先上代码: #include <boost/thread.hpp> #include <iostream> void add(int &i) ...

  7. HBase 实战(2)--时间序列检索和面检索的应用场景实战

    前言: 作为Hadoop生态系统中重要的一员, HBase作为分布式列式存储, 在线实时处理的特性, 备受瞩目, 将来能在很多应用场景, 取代传统关系型数据库的江湖地位. 本篇主要讲述面向时间序列/面 ...

  8. 关于升级xcode8

    升级xcode8已是必然,升级ios10的用户不能说大有人在,应该也不会少,如果不升级xcode8,上架最新的包,那么可能应用在ios10 上是不支持的.so,这些xcode8的新特性,你应该了解!! ...

  9. md5应用

    /* md5工具类 */ public class MD5Util { /**全局数组**/ private final static String[] strDigits = { "0&q ...

  10. C语言文法 LL(1)文法

    程序->外部声明 | 程序 外部声明 程序->外部声明A' A'->外部声明A'|ε 外部声明->修饰符 变量名 形参 修饰符->void | int | char | ...