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)
lyxlyx
上一篇 2016-10-19
下一篇 2016-10-19

相关推荐

  • Linux 基础知识(六.一)

    一、模式及模式间的切换 (一)模式介绍 1、vim文本编辑器提供了三种基本模式,分别是编辑模式(命令模式)、输入模式以及末行模式(命令行模式) (二)模式间的切换 二、基础操作 (一)单文件的打开与关闭 1、单文件的打开:vim [options]… /path/to/somefile 2、单文件打开时的常用选项: (1)+#:表示当文件打开时,…

    Linux干货 2016-11-14
  • 系统启动这块的一些实验及基本内容–下

    下面我来讲下grub,grub在编辑的时候可以进入一种模式就是单用户模式,就是当grub.conf文件未写入密码时,普通用户将直接忽略系统密码进入系统,所以这可以称为一个捷径,也可以成为一个漏洞,当然linux的前辈们不可能连这个都想不到,他们也有自己的办法,这就是我们grub的两层加密机制,在选定登陆界面之前可以设置一次,启动内核时也可以设置一次,密码也可…

    Linux干货 2016-09-13
  • 小型网站MYSQL问题二:Percona Xtrabackup实现数据库备份和恢复

    故事背景:前面大胆的选择了innodb,接下来就要考虑数据库的备份和恢复。俗话说“常在河边走,哪能不湿鞋“,自从接触数据这块,使我一直对它保持敬畏之心。在这里使用了percona公司的xtrabckup工具来实现数据库备份和恢复。操作步骤记录如下: 1、安装软件仓库(不要问我为什么不用源码安装,好吧,其实我懒。) wget https://www.…

    数据库运维 2015-12-19
  • Linux之任务计划 crontab

    Linux之任务计划    用过windows的同学应该都知道在控制面板中有一个“任务计划”选项,我们可以通过向导设置让计算机在某个时间点或者开机时运行某个脚本或者批处理等等,方便我们的日常管理监视工作;同样在Linux系统中,如果我们想在开机时就运行某个操作,可以直接将命令写入/etc/rc.local中,该操作就会在机器开机时运行;如…

    Linux干货 2015-05-18
  • 学习宣言

    让学习溶入生活,做一个优秀的专业人才。

    Linux干货 2016-10-30
  • 文本查找之find组合拳

    find命令不仅能帮助我们在数目众多的文件中快速找到满足条件的文本,我们还能通过find处理动作对查找到的文件进行进一步的处理。 一、find的特点:               遍历查找,因此查找速度略慢   &nbs…

    Linux干货 2016-08-15