linux发展史

通过本篇文章,读者可以了解Linux的基本概念、历史、发展情况;

首先,我们通过简单的介绍Linux,了解什么是linux以及它的发展背景;


前言操作系统介绍

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

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

而系统调用是操作系统提供给开发者的调用接口;

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

一、Linux介绍


1.Linux简单介绍


Linux核心理念:一切皆文件

Linux:是一个内核,而不是一个操作系统;因此我们平常说的“操作系统用的是Windows、Mac还是Linux啊?”是错误的,Ubuntu、Fedora等才是操作系统的名字,他们都使用Linux内核;

1991年最初由Linus Torvalds针对386(个人计算机)开发;Linus Torvalds那时是芬兰的一名研究生;

Unix Like:很像Unix的操作系统;

苹果电脑为什么现在能装Windows操作系统?因为苹果使用了Intel的X86架构,而windows也是针对此架构的,因此按理论来说一般的PC上也可以安装mac操作系统;

Linux的吉祥物是企鹅(英文名:Tux),因为Torvalds在小时候被企鹅咬过,因此印象非常深刻;

linux发展史

Unix和Linux的代码是由90%的C语言和10%的汇编组成,因此只需要稍加修改,就能移植到其他硬件上;

2.Linux的优缺点


Linux的优点


1.开放的学习环境;

2.漏洞快速修补;

3.因为内核只有几百k,因此适合嵌入式系统;

Linux的缺点


1.有些专业软件没有Linux版本;

3.Linux发展史

 

Unix是用90%的C语言和10%汇编语言混合编写的,因此对于硬件平台的移植时还是需要更改代码,因此各个公司都推出了针对自家机型的Unix系统;

到了AT&T System V第七版时,终于推出了针对X86的Unix,因此终于能够在个人计算机上安装Unix,但是有一条规定:“不能向学生公开源码”,因此Tanebaum教授就不看Unix源码,编写了兼容Unix的针对X86的Minix操作系统;

因为Minix只是教学使用,因此功能并不
强,因此Torvalds利用GNU的bash当做开发环境,gcc当做编译工具,编写了Linux内核-v0.02,但是一开始Linux并不能兼容
Unix,即Unix上跑的应用程序不能在Linux上跑,即应用程序与内核之间的接口不一致,因为Unix是遵循POSIX规范的,因此
Torvalds修改了Linux,并遵循POSIX(Portable Operating System
Interface,他规范了应用程序与内核的接口规范);

一开始Linux只适用于386,后来经过全世界的网友的帮助,最终能够兼容多种硬件;

linux发展史

4.Linux内核版本号介绍


命令:uname -r 

3.2.0-23

主版本.次版本.释放版本-修改版本

Linux的内核版本分为稳定版本和开发版本;

此版本如果是偶数,则为稳定版本,如果是奇数,则为开发版本,内核开发人员使用;

释放版本为对次版本的改动,即加入一些功能;

修改版本为编译的次数,每次加一;

二、Linux历史

20世纪60年代,MIT开发分时操作系统(Compatible TIme-Sharing System),支持30台终端访问主机;

    ~主机负责运算,而终端负责输入输出;

linux发展史

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

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

    ~Multics:Multiplexed Information and Computing Service

1969年,Ken Thompson(C语言之父)利用汇编语言开发了FIle Server System(Unics,即Unix的原型)

    ~因为汇编语言对于硬件的依赖性,因此只能针对特定硬件;

    ~只是为了移植一款“太空旅游”的游戏;

1973年,Dennis Ritchie和Ken Thompson发明了C语言,而后写出了Unix的内核

    ~将B语言改成C语言,由此产生了C语言之父;

    ~90%的代码是C语言写的,10%的代码用汇编写的,因此移植时只要修改那10%的代码即可;

1977年,Berkeley大学的Bill Joy针对他的机器修改Unix源码,称为BSD(Berkeley Software Distribution)

      Bill Joy是Sun公司的创始人;

1979年,Unix发布System V,用于个人计算机;

1984年,因为Unix规定:“不能对学生提供源码”,Tanenbaum老师自己编写兼容于Unix的Minix,用于教学;

1984年,Stallman开始GNU(GNU's Not Unix)项目,创办FSF(Free Software Foundation)基金会;

      产品: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重要人物


1.Ken Thompson:C语言之父和Unix之父

linux发展史

2.Dennis Ritchie:C语言之父和Unix之父;

linux发展史

3.Stallman:著名黑客,GNU创始人,开发了Emacs、gcc、bash shell;

linux发展史

4.Bill Joy:BSD开发者;

linux发展史

5.Tanenbaum:Minix开发者;

linux发展史

6.Linus Torvalds:Linux之父,芬兰赫尔辛基大学;

linux发展史

以上,是个人对Linux发展史的资料整合;

欢迎补充!




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

(0)
上一篇 2016-10-14 11:36
下一篇 2016-10-14 11:36

相关推荐

  • 马哥教育网络班22期+第一周课程练习

    计算机的组成及其功能 计算机主要由五大部分组成:控制器、运算器、存储器、输入设备、输出设备,即CPU(控制器、运算器)、内存、I/O(输入/输出设备)。 控制器 是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。 运算器 对数据进行各种算术运算和逻辑运算,即对数据…

    Linux干货 2016-08-15
  • 第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 2、取出最后登录到当前系统的用户的相关信息。 3、取出当前系统上被用户当作其默认shell的最多的那个shell。 4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存 至/tmp/maxusers.txt文件中。 5、取出当前主机…

    Linux干货 2016-11-21
  • CentOS7安装Zabbix3.0版本应用

    一、Zabbix介绍        zabbix 简介   Zabbix 是一个高度集成的网络监控解决方案,可以提供企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利  &n…

    Linux干货 2016-11-03
  • 网络接口bonding的设置、网卡别名的设置

    网络接口bonding的设置、网卡别名的设置 网络接口bonding的设置 1.bonding的原理 Bonding就是将多块网卡绑定同一IP 地址对外提供服务,可以实现高可用或者负载均衡。当然,直接给两块网卡设置同一IP 地址是不可能的。通过bonding ,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC 地址。 2.Bonding 的工作模式 …

    Linux干货 2016-09-05
  • 课堂练习之 “;” 用法

    作业:如何实现前一条命令执行成功,才会执行后面一条命令,以及前一条命令执行失败才会执行后一条命令。 首先,多条命令一起执行的方法有几种。   1.用;隔开,不会判断前一条命令是否执行成功或失败。   2.用&&隔开,前面命令执行成功后,才会执行后面的命令。     3.用||或|隔开,前面命令执行失败后…

    2017-07-15
  • 习题

    1、找出ifconfig命令结果中本机的所有IPv4地址 2、查出分区空间使用率的最大百分比值 3、查出用户UID最大值的用户名、UID及shell类型 4、查出/tmp的权限,以数字方式显示 5、统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序 6、显示/proc/meminfo文件中以大小s开头的行;(要求:使用两种方式) 7、显示/etc/…

    Linux干货 2016-08-07