Linux学习总结02—Linux的操作系统发展史(原创)

   我们都知道,在美国宾夕法尼亚大学,有那么一种计算机,叫ENIAC,这种机器耗电量是非常大,而且主机也是庞大,它诞生于1946年的2月14日的情人节,确实有纪念意义,就算是约炮也是拿着智能手机先摇一摇,好看就勾搭,不好看的就拉黑,这台计算机可并不是造福人类的,只是计算数据,我想,当时的情况是这样,在这台计算机没有出世之前,那帮工程师们计算数据通常时间是很长的,快的话两个月,要是碰上特别复杂的,三五个月肯定都有,要知道,战争年代,时间就是胜利,如果速度那么慢的话,是肯定不会让人接受的,所以宾夕法尼亚大学就开始申请研制可以解决一些特别复杂计算的方程式的计算机,研制出来之后,有原先的两个月缩减出来两天,所以,战争带来毁灭的同时,也会带来并且推动的东西。

   但是其实第一台计算机其实并不是ENIAC,而是ABC,诞生于爱荷华州立大学,是由一位导师和几个学生一同研发出来的。

   后来计算机的硬件慢慢形成,这一形成是由冯.诺依曼提起的,除了采用我在上述第一章提到的五大部件之外,采用二进制也是他提出来,(二进制由0和1组成)这个理论到现在还是主流,因为它或许是简单而又全。

   我们都知道第一台操作系统是UNIX,在早期的时候是没有操作系统的,那时候的计算机是需要打卡,一个一个孔就是1,没有孔的就是0,然后将那个小卡片依次送进计算机里面让它读,之后就通过打印机似的输出系统给显示出来,可见这是一个很麻烦的事情,当时贝尔实验室(A&AT)、通气公司、麻省理工大学等研发一款操作系统,这应该是世界上第一款操作系统,但研究的时间太长,而且进度非常缓慢,贝尔实验室就率先退出了,之后就停滞、在启动,虽然好像是研究出来了,不过并没有形成那么一种通用。

   后来贝尔实验室的人员有个叫做肯·汤普森,他之前就是参加研发那第一款操作系统的人,在贝尔实验室里写出一个多用户的操作系统—-UNIX,起初就是他玩游戏时不太爽,而且那个游戏本来就是为当时第一款操作系统所研发的,而且运行也是不太流畅,后来贝尔实验室退出之后,他就是就想自己写一个程序让自己的游戏跑起来,可问题是贝尔实验室能批下来这个事情嘛?似乎觉得也不可能,他发现了在实验室里有一个PDP-7没人用,因为那时候已经出来PDP-11了,而且贝尔实验室也是很有钱。呵呵!

   从此他空闲的时间都在这台机子上写他的程序,在70年完成,他当时让同事们看他的游戏,可同事并不关心他的游戏,而是关心他的系统,因为他系统的健壮性和易用性都非常的好,于是乎在实验室内部开始装上了UNIX,所以70年是UNIX的元年(时间具体我也是记不清了)

   但是还是很麻烦,麻烦在于它是用汇编语言写的,如果转移到另一个硬件架构上,需要写这个程序,并且要根据那个平台编译,这的确是很麻烦,在1973年的时候,他的同事丹尼斯·里奇将汇编语言B语言开始改版,加入函数等功能成为了C语言高级语言,让它的可移植性功能开始了它在世界重要的发挥作用,于是丹尼斯.里奇使用C语言来重新编写UNIX操作系统。

   后来肯.汤普森开始放假,假期一年,带薪休假(我的内心是羡慕的),他来到了伯克利分校教学,伯克利分校也组织了一个研究UNIX的社团,在汤姆森的帮助下,他们研制出一套BSD的操作系统,里面也有A&AT UNIX的源代码,不过当时A&AT当时主要生产别的业务,对于Unix来说,你想要的话你就取走,于是又很多公司都来了,比如HP、SUN以及IBM,贝尔实验室都无偿的给他们了,在后来BSD开始收费,好像是紧跟着他们也开始收费了吧(具体的我也记不清了),直到贝尔实验室一分为二,想要开始收回版权,就与BSD开始长达几十年的官司。

   这十几年也是个黄金十几年,因为苹果和微软也杀出来了,尤其是微软,这几十年挣了特别多,可他们发现的时候已经晚了,这里就不介绍微软和苹果的历史了。

   此时的Unix已经是商业化了,在1983年,有人提出,软件一切自由,于是有人就开始发起共产主义道路,这人就是理查德·马修·斯托曼,他认为软件都是自由的,不能被你们这些资本主义家占有(其实就是商业化),于是搞出了一套协议叫GNU(不叫GUN,意思是GNU is not Unix)很快就有天下义士响应(指的是那些热爱自由、不断挑战新的规则的黑客们),于是又很多开源软件在GNU协议中,比如GCC、Glib等,但是并没有人研发出一个内核程序,所以这个协议也是托了很久。

   Unix教育机构中也是不让用的,这下该怎么办呢,在1987年,安德鲁·斯图尔特编写了一套教育类的核心操作系统—-Minux,主要用于教育事业,来了解计算机的用于教学的一套操作系统,他不允许别人修改他们代码,虽然可以给你,但你不能修改内核,这下让那些热爱自由精神的组织者既高兴也是失望,高兴的是这个内核很好,失望的是这个内核不给你用(恐怕还是失望多一点)。

   在1991年的8月份,有一位计算机学生,叫做Linus,他编写一个内核,发布在FTP上,并且发布了一个帖子,很快共产主义开一次升起了冉冉星空,星星之火被再一次燎原。经过哪些虚拟团队不断的修改、添加以及测试之后,Linux诞生了,由于Linux就是一个内核,只能让计算机的硬件利用并且相互协调通信,所以GNU的那些软件也就开始跑在Linux内核之上,起初Linux并不兼容,因为它并不是兼容POSIX,因为Unix是根据POSIX规则开发的,于是在Linus有两条道路,要不就修改那些软件,要不就修改Linux内核,当然,他选择了第二条道路,此后的Linux也是一强再强,发展的速度也是非常的快。

   现在,Linux已经完全贴近我们的生活中了,虽然你看不见,可你在悄悄地使用它。

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

(0)
刘 祥宇刘 祥宇
上一篇 2016-10-29 22:11
下一篇 2016-10-29 23:02

相关推荐

  • 关于grub的一些实验

    关于grub的一些实验 手动引导进入系统 也就是写 grub.conf文件 改grub界面图片 1、进入/root/grub目录发现里面有很多东西,查看grub.conf可以知 2、我们查看下图片的格式 这是一个gzip压缩的图片文件 用vim可以查看开头经查得知这是一个640*480的文件而且只支持14色 3、自定义图片 先照一张图片用工具改成这种想要的格…

    Linux干货 2016-09-16
  • linux启动和内核管理

    linux启动和内核管理:1. 加载BIOS 的硬件信息,获取第一个启动设备2. 读取第一个启动设备MBR 的引导加载程序(grub) 的启动信息3. 加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备4. 核心执行init 程序,并获取默认的运行信息5.init 程序执行/etc/rc.d/rc.sysinit 文件6. 启动核心的外挂模…

    Linux干货 2017-03-28
  • bash脚本函数和数组

        函数function是由若干条shell命令组成的语句块,实现代码重用和模块化编程。它与shell程序形式上是相似的,不同的是它不是一个单独的进程,不能独立运行,而是shell程序的一部分。    函数和shell程序比较相似,区别在于:  &nbsp…

    Linux干货 2016-08-24
  • Linux运维学习历程-第三天-初识Linux

    初识Linux 本章内容    初安装Linus的网络配置    防火墙的关闭    用户    终端    shell    命令纪要 安装linux之后,linux默认网卡开机不是自动激活,并且防火墙开启的,这对初期我们学习linux会…

    Linux干货 2016-08-03
  • DNS服务基础

    DNS服务:是一种工作在应用层的特定应用,也是.c/s架构模式的,DNS的是一种应用层协议,他的端口是UPD协议的53号端口,()根据应用场景不同也会用到tcp协议)这就意味着DNS是默认通过UDP协议进行通信的 我们访问任何一个网站都是通过主机名的方式进行访问的;例如www.baidu.com,这是个主机名.称之为FQDN(完全限定域名) 常见的顶级域中的…

    Linux干货 2016-11-07
  • kickstart及引导镜像制作

    环境:CentOS 6.7 kickstart 制作    1、centos系统安装完成后,anaconda会根据本次系统安装的配置,生成一个与本次安装设置相同的kickstart文件,文件位于/root/anaconda-ks.cfg,可以使用vim对这个文件进行修改来使用。     vim anaconda-ks.…

    Linux干货 2015-12-15