♦ 1  Linux的简单介绍

Linux与Windows一样都是一套OS(操作系统),Windows界面美观 ,普通用户很容易上手,点点鼠标就能搞定许多操作,而Linux生下来就是为程序员的,故精通Linux都是非常擅长命令行的,可以说命令行就是学习Linux的最基础的东西了,操作相对Windows来说并不是那么的容易上手,反而很复杂,因为命令行是艰涩难懂的,故造成了如今Linux只在程序员中流行,而普通电脑用户可能根本不知道它的存在,我当初也是听说的,到现在我才有极度想要学习它的念头,好了,废话不多说。

操作系统=内核(kernel)+系统调用接口,内核与硬件紧密相关,见图1.1,仅有内核的话,只能将计算机运行起来,而你什么都不能做,干瞪眼的干活,所以说操作系统除了内核外 系统调用接口也是相当的重要的,有了它们,软件开发者就可以利用这些接口开发出软件,软件让操作系统更加的完美。

1.1

Torvalds先生在写出Linux的时候,这个OS也仅有内核与接口这么简单,而且还是针对386来开发的,所以也仅能“让计算机开始运行,等待用户输入指令”而已,事实上,能在Linux上跑的软件还很少呢。

每种OS都是在它专门的机器上运行的,像Windows系统是专门针对个人计算进X86架构的硬件去设计的,有人问 Windows操作系统能装在 苹果公司的麦金塔计算机(MAC) 上面吗? 结果很明显 不可以啊 ,为什么呢,由上可知硬件是由内核来控制的,Windows操作系统的内核只能控制Intel的X86架构的硬件,而06年之前苹果公司是请IBM公司开发硬件(所谓的power CPU), 然后apple在该硬件架构上开发自家的OS(即Mac),故Windows是不能安装在苹果计算机上的。但是在06年之后苹果公司也采用了Intel的X86架构的硬件,此时才可能将Windows用于Mac计算机,注意了,仅仅是可能,据说是由于兼容性问题的存在,这里我也不太明白。再说Linux吧,这个系统是一个Open Source(开放源代码)的操作系统,这就注定了它具有“可移植”这个强大的优点,理论上讲Linux的源代码可以被修改从而在各种机器上运行,Windows闭源则不行啊,这就奠定了Linux的良好前途。

Linux是一个提供了一个完整操作系统当中最底层的硬件控制与资源管理的完整架构,这个架构是沿袭Unix良好的传统而来的,所以相当稳定并且强大。

如此越来越多的软件开发者渐渐将工作心血转移到了这个系统上,所以之后能在Linux上运行的软件也不在少数了。这些软件与Linux共同形成了一个更加强大,更加稳定的操作系统发展至今。

♦2.至于Linux追根溯源到底是如何来的,那就要从Unix说起了,先说说跟Unix的建立有关的东西吧。

2.1   1969年以前——Multics项目

在20世纪60年代左右一间学校可能仅有一台主机,而如此多的学生免不了要等待才能使用,好在之后麻省理工学院(MIT)开发了分时操作系统(compatible time-sharing system,CTSS),它可以让多个终端机通过连接大型主机利用主机的资源进行运算工作,其架构如图2.1

2.1

这些终端机只能提供输入输出的功能,本身并不能安装软件或运算的能力,而且最先进的主机只能让30多台终端机连入而已。为了加强大型主机的功能,以便让更多的用户利用主机的资源,所以在1965年前后,由贝尔实验室(Bell)、麻省理工学院(MIT)及通用电气公司(GE)共同发起了Multics的项目,Multics的最终目标是让一台大型主机可以同时接入300台以上的终端机。但是后来由于资金短缺进度落后等原因,这个项目最终没有获得成就,而贝尔实验室也退出了该项目的研究。

虽然这个项目不成功,但是这个项目培养出了的人才是相当优秀的。

2.2   1969年——Ken Thompson的小型File Server System

Ken Thompson是 参与Multics项目的贝尔实验室人员之一,他从Multics中获得了一点想法,他用了四个星期的时间,终于以汇编语言(Assembier)写出了一组内核程序,同时包括一些内核工具程序,以及一个小的文件系统。该系统就是UNIX的原型,被同事们戏称为Unics。只能说“科技来自于人性”。

2.3   1973年——Unix正式诞生,Ritchie等人以C语言写出第一个正式UNIX内核

由于Thompson写的那个OS太好用了,所以在贝尔实验室内部广为流传,并且多次经过改版。 但是因为Unics使用汇编语言写出来的,汇编语言的专一性,所以若计算机的架构不同的话,每次安装都得进行重新编写这个步骤,灰常的不方便。

当时现成的高级语言有B语言,但是有B语言编译出来的内核性能不是很好,于是Dennis Ritchie将B语言重新改写成了C语言,Thompson、Ritchies两人合作用C语言重新编写UNICS的内核,最后发行出Unix的正式版本!!到这里你会发现,哦,C语言原来是这么来的啊,还真是神奇呢。C语言使得Unix很容易被移植到不同的机器上。

2.4   1977年——重要的Unix分支-BSD的诞生

柏克莱大学的Bill Joy在取得了UNIX的内核源码后,便着手于修改适合自己机器的版本,并且同时增加了很多工具软件和编译程序看,最终将它命名为Berkeley Software Distribution(BSD)。这个BSD是UNIX的一个很重要的分支,Bill Joy也是Sun这家公司的创始人。

2.5  1979年:重要的System V架构与版权声明

早期的UNIX只能跟服务器(SERVER)和大型工作站(Workstation)画上等号!直到AT&T公司推出System V后才有所改观,S V这个架构最特殊的地方就是支持X86架构的个人计算机系统,也就是说它可以安装在个人计算机上并运行。

不过,AT&T出于对商业的考虑,以及在当时现实环境下的思考,于是想将UNIX的版权收回去。因此,AT&T在1979年发行的第七版UNIX中,声明“不可对学生提供源码”,这个事件也造成了UNIX业界之间的紧张气氛,并且引发了很多商业纠纷。

 注:目前被称为纯种的UNIX指的就是System V 和 BSD这两套。

2.6 1984年:X86架构的Minux操作系统诞生

由于1979年的版权声明,影响到了教授关于UNIX的教学,无法向学生提供UNIX源码,教授没法讲解,谭宁邦教授就是其中之一,他自己动手编写了一个能在X86上运行的UNIX Like的内核程序Minix,为了避免版权纠纷,谭宁邦教授在编写过程中完全不看UNIX内核源码,并且强调Minix必须与UNIX兼容才行,直到1986年终于完成。

Minix操作系统的开发者只有谭宁邦教授一人,因为学术很忙,而且谭宁邦始终认为Minix主要用在教育上面,所以对Minix是点到为止。Minix虽然很受欢迎,但是它已无法再向更高的位置前进了。

2.7  1984年:GUN项目与FSF基金会成立

这两个东西的成立者都是史托曼(英文名:Richard Mathew Stallman,RMS),GUN项目创建的目的是创建一个自由、开放的UNIX操作系统(Free UNIX),他一个人是无法完成的,所以他以出售他自己编写的那个Emacs来赚钱,Emacs是一个很好很优秀的程序编辑器,非常牛,赚了点钱后全力编写其他软件,并且成立了自由软件基金会(Free Software Foundation,FSF),请来了更多的工程师和志愿者一同编写软件,写出了GCC这个比Emacs更加优秀的工具,还有更多可以被调用的C函数库(GNU C Library),以及可以被用来操作系统的基本接口bash shell,大约在1990年完工。

♦3.Torvalds的Linux开发

GUN、GCC、minux等等这些东西的出现都为托瓦兹开发Linux打下基石,利用这些东西,托瓦兹写出了自己的操作系统,当这个内核程序可以在386上顺利运行后,他希望能够获取大家的意见,于是将这个内核放到网上供大家下载。

。。。。。

之后各个Linux团队产生,到现在各大distributions横行这个过程我就自动省略了。

♦4.再稍微普及点知识吧。

4.1 主次版本为基数:开发中版本(development)

如2.5.xx,这种内核主要用于测试和开发新功能,经众多工程师测试没问题后,才加入下一版的稳定内核中。

4.2 主次版本为偶数:稳定版本(stable)

如2.6.xx,这种版本可以提供给用户使用了。

想学的话建议CentOS为入门系统。说到这里,此篇文章到此结束。2015-11-1016:49:36

本文为  凌小墨 撰写 ,转发请勿清除此行,本文链接:http://www.cnblogs.com/lxmwb/p/5144363.html

淡说Linux 的发展史的更多相关文章

  1. Linux的发展史和centos7的安装

        目 录 第1章 Linux系统介绍与环境搭建准备UNIX操作系统    1 1.1 Unix的发展    1 1.2 MINIX的发展    1 1.3 GUN    1 1.4 Linux的 ...

  2. Linux - 操作系统的发展史

    操作系统的发展史(科普章节) 目标 了解操作系统的发展历史 知道 Linux 内核及发行版的区别 知道 Linux 的应用领域 01. 操作系统的发展历史 1.1 Unix 1965 年之前的时候,电 ...

  3. Linux操作系统发展史

    1984年,面对美国电话电报公司启动的UNIX商业化计划和程序开发的封闭模式,麻省理工学院的RichardM.Stallman发起了一项国际性的源代码开放的GNU(GNU's Not Unix)计划, ...

  4. 【Linux】一步一步学Linux——Unix发展史(02)

    目录 00. 目录 01. 请参考Unix传奇 02. 03. 00. 目录 @ 本博客后面会更新 01. 请参考Unix传奇 链接: https://coolshell.cn/articles/23 ...

  5. Kali Linux的发展史,专为数字取证和渗透测试而设计

    Kali Linux拥有非常强大的网络功能,Kali Linux是一个Debian衍生的Linux发行版,专为数字取证和渗透测试而设计.它是由OffensiveSecurityLtd维护和资助,是由M ...

  6. Linux之我见

    Linux哲学之美 linux就像是一个哲学的最佳实践.如果非要对它评价,我真的不知道该怎么赞叹,我只能自豪的说着:“linux的美丽简直让人沉醉.” 我只能说是我处在linux学习的修炼之路上的一个 ...

  7. linux学习初体验

    前天买了鸟哥私房菜,昨天一早就到了.阅读了前两章. 一.Linux是什么 二.Linux如何学习 还有前面的计算机概论也值得一看.对于计算机构成,硬件解读,数据存储,比一般的电脑维修类的书深一些. 第 ...

  8. linux(一)之linux简介

    其实在前几天我使用的是csdn来写博客,尝试了一下,发现真的太浪费时间了.可能是自己不太习惯的原因吧.所以最后还是换回使用博客园.接下来给大家带来的是linux,大家听到这里linux感觉很神秘的样子 ...

  9. Linux运维基础

    一.服务器硬件 二.Linux的发展史 三.Linux的系统安装和配置 四.Xshell的安装和优化 五.远程连接排错 六.Linux命令初识 七.Linux系统初识与优化 八.Linux目录结构 九 ...

随机推荐

  1. JS实现一位数显示为两位

    使用js脚本实现页面一位数字显示为两位,不足两位前面加“0”. function fix(num, length) { return ('' + num).length < length ? ( ...

  2. libevent学习笔记 —— 牛刀小试:简易的服务器

    回想起之前自己用纯c手动写epoll循环,libevent用起来还真是很快捷啊!重写了之前学习的时候的一个例子,分别用纯c与libevent来实现.嗯,为了方便对比一下,就一个文件写到黑了. 纯c版: ...

  3. csharp:A Custom CheckedListBox with Datasource

    /// <summary> /// (eraghi) /// Custom CheckedListBox with binding facilities (Value property) ...

  4. csharp: Microsoft SqlHelper

    from: Microsoft Data Access Application Block for .NET  https://www.microsoft.com/en-us/download/con ...

  5. 转:drupal sql查询count

    Count queries Count queries Any query may have a corresponding "count query". The count qu ...

  6. Spring Data MongoDB 环境搭建

    一.开发环境 spring版本:4.0.6.RELEASE spring-data-mongodb版本:1.4.1.RELEASE junit版本 4.11 maven版本:3.0.5 二.pom.x ...

  7. Python power spectral 功率谱

    You can also use scipy.signal.welch to estimate the power spectral density using Welch’s method. Her ...

  8. Android 黑色样式menu

    效果图:

  9. spring单元测试报错:Failed to load ApplicationContext 的解决方法

    使用idea 配置单元测试之后,配置完spring的注解@junit 和@runer 之后 一直报错. 最后发现是默认使用jdk1.8引起的,使用jdk1.7即可.

  10. macvtap与vhost-net技术

    MacVlan的功能是给同一个物理网卡配置多个MAC地址,可以在软件上配置多个以太网口,属于物理层的功能.MacVTap是用来替代TUN/TAP和Bridge内核模块的.MacTap是基于MacVla ...