一、 计算机硬件与软件

1)计算机硬件和软件的组成结构

1.1 Linux发展史、内核版本和发行版本_系统/运维

2)硬件

1946年诞生于宾夕法尼亚州,占地170平米,重量达到30吨,名字叫做ENIAC(electronic numerical integrator and calculator)主要作用是为美国国防部防空系统计算飞弹轨迹。也是第一代计算机,在这里我们可以将计算机划分四个时代,分别是:

第一代计算机(1946-1957)电子管时代

第二代计算机(1958-1964)晶体管时代

第三代计算机(1965-1970) 集成电路时代

第四代计算机(1971-) 大规模集成电路时代

它们都有一个特点,都遵循冯诺依曼体系

1.1 Linux发展史、内核版本和发行版本_Linux_02

3)软件

软件分为系统软件、应用软件。系统软件由操作系统、实用程序、编译程序等组成。操作系统实施对各种软硬件资源的管理控制。实用程序是为方便用户所设,如文本编辑等。编译程序的功能是把用户用汇编语言或某种高级语言所编写的程序,翻译成机器可执行的机器语言程序。常见系操作系统:DOS、windows NT、Unix、和linux应用软件是用户按其需要自行编写的专用程序,它借助系统软件和支援软件来运行,是软件系统的最外层。

计算机硬件与软件之间的关系

1.1 Linux发展史、内核版本和发行版本_系统/运维_03

二、 Linux的历史发展

1) Linux的起源

1.Multics计划

  上个世纪六十年代,那个计算机还没有很普及,只有少数人才能使用,而且当时的计算机系统都是批处理的,就是把一批任务一次性提交给计算机,然后就等待结果。并且中途不能和计算机交互。往往准备作业都需要花费很长时间,并且这个时候别人也不能用,导致了计算机资源的浪费。

  为了改变这种情况,在1965年前后,贝尔实验室(Bell)、麻省理工学院(MIT)以及通用电气(GE)联合起来准备研发一个分时多任务处理系统,简单来说就是实现多人同时使用计算机的梦想,并把计算机取名为Multics(多路信息计算系统),但是由于项目太复杂,加上其他原因导致了项目进展缓慢,1969年贝尔实验室觉得这个项目可能不会成功,于是就退出不玩了。

2.Unix的诞生

Bell退出Multics计划之后,Bell实验室的那批科学家就没有什么事做了,其中一个叫做Ken Thompson的人在研发Multics的时候,写了一个叫做太空大战(Space Travel)的游戏,大概就是一个很简单的打飞机的游戏,但是这个游戏运行在Multics上。当Bell退出了Multics后,Thompson就没有了Multics的使用环境了,为了能够继续游戏,于是他花了一个月的时间写了一个小型的操作系统,用于运行Space Travel,当完成之后,Thompson怀着激动的心情把身边同事叫过来,让他们来玩他的游戏,大家玩过之后纷纷表示对他的游戏不感兴趣,但是对他的系统很感兴趣。

  因为MULTICS是“Multiplexed informtion and Computing Service”的缩写(多路信息计算系统),于是他们命名这个系统为:“UNiplexed Information and Computing Service”,缩写为“UNICS”(没路信息计算系统,与Multics相反)。后来大家取其谐音,就称其为“UNIX”了。

  这个时候已经是1970年了,于是就将1970年定为Unix元年,因此计算机上的时间就是从这一年开始计算的。

  后来Unix这个小操作系统就在Bell实验室内部流行开,并经过不断地改良最终在1974年7月Unix发展到第5个版本,Bell实验室公开了Unix,结果引起了学术界的广泛兴趣并对其源码索取。所以,Unix第五个版本就以“仅用于教育目的”的协议,提供给各大学作为教学之用,成为当时操作系统课程的范例教材。各大学公司开始通过Unix源码对Unix进行了各种各样的改进和拓展。1978年学术界的老大伯克利大学,推出了一份以第六版为基础,加上一些改进和新功能而成的Unix。并命名为BSD(Berkeley Software Distribution伯克利分发版),开创了Unix的另一分支:BSD系列。

  于是乎Unix就有了两个分支,一个就是BSD系列的分支,一个就是Bell本身发放的分支,当时因为Bell属于AT&T,AT&T受到了美国《谢尔曼反托拉斯法》的影响,不能销售除了电话机电报机等之外的商品,后来AT&T分解,Bell可以卖Unix了,Unix走向了商业化,如果想继续使用就需要购买授权,一份授权4万美元。

3.Minix及Linux的诞生

  在Unix昂贵的授权费用下,很多大学不得不停止对其研究,老师导致上课也不知道讲什么了。在1987年荷兰有个大学教授安德鲁写了一个Minix,类似于Unix,专用于教学。当Minix流传开来之后,世界各地的***们纷纷开始使用并改进,希望把改进的东西合并到Minix中,但是安德鲁觉得他的系统是用于教学的,不能破坏纯净性,于是拒绝了。

  在1991年9y月17日,Linus Torvalds(林纳斯.托瓦兹)在互联网上公布了自己写的Linux,可能是表达对安德鲁的不满吧(为什么不接受大家的好意呢?你让大家的满腔热情往哪放呢?),于是Linus发布了一个帖子,大概就是说:我写了一个操作系统的内核,但是还不够完善,你们以任何姿势使用不收费,也可以帮助我一起修改。帖子发出后引起了强烈的反响。在大家的努力下,于1994年Linux的1.0版本正式发布。

为什么会引起这么强烈的反应呢?这就要从了另一个人说起,那就是Richard Stallman(自由软件之父)。Stallman是一个非常“激进”的人,因为Unix商业化的影响,他认为软件是全人类的智慧结晶,不应该为某一家公司服务。在八十年代,他发起了自由软件运动,吹起了共产主义的号角(发起了GUN运动),并发布了软件界的共产主义宣言(GPL协议),并且这一运动得到了很多人的认同。

4.GUN计划

1984 年,史托曼开始 GNU 计划, 这个计划的目的是:建立一个自由、开放的 Unix 操作系统(Free Unix)。 但是建立一个操作系统谈何容易啊!而且在当时癿 GNU 是仅有自己一个人单打独斗的,这实在太麻烦,但又不想放弃这个计划,那可怎举办啊?聪明的史托曼干脆反其道而行之『既然操作系统太复杂,我就先写可以在 Unix 上面运行的小程序,这总可以了吧?』在这个想法上, 史托曼开始参考 Unix 上面现有的软件,并依据这些软件的作用开发出功能相同的软件,开发期间史托曼绛不看其他软件癿原始码,以避免吃上官司。后来一堆人知道免费的 GNU 软件,并且实际使用后发现与原有的专利软件也差不了太多,便转而使用 GNU 软件, GNU 计划逐渐打开知名度。虽然 GNU 计划渐渐打开知名度,但是能见度还是不够。这时史托曼又想:不论是什么软件, 都得要进行编译成为二进制文件(binary program)后才能够执行,如果能够写出一个不错的编译程序,那不就是大家都需要的软件了吗? 因此他便开始撰写 C 语言的编译程序,那就是现在相当有名癿的GNU C Compiler(gcc)!这个点相当的重要!这是因为 C 语言编译程序版本众多,但都是专利软件, 如果他写的 C 编译够棒,性够佳,那举将会大大癿讥 GNU 计划出现在众人眼前!但开始撰写 GCC 时幵丌顺利,为此,他先转而将他原先就已绉写过的Emacs 编辑器写成可以在Unix 上面跑癿软件,幵公布原始码。 Emacs 是一种秳序编辑器,他可以在用户撰写秳序癿过秳中就性行程序询法的检验,此一功能可以减少秳序训计师除错癿时间!因为 Emacs 太优秀了,因此,很多人便直接向他购买。此时因特网尚未流行,所以,史托曼便借着 Emacs 以磁带(tape)出售,赚了一点钱 ,迚而开始全力撰写其他软件。幵丏成立自由软件基金会(FSF, Free Software Foundation),请更多工程师和志愿者来撰写软件。终于还是完成了 GCC,这比 Emacs 还更有帮助! 此外,他还撰写了更多可以被调用的 C 函式库(GNU C library),以及可以被使用来操作操作系统得基本接口 BASHshell!这些都在 1990 年左史完成了!

2)Linux的诞生

1991年,在赫尔辛基,Linus Torvalds开始那个后面成为了Linux内核的项目。最初它只是一个Torvalds用来访问大学里的大型的Unix服务器的虚拟终端。他专门写了一个用于他当时正在用的硬件的,与操作系统无关的程序,因为他要用他那用80386处理器的新PC机的功能。开发是在Minix上,用至今仍为首选的编译器——GCC——来完成的。[来源请求]

Torvalds在他的书只为欢乐中说过,他最后才意识到自己写了一个操作系统内核。1991年8月25日,他在发布到新闻组“comp.os.minix.”的Usenet上发布了这个系统:

“ 使用minix操作系统的各位,大家好!

我正在为386(486)AT clones写一个(自由的)操作系统(只是爱好而已,不会和GNU一样成为广泛且专业的操作系统)。这个计划从4月份开始酝酿,现在已做好准备。我希望得到人们关于minix优缺点的任何反馈意见,因为我的操作系统和它有类似的方面(因为可行性方面的原因,两者的文件系统物理布局相同)。 我刚刚把bash(1.08)和gcc(1.40)移植到了系统上,而且看来运行得很好。这意味着我可以在几个月内我就可以把它变得有实用性了。我想知道大家想要些什么特色。欢迎提任何的建议,但是我不保证我会实现你的建议:-)

Linus (torvalds@kruuna.helsinki.fi)

另:是的,它没有包含任何minix的代码;它的文件系统还是一个多线程的。它没有可移植性(它利用了386的任务调度算法等),而且它很可能永远只会支持AT的硬盘(我只有这种硬盘:-( )

3)名字的由来

Linus Torvalds本要把他的发时叫做Freax——“fread”,“free”和“x”(暗指Unix)的合成词。在开发系统的前半年里,他把文件以文件名“Freax”存储。Torvalds考虑过Linux这个名字,但是因为觉得它过于自我本位而放弃了使用它。

为便于开发,在1991年9月,他把那些文件上传到了赫尔辛基工业大学(HUT)的FTP服务器(ftp.funet.fi)。Torvalds在HUT负责管理那个服务器的同事Ari Lemmke,觉得“Freax”这个名字不是很好,就在不咨询Torvalds的情况下,把项目的名字改成了“Linux”。但是之后,Torvalds也同意“Linux”这个名字了:“经过多次讨论,他承认Linux这个名字更好。在0.01版本Linux的源代码的makefile里仍然使用‘Freax'这个名字,在之后‘Linux'这个名字才被使用。所以,Linux这个名字并不是预先想好的,只是它被广泛接受了而已

4)GNU GPL下的Linux

Torvalds先是在它自己的许可下发布Linux内核的,即限制它用于商业活动。和这个内核一起使用的软件是发布在GPL这个自由软件许可下,属于GNU计划一部分的软件。第一次发布的Linux内核,版本0.01,包含了GNU的Bash的二进制版本[8]。 在版本0.01的备注中,Torvalds列出了运行Linux所需的GNU软件:

很不幸,单单一个内核是什么都做不了的。要让一个系统能够工作,还需要一个shell,编译器,函数库等等。这些各是独立的部分,它们有着或松或紧的版权限制。与linux一起使用的大多是GNU的软件,而这些软件是非盈利版权限制的。在Linux的发布版本里没有包含这些工作——你可以向我(或者GNU)索取更多的信息。

1992年,他建议在GPL下发布内核。他先在版本0.12中宣布了这个决定[9]。1992年12月中,他在GNU GPL下发布了0.99版。[10]。Linux和GNU的开发者一起把GNU的部件和Linux集成起来,使它成为一个可运行的自由操作系统。[11]Torvalds说,“把Linux发布在GPL下是我所做过的最好的事。”

5)官方吉祥物

1996年,Torvalds为Linux选定了企鹅作为它的吉祥物。Larry Ewing提供了吉祥物的初稿。现在正在使用的著名的吉祥物就是基于这份初稿的。James Hughes根据“Torvalds's Unix”为它取了名字Tux。

1.1 Linux发展史、内核版本和发行版本_系统/运维_04

6)Linux的特点

开放性:指系统遵循标准规范,特别是遵循开放系统互连(OSI)国际标准。

多用户:是指系统资源可以被不同用户使用,每个用户对自己的资源(例如:文件、设备)有特定的权限,互不影响。

多任务:它是指计算机同时执行多个程序,而且各个程序的运行互相独立。

良好的用户界面:Linux向用户提供了两种界面:用户界面和系统调用。Linux还为用户提供了图形用户界面。它利用鼠标、菜单、窗口、滚动条等设施,给用户呈现一个直观、易操作、交互性强的友好的图形化界面。

设备独立性:是指操作系统把所有外部设备统一当作成文件来看待,只要安装它们的驱劢程序,任何用户都可以象使用文件一样,操纵、使用这些设备,而丌必知道它们的具体存在形式。Linux是具有设备独立性的操作系统,它的内核具有高度适应能力。

提供了丰富的网络功能:完善的内置网络是Linux一大特点。

可靠的安全系统:Linux采取了许多安全技术措施,包括对读、写控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。

良好的可移植性:是指将操作系统从一个平台转移到另一个平台使它仍然能以其自身的方式运行的能力。Linux是一种可移植的操作系统,能够在从微型计算机到大型计算机的任何环境中和任何平台上运行。

7)Linux的内核版本和发行版本

Linux内核的版本号命名是有一定规则的,版本号的格式通常为“主版本号.次版本号.修正号”。主版本号和次版本号标志着重要的功能变动,修正号表示较小的功能变更。以2.6.22版本为例,2代表主版本号,6代表次版本号,22代表修正号。其中次版本还有特定的意义:如果是偶数数字,就表示该内核是一个可以放心使用的稳定版;如果是奇数数字,则表示该内核加入了某些测试的新功能,是一个内部可能存在着BUG测试版。如2.5.74表示是一个测试版的内核,2.6.22表示是一个稳定版的内核。读者可以到Linux内核官方网站http://www.kernel.org/下载最新的内核代码。

仅有内核而没有应用软件的操作系统是无法使用的,所以许多公司或社团将内核、源代码及相关的应用程序组织构成一个完整的操作系统,让一般的用户可以简便地安装和使用Linux,这就是所谓的发行版本(distribution),一般谈论的Linux系统便是针对这些发行版本的。目前估计各种发行版本有数十种,它们的发行版本号各不相同,使用的内核版本号也可能不一样,下面就为读者介绍目前比较著名的几个发行版本。

1、Debian Linux

Debian(/ˈdɛbiən/[5])是完全由自由软件组成的类UNIX操作系统,其包含的多数软件使用GNU通用公共许可协议授权,并由Debian计划的参与者组成团队对其进行打包、开发与维护。

Debian项目最初由伊恩·默多克于1993年发起,Debian 0.01版在1993年9月15日发布[6],而其第一个稳定版本则在1996年发布。

该计划的具体工作在互联网上协调完成,由Debian计划领导人带领一个志愿者团队开展工作,并以三份奠基性质的文档作为工作指导:Debian社群契约、Debian宪章和Debian自由软件指导方针。操作系统版本定期进行更新,候选发布版本将在经历过一定时间的冻结之后进行发布。

作为最早的Linux发行版之一,Debian在创建之初便被定位为在GNU计划的精神指导下进行公开开发并自由发布的项目。该决定吸引自由软件基金会的注意与支持,他们为该项目提供从1994年11月至1995年11月为期一年的赞助。[8]赞助终止后,Debian计划创立非营利机构Software in the Public Interest以提供支持并令其持有Debian商标作为保护机构。Debian也接受世界多个非营利组织的资金支持。官方网站:http://www.debian.org/

2、SuSE Linux

SuSE是德国最著名的Linux发行版,在全世界范围中也享有较高的声誉,它的特点是使用了自主开发的软件包管理系统YaST。2003年11月,Novell收购了SuSE,使SuSE成为Red Hat的一个强大的竞争对手。同时还为Novell正在与微软进行的竞争提供了一个新的方向。

官方网站:http://www.novell.com/linux/suse/

3、Red Hat Linux

Red Hat是最成功的Linux发行版本之一,它的特点是安装和使用简单。Red Hat可以让用户很快享受到Linux的强大功能而免去繁琐的安装与设置工作。Red Hat是全球最流行的Linux,Red Hat已经成为Linux的代名词,许多人一提到Linux就会毫不犹豫地想到Red Hat。它曾被权威计算机杂志InfoWorld评为最佳Linux。

官方网站:http://www.redhat.com/

4、其他比较流行发行版本

Linux有非常多的发行版本,从性质上划分,大体分为由商业公司维护的商业版本与由开源社区维护的免费发行版本。商业版本以Redhat为代表,开源社区版本则以debian为代表。这些版本各有不同的特点,在不同的应用领域发挥着不同的作用,不能一概而论。而绝大多数VPS上只提供开源社区维护的发行版本。下面就这些不同的Linux发行版进行简单的分析。 Ubuntu Ubuntu近些年的粉丝越来越多,Ubuntu有着漂亮的用户界面,完善的包管理系统,强大的软件源支持,丰富的技术社区,Ubuntu还对大多数硬件有着良好的兼容性,包括最新的图形显卡等等。这一切让Ubuntu越来越向大众化方向发展。但别忘了:你所需要的只是一个简约、稳定、易用的服务器系统而已! Ubuntu的图形界面固然漂亮,但这也决定了它最佳的应用领域是桌面操作系统而非服务器操作系统。如何你希望在学习Linux的过程中有个沉浸式的环境,那么Ubuntu的确不错:仅仅安装在自己的电脑中而非服务器中。从这一点来讲,Ubuntu并没有在VPS安装的操作系统选择之列,相信你也不会为了那数百M的驱动与宝贵的内存买单。 CentOS 你会发现非常多的商业公司部署在生产环境上的服务器都是使用的CentOS系统,CentOS是从RHEL源代码编译的社区重新发布版。CentOS简约,命令行下的人性化做得比较好,稳定,有着强大的英文文档与开发社区的支持。与Redhat有着相同的渊源。虽然不单独提供商业支持,但往往可以从Redhat中找到一丝线索。相对debian来说,CentOS略显体积大一点。是一个非常成熟的Linux发行版。 Debian 一般来说Debian作为适合于服务器的操作系统,它比Ubuntu要稳定得多。可以说稳定得无与伦比了。debian整个系统,只要应用层面不出现逻辑缺陷,基本上固若金汤,是个常年不需要重启的系统(当然,这是夸张了点,但并没有夸大其稳定性)。debian整个系统基础核心非常小,不仅稳定,而且占用硬盘空间小,占用内存小。128M的VPS即可以流畅运行Debian,而CentOS则会略显吃力。但是由于Debian的发展路线,使它的帮助文档相对于CentOS略少,技术资料也少一些。由于其优秀的表现与稳定性,Debian非常受VPS用户的欢迎。此外还有Arch Linxu、Gentoo、Slackware等一系列的Linux和FreeBSD、Unix等系统,由于其涉及领域更加专业,很少在VPS中出现,因此不作介绍。对于初学者,我们建议采用CentOS或Debian,这两种系统都能在配置较低的VPS上流畅运行。但是如果VPS配置太低(OPENVZ内存在128M以下,或者XEN架构内存在192M以下),建议采用Debian;否则建议采用CentOS,以获取更多的在线帮助与支持,让自己入门更轻松。 CentOS、Ubuntu、Debian三个linux都是非常优秀的系统,开源的系统,也分付费的商业版和free免费版本,下面简单比较这三种系统。 CentOS系统 很多网站站长一般都选择centOS系统,CentOS是从redhat源代码编译重新发布版。CentOS去除很多与服务器功能无关的应用,系统简单但非常稳定,命令行操作可以方便管理系统和应用,并且有帮助文档和社区的支持。 Ubuntu系统 Ubuntu有亮丽的用户界面,完善的包管理系统,强大的软件源支持,丰富的技术社区,并且Ubuntu对计算机硬件的支持好于centos和debian,兼容性强,Ubuntu应用非常多,但对于服务器系统来说,个人感觉并不需要太多的各种应用程序,需要的是稳定,操作方便,维护简单的系统。如果你需要在服务器端使用图形界面,ubuntu是一个不错的选择,你需要注意的是,图形界面占用的内存非常大,而内存越大的vps价格也越高。 Debian系统 Debian也非常适合做服务器操作系统,与Ubuntu比较,它没有太多的花哨,稳定压倒一切,对于服务器系统来说是一条不变的真理,debian这个linux系统,底层非常稳定,内核和内存的占用都非常小,在小内存的VPS就可以流畅运行Debian,比如128m的内存,但debian的帮助文档和技术资料比较少。对于小内存,首选debian,对于非常熟悉linux系统的vps高手,首选debian。 在系统的选择上,属于新手,首选CentOS,并不是centos比Debian和ubuntu好,而是centos是初学者安装vps的首选,它既稳定,占用资源又少,在网络上能方便搜索到安装配置的文档,自身的帮助文档也非常强大;如果你是linux高手,高手的境界一般都选择debian,因为高手能在低配的vps上稳定运行系统;而ubuntu,系统虽然免费,但它适合有钱人玩,它占用的资源是比前面两种系统更高,而vps基本就是卖内存,内存越高,价格越贵。


1.1 Linux发展史、内核版本和发行版本_系统/运维_05 


三、 参考文献

https://zh.wikipedia.org/wiki/Linux%E5%8E%86%E5%8F%B2维基百科

鸟哥的私房菜第三版