初识Linux

来源:互联网 发布:淘宝卖家如何加入一淘 编辑:程序博客网 时间:2024/06/06 17:38

一、LinuxUnix的关系

    简单地说,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。

    LinuxUNIX的最大的区别是,前者是开发源代码的自由软件,而后者是对源代码实行知识产权保护的传统商业软件。这应该是他们最大的不同,这种不同体现在用户对前者有很高的自主权,而对后者却只能去被动的适应;这种不同还表现在前者的开发是处在一个完全开放的环境之中,而后者的开发完全是处在一个黑箱之中,只有相关的开发人员才能够接触的产品的原型。

  Linux的源头要追溯到最古老的UNIX1969年,Bell实验室的KenThompson开始利用一台闲置的 PDP-7计算机开发了一种多用户,多任务操作系统。很快,Dennis Richie加入了这个项目,在他们共同努力下诞生了最早的UNIXRichie受一个更早的项目——MULTICS的启发,将此操作系统命名为 Unix。早期UNIX是用汇编语言编写的,但其第三个版本用一种崭新的编程语言C重新设计了。CRichie设计出来并用于编写操作系统的程序语言。通过这次重新编写,Unix得以移植到更为强大的 DEC PDP-11/4511/70计算机上运行。后来发生的一切,正如他们所说,已经成为历史。Unix从实验室走出来并成为了操作系统的主流,现在几乎每个主要的计算机厂商都有其自有版本的Unix.

  Linux起源于一个学生的简单需求。LinusTorvalds,Linux的作者与主要维护者,在其上大学时所买得起的唯一软件是Minix. Minix是一个类似Unix,被广泛用来辅助教学的简单操作系统。LinusMinix不是很满意,于是决定自己编写软件。他以学生时代熟悉的Unix作为原型,在一台Intel 386 PC上开始了他的工作。他的进展很快,受工作成绩的鼓舞,他将这项成果通过互连网与其他同学共享,主要用于学术领域。有人看到了这个软件并开始分发。每当出现新问题时,有人会立刻找到解决办法并加入其中,很快的, Linux成为了一个操作系统。值得注意的是Linux并没有包括Unix源码。它是按照公开的POSIX标准重新编写的。Linux大量使用了由麻省剑桥免费软件基金的GNU软件,同时Linux自身也是用它们构造而成。

    另外,UNIX系统大多是与硬件配套的,而Linux则可运行在多种硬件平台上。UNIX是商业软件,而Linux是自由软件,免费、公开源代码的。

二、Linux的发展史以及如何壮大

    Multics:公用计算服务系统(美国为了支持波士顿所有的分时用户而开发的系统(Unix前身)

    UnixMultics的开发难度过大导致项目停滞,贝尔实验室退出开发之后,Ken ThompsonDennis M. RitchieC语言之父)在原基础上开发了Unix,而后ThompsonB语言重写系统,Ritchie用了基于B语言改进的C语言重写系统。

    AT&T:贝尔实验室的母公司,AT&T80年代推出了Unix的商业版本,SystemIII,SystemV

    BSDUnix的源代码被分发给各大高校,其中伯克利分校改进系统后命名为BSD,增加了vi,shell等实用工具,于是获得巨大成功的BSD4代替了官方(AT&T)的SystemV成为了主流Uinx系统。

    POSIX:为了统一两大系统(SystemVBSD,IEEE标准委员会进行了名为POSIX的项目,制定1000.3标准。

    OSFIBMDECHP等公司联合建立了OSF(自由软件联盟),开发了一个符合所有IEEE和其他标准的系统以应对AT&TUnix的控制,针对OSF的出现,AT&T建立了UI,包括其他公司字体推出的标准,Unix衍生出一系列亚种,  IBM AIX  SUNSolaris  HP HP-UX  FreeBSD  Linux  iOS  Andriod.

    MinixUnix的商业化导致源码不公开,及其不利于教学,荷兰阿姆斯特丹Vrije大学计算机科学系的坦尼鲍姆(Andrew S. Tanenbaum)教授决定编写一个在用户看来和UNIX完全兼容,然而内核全新的操作系统MinixMinix没有借用AT&T一行代码,所以不受许可证的限制,它可以被班级和个人用来学习。通过它读者可以剖析一个操作系统,研究其内容如何运作。这个系统就是Linux的前身。

    Linux:一个芬兰学生Linus Torvalds决定编写一个类似于Minix的系统,但是它特征繁多、面向实用而非教学,这就是Linux 诞生于学生之手 成长于Internet 
壮大于自由而开放的文化。

    Linux之父-Linus Torvalds:芬兰、赫尔辛基大学、1990起始于写两个进程,然后写驱动程序、文件系统、任务切换程序,从而形成一个操作系统雏形,并把它放在Internet上供大家下载修改。

    Linux得以流行的原因之一:-遵循POSIX标准:POSIX表示可移植操作系统接口(Portable Operating System Interface POSIX是在Unix标准化过程中出现的产物。 
POSIX 1003.1
标准定义了一个最小的Unix操作系统接口 ,任何操作系统只有符合这一标准,才有可能运行Unix程序。

    Linux的肥沃土壤(GNU):GNU GNU IsNot Unix的递归缩写,是自由软件基金会的一个项目。Richard Stallman建立了GNU项目,要创建一个能够自由发布的类UNIX系统。GNU项目产品包括 emacs编辑器、著名的 GNU C Gcc编译器等,这些软件叫做GNU软件。GNU软件和派生工作均适用GNU通用公共许可证,即 GPLGeneralPublic License ),Linux的开发使用了众多的GNU工具。

    GPL(开源软件的法律):GPL允许软件作者拥有软件版权,但GPL规定授予其他任何人以合法复制、发行和修改软件的权利。

三、GNU计划

    GNU计划,有译为革奴计划,是由查理德.斯托曼1983927日公开发起的,它的目标是创建一套完全自由的操作系统。理查德·斯托曼最早是在net.unix-wizards新闻组上公布该消息,并附带一份《GNU宣言》等解释为何发起该计划的文章,其中一个理由就是要重现当年软件界合作互助的团结精神

    GNU“GNU's Not UNIX”的递归缩写,为避免与gnu(非洲牛羚,发音与“new”相同)这个单词混淆,斯托曼宣布GNU应当发音为“Guh-NOO”/ˈgnuː/(帮助·关于)),与“canoe”发音相似。

    UNIX是一种广泛使用的商业操作系统的名称。由于GNU将要实现UNIX系统的接口标准,因此GNU计划可以分别开发不同的操作系统。GNU计划采用了部分当时已经可自由使用的软件,例如TeX排版系统和X Window视窗系统等。不过GNU计划也开发了大批其他的自由软件,这些软件也被移植到其他操作系统平台上,例如MicrosoftWindows、BSD家族、SolairsMacOS

    为保证GNU软件可以自由地使用、复制、修改和发布,所有GNU软件都包含一份在禁止其他人添加任何限制的情况下,授权所有权利给任何人的协议条款,GNU通用公共许可证GNU General Public License,GPL)。这个就是被称为公共版权的概念。GNU也针对不同场合,提供GNU宽通用公共许可证(与GNU自由文档许可证这两种协议条款。

四、GPL协议

    GPL,是General Public License的缩写,是一份GNU通用公共授权非正式的中文翻译。它并非由自由软件基金会所发表,亦非使用GNU通用公共授权的软件的法定发布条款直有GNU通用公共授权英文原文的版本始具有此等效力。

大多数软件许可证决意剥夺你共享和修改软件的自由。相比之下,GNU通用公共许可证试图保证你共享和修改自由软件的自由。——保证自由软件对所有用户是自由的。GPL适用于大多数自由软件基金会的软件,以及由使用这些软件而承担义务的作者所开发的软件。(自由软件基金会的其他一些软件受GNU库通用许可证的保护)。你也可以将它用到你的程序中。当我们谈到自由软件(free software)时,我们指的是自由而不是价格。

为了保护你的权利,我们需要作出规定:禁止任何人不承认你的权利,或者要求你放弃这些权利。如果你修改了自由软件或者发布了软件的副本,这些规定就转化为你的责任。

例如,如果你发布这样一个程序的副本,不管是收费的还是免费的,你必须将你具有的一切权利给予你的接受者;你必须保证他们能收到或得到源程序;并且将这些条款给他们看,使他们知道他们有这样的权利。

我们采取两项措施来保护你的权利,一是给软件以版权保护,二是给你提供许可证。它给你复制,发布和修改这些软件的法律许可。

同样,为了保护每个作者和我们自己,我们需要清楚地让每个人明白,自由软件没有担保(no warranty)。如果由于其他某个人修改了软件,并继续加以传播。我们需要它的接受者明白:他们所得到的并不是原来的自由软件。由其他人引入的任何问题,不应损害原作者的声誉。

最后,任何自由软件不断受到软件专利的威胁。我们希望避免这样的风险,自由软件的再发布者以个人名义获得专利许可证。事实上,将软件变为私有。为防止这一点,我们必须明确:任何专利必须以允许每个人自由使用为前提,否则就不准许有专利。

五、POSIX标准

    POSIX表示可移植操作系统接口Portable Operating System Interface ,缩写为POSIX),POSIX标准定义了操作系统应该为应用程序提供的接口标准,是IEEE为要在各种UNIX操作系统上运行的软件而定义的一系列API标准的总称,其正式称呼为IEEE 1003,而国际标准名称为ISO/IEC 9945

    POSIX标准意在期望获得源代码级别的软件可移植性。换句话说,为一个POSIX兼容的操作系统编写的程序,应该可以在任何其它的POSIX操作系统(即使是来自另一个厂商)上编译执行。

    POSIX并不局限于 UNIX。许多其它的操作系统,例如 DEC OpenVMS 支持 POSIX标准,尤其是 IEEE Std. 1003.1-19901995年修订)或 POSIX.1POSIX.1提供了源代码级别的 C 语言应用编程接口(API)给操作系统的服务程序,例如读写文件。POSIX.1已经被国际标准化组织(International StandardsOrganizationISO)所接受,被命名为ISO/IEC 9945-1:1990 标准。

 


0 0
原创粉丝点击