Linux的发展史

引言:

开源是什么?什么是Unix Linux ?这两种操作系统又有什么关联?

   大家当前在用最常见的电脑系统是眼前的Windows ,但为何我们要花学习Linux 的发展史?

通过下面的介绍,我们能大致了解互联网发展的一些问题,以及LinuxUnix的基本概念、历史、发展情况。

一、操作系统介绍

内核(kernel)负责控制硬件资源分配,而如果只有内核,则只能让计算机硬件运行,而不能有任何功能,因此需要系统调用提供给开发者使用,从而开发应用程序;

内核能够控制硬件,比如:让CPU可以运算、让硬盘可以读写数据等;只有内核的话,只能让计算机运行,但是我们不能控制计算机;

而系统调用是操作系统提供给开发者的调用接口;任何硬件都不会默认就被操作系统控制,而需要开发商根据操作系统提供的接口开发驱动程序,只有安装了驱动程序才能够控制硬件设备;

其实 Linux 就是一个操作系统,这个操作系统里头含有最主要的 kernel 以及 kernel 提供的工具啦!他提供了一个完整的操作系统当中最底层的硬件控制与资源管理的完整架构,软件开发者将他们的工作心血转移到这个架构上,那就是很多的应用软件啦!虽然Linux仅是其核心与核心提供的工具,不过由于核心、核心工具与这些软件开发者提供的软件的整合,使得Linux成为一个更完整、功能更强大的操作系统咯!我们可以将 Linux 的系统与使用者的相关性看成底下的图示:

Linux的发展史http://my.csdn.net/uploads/201208/06/1344234595_4186.GIF

 

二、Linux、Unix历史

早在20世纪60年代初期,MIT(麻省理工学院)开发所谓的兼容分时操作系统(Compatible Time-Sharing System),支持30台终端访问主机。主机负责运算,而终端负责输入输出。架构有点向这样:Linux的发展史

http://my.csdn.net/uploads/201208/06/1344234699_9093.GIF

在1965年,Bell实验室、MIT、GE(通用电气公司)准备开发 Multics系统,为了同时支持300个终端访问主机,但是1969年失败了;

  刚开始并没有鼠标、键盘,输入设备只有卡片机,因此如果要测试某个程序,则需要将读卡纸插入卡片机,如果有错误,还需要重新来过;

   注:Multics:Multiplexed Information and Computing Service多路传输信息和计算业务)

1969年,Ken Thompson(C语言之父)利用汇编语言开发了FIle Server System(Unics,即Unix的原型)但因为汇编语言对于硬件的依赖性,因此只能针对特定硬件。据说当时的Thompson只是为了移植一款叫“太空旅游”的游戏,才开发的这款操作系统,哈哈!

1973年,Dennis Ritchie和Ken Thompson发明了C语言,而后写出了Unix的内核,他们将那个操作系统以B语言改成C语言编写,最后发行出Unix的正式版本

  Unix90%的代码是C语言写的,10%的代码用汇编写的,因此只要修改那10%的代码,就可以移植到其他硬件上。

1977年,Berkeley大学的Bill Joy针对他的机器修改Unix源码,称为BSD(Berkeley Software Distribution),这个 BSD 是 Unix 很重要的一个分支, Bill Joy也是 Unix 业者『 Sun 』这家公司的创办者! Sun 公司即是以 BSD 发展的核心进行自己的商业Unix 版本的发展的。

1979年,由于 Unix 的高度可移植性与强大的效能,加上当时并没有版权的纠纷, 所以让很多商业公司开始了 Unix 操作系统的发展,例如 AT&T 自家的 System V、IBM 的 AIX 以及 HP 与 DEC 等公司,都有推出自家的主机搭配自己的 Unix 操作系统。;

1984年,因为Unix规定:“不能对学生提供源码”,Tanenbaum老师自己编写兼容于Unix的Minix,用于教学;同年,Stallman开始GNU(GNU's Not Unix)项目,创办FSF(Free Software Foundation)基金会,FSF基本内容如下:

   ~ 开发产品:GCC、Emacs、Bash Shell、GLIBC;

   ~ 倡导“自由软件”;

   ~ GNU的软件缺乏一个开放的平台运行,只能在Unix上运行;

   ~ 自由软件指用户可以对软件做任何修改,甚至再发行,但是始终要挂着GPL的版权;

   ~ 自由软件是可以卖的,但是不能只卖软件,而是卖服务、手册等;

1985年,为了避免GNU开发的自由软件被其他人用作专利软件,因此创建GPL(General Public License)版权声明;

1988年,MIT为了开发GUI,成立了XFree86的组织; 

1991年,芬兰赫尔辛基大学的研究生Linus Torvalds基于gcc、bash开发了针对386机器的Lniux内核; 

1994年,Torvalds发布Linux-v1.0;

1996年,Torvalds发布Linux-v2.0,确定了Linux的吉祥物:企鹅; 

三、Linux的优缺点

目前 Linux已经是相当成熟的一款操作系统了,由于他的系统硬件要求很低,而且不耗资源又可以自由取得,这也是造成 Linux 成为最近几年来最受瞩目的操作系统之一。Linux的主要优点有以下几种:

1、稳定的系统:

Linux 本来就是基于 Unix 概念而发展出来的操作系统,因此, Linux 具有与 Unix 系统相似的的程序接口跟操作方式,当然也继承了 Unix 稳定并且有效率的特点。

2、免费或少许费用:

由于 Linux 是基于 GPL 的基础下的产物,因此任何人皆可以自由取得 Linux , 至于一些『安装套件』的发行者, 他们发行的安装光盘也仅需要些许费用即可获得!

3、安全性、漏洞的快速修补:

  Linux 由于支持者日众,有相当多的热心团体、个人参与其中的开发, 因此可以随时获得最新的安全信息,并给予随时的更新,亦即是具有相对的较安全!

4、多任务、多使用者:

与 Windows 系统不同的, Linux 主机上可以同时允许多人上线来工作, 并且资源的分配较为公平。你可以在一部 Linux 主机上面规划出不同等级的使用者,而且每个使用者登入系统时的工作环境都可以不相同,此外,还可以允许不同的使用者在同一个时间登入主机,以同时使用主机的资源。

5、使用者与群组的规划:

在 Linux 的机器中,档案的属性可以分为『可读、可写、可执行』 等参数来定义一个档案的适用性,此外,这些属性还可以分为三个种类, 分别是档案拥有者、档案所属群组、其它非拥有者与群组者。 这对于项目计划或者其它计划开发者具有相当良好的系统保密性。

6、相对比较不耗资源的系统:

Linux 只要一部 p-100 以上等级的计算机就可以安装并且使用愉快啰!还不需要到 P-4 或 AMDK8 等级的计算机呢!不过,如果你要架设的是属于大型的主机(服务上百人以上的主机系统),那么就需要比较好一点的机器了。不过,目前市面上任何一款个人计算机均可以达到这一个要求

7、适合需要小核心程序的嵌入式系统:

由于 Linux 只要几百 K 不到的程序代码就可以完成一个完整的操作系统, 因此相当适合于目前家电或者是小电子用品的嵌入式操作系统。

当然,Linux也存在没有特定的支持厂商和图形接口做的不过好等不足之处,不过相对于这么多的优点,这些不足也就无关痛痒啦!等大家学习好Linux之后在以后或许能够自己弥补这些不足之处呢!

原创文章,作者:lyx,如若转载,请注明出处:http://www.178linux.com/51198

(0)
上一篇 2016-10-19 14:16
下一篇 2016-10-19 14:17

相关推荐

  • socket编程原理

    1、问题的引入 1) 普通的I/O操作过程: UNIX系统的I/O命令集,是从Maltics和早期系统中的命令演变出来的,其模式为打开一读/写一关闭(open-write-read-close)。在一个用户进程进行I/O操作时,它首先调用“打开”获得对指定文件或设备的使用权,并返回称为文件描述符的整型数,以描述用户在打开的文件或设备上进行I/O操作的进程。然…

    Linux干货 2015-04-10
  • 例图分析软、硬链接

    在linux系统中存在两种链接方式硬链接和软连接,两种链接方式在系统中是完全不同的模式,本文主要详述两种的区别并给与图示; 创建guo ,lin两个文件,两个文件分别用于演示软连接和硬链接     图一:创建文件   创建软连接guo.ruan1     图二:创建软连…

    Linux干货 2016-10-29
  • Buffer和Cache的区别

    1、buffer(缓冲) 是为了提高内存和硬盘(或其他I/O设备)之间的数据交换的速度而设计的。 2、cache(缓存) 从CPU角度考虑,是为了提高cpu和内存之间的数据交换速度而设计的,例如平常见到的一级缓存、二级缓存、三级缓存。 cpu在执行程序所用的指令和读数据都是针对内存的,也就是从内存中取得的。由于内存读写速度慢,为了提高cpu和内存之间数据交换…

    Linux干货 2018-01-02
  • Linux的用户组和权限管理之特殊权限及ACL的使用

    用户组和权限管理 一、了解和使用批量新建用户和批量修改用户密码: ##用户创建的模板和配置文件的存放位置:/etc/default/useradd;/etc/skel/* ;/etc/login.defs## 批量新建用户(newusers):适合用于新老机器转换时,迁移系统上的用户。 使用格式: newusers  passwd  fi…

    Linux干货 2016-08-04
  • 硬盘分区MBR和GPT选哪个好?有什么区别?

    当前主流的硬盘分区方式有两种:MBR和GPT。 一、MBR与GPT简介与结构 什么是MBR?         MBR,全称为Master Boot Record,即硬盘的主引导记录。是对IBM兼容机的硬盘或者可移动磁盘分区时,在驱动器最前端的一段引导扇区。 MBR的组成部分       &…

    Linux干货 2016-08-29
  • 非交互式添加分区

    非交互式添加分区 方法一 添加/deb/sdb 下的分区,其实位置为1到1000M,第二个分区位置为1001至3000M,位置千万不能指定错误 parted /dev/sdb mkpart primary 1 1000M parted /dev/sdb mkpart primary 1001 3000M 方法二 (1)将你要在parted命令行输入的命令实现…

    Linux干货 2017-04-24