美文网首页我爱编程
第一章、什么是Linux?

第一章、什么是Linux?

作者: 赵晨_1995 | 来源:发表于2017-04-17 00:12 被阅读0次

    我们将会从对Linux是怎样变成今天这样的一个操作系统开始。我们将会讨论Linux过去和未来的发展,并会详细了解这个系统的好处与不便之处。我们将会讨论Linux不同的发行版,简要讨论开源并且尝试对GNU做一点解释。
    这一章回答如下问题:
    Linux是什么?
    Linux是如何开始的?从哪里开始的?
    Linux是一个所有事情都在文本模式下做的系统吗?
    Linux有前途吗?还是它仅仅是一种炒作?
    使用Linux的好处是什么?
    坏处是什么?
    Linux有哪些不同的种类?我如何选择适合我的那一种?
    开源和GNU运动又是什么?

    1.1.历史

    1.1.1.UNIX

    为了理解Linux的流行,我们需要回到约30年以前。

    想象像房子、甚至像体育馆那么大的计算机。在这些计算机的尺寸引起了很大的问题之时,有一件事使情况更为糟糕:每一台计算机都有一个不同的操作系统。那时软件都是按特定的目的定制的,并且在一台给定系统上运行的软件并不能在另一台系统上面运行。能够在一台系统上工作并不自然而然地意味着你可以在另一台系统上工作。对于用户和系统管理员来说,这给他们造成了不小的困难。

    当时的计算机造价非常昂贵,即便购买了本机,为了让用户理解它们是如何工作的,还是得做出不小的牺牲。每单位计算能力的总花费相当之多。

    当时的世界技术还没有那么发达,因此当时的人们还得与这么大的尺寸共度一个十年。1969年,一组来自贝尔实验室的开发者着手致力于解决这个软件兼容性问题,他们开发出来一个新的操作系统,这个操作系统具有如下特性:

    1. 简单而优雅
    2. 系统用C语言编写而不是汇编代码
    3. 能够重用代码

    贝尔实验室的开发者们把他们的项目称为"UNIX"。

    代码重用性非常重要。直到那时,所有市场上能买得到的计算机系统都是使用一种针对一种机器特意开发的代码编写的,这些代码现在通常被称为内核。内核是那部分仅有的需要为每一个特定系统改写的代码,它构成了UNIX系统的基础。操作系统和其他所有的功能都是围绕这个核心构造的,并且是运用一种更高级的语言,也就是C,来书写的。

    这门语言是为了创建UNIX操作系统特地开发的。使用这门新的技术,开发能够在许多不同种类上的硬件运行的操作系统变得容易很多。

    软件开发商很快地适应了新的情况,因为他们几乎不需要额外的付出就可以将软件的销售量增加十倍。出现了新的奇怪的情况:比如想象不同制造商制造的计算机在同一个网络里相互通信,或者用户在不同的系统上工作而不需要为使用另一台计算机付出额外的学习成本。UNIX在帮助用户与不同系统和睦相处这件事上做出了很大贡献。

    数十年来,UNIX的开发不断向前推进。在UNIX上能够做更多的事情,并且更多的硬件和软件制造商向他们的产品增加了针对UNIX的支持。

    UNIX最初仅仅是创建在具有大型机和小型机的规模非常大的环境中(注意,PC是微型机)。你必须在大学,或者是政府、大型的金融机构工作才能接触到一个UNIX系统。

    不过更小型的计算机正处于开发之中,且在八十年代末,很多人都有了家庭计算机。到那时为止,对于PC体系结构已经有数种版本的UNIX可用,但是没有一个是真正免费的,而且更重要的是,他们都慢得要命,所以大多数人在他们的PC上运行MS-DOS或Windows 3.1 系统。

    1.1.2. 莱纳斯和Linux

    截至90年代初家用电脑终于有足够的性能来运行一个完整的UNIX系统。
    一个在赫尔辛基大学学习计算机科学的年轻人,莱纳斯·托瓦兹,认为有某种能免费使用的学术版本的UNIX是个不错的注意,然后马上开始编码。

    他开始提出问题,寻找能够帮助他在PC上安装UNIX的答案和解决方案。下面是从1991年起他最初在comp.os.minix上发的帖子:

    From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
    Newsgroups: comp.os.minix
    Subject: Gcc-1.40 and a posix-question
    Message-ID: 1991Jul3.100050.9886@klaava.Helsinki.FI
    Date: 3 Jul 91 10:00:50 GMT
    Hello netlanders,
    Due to a project I'm working on (in minix), I'm interested in the posix
    standard definition. Could somebody please point me to a (preferably)
    machine-readable format of the latest posix rules? Ftp-sites would be
    nice.

    从一开始,莱纳斯的目标就是建立一个免费的、与原始UNIX完全兼容的系统。这就是他为什么询问POSIX标准的原因。POSIX仍然是UNIX的标准。

    在那个年代即插即用仍然没有发明,但是很多人对有一个他们自己的UNIX操作系统这件事很感兴趣,这便是仅有的小障碍。对与各种各样新的硬件,能够使用的新驱动以持续增长的速度出现。几乎一有一款新的硬件可用,有人就买下它并且将它提交给Linux测试,随着系统逐渐被访问,比以往越来越多种类的硬件有了免费的代码被发布出来。这些程序员没有在PC跟前停下脚步,每一件他们能够找到的硬件对Linux来说都是有用的。

    那时候,这些人被叫做“技术宅”或“电脑狂人”,不过只要受支持的硬件列表变得越来越长,他们根本不会在意这些事。多亏了这些人,Linux现在不仅是运行新PC的理想系统,而且对于那些没了Linux就不能用的又老又奇特的的硬件来说,Linux也是作为系统的不二选择。

    在莱纳斯发表那篇帖子的两年之后,Linux的用户已经累积到12000人之多。这个流行于爱好者之间的项目,保持着稳步成长,并且一直处于POSIX标准的范围之内。随后几年,所有UNIX的特性都被加入到Linux中来,结果就是如今Linux所成为的成熟的操作系统。Linux是UNIX的一个完全的翻版,同时适用于工作站、中端和高端的服务器。如今,硬件和软件市场上许多重量级的选手每个都有自己的Linux开发人员,在你的本地经销商处你甚至可以购买带有官方支持的预安装的Linux机器。尽管还有很多硬件和软件仍然不受支持。
    如今Linux已经加入到台式机的市场竞争中来,Linux开发者主要关注联网和服务,而办公应用成为了被攻克的最后一道壁垒。我们不喜欢承认微软正主导市场规则这件事,最近几年以来如此之多的替代系统被创造出来,使得对于工作站来讲,Linux也是一个可以接受的选择,它提供了建议的UI和与微软兼容的办公应用诸如文字处理器,电子表格,演示文稿等。

    在服务端,Linux作为稳定和可靠的平台而众所周知,为著名的在线书店亚马逊、美国邮局总局、德国陆军以及很多企业与机构提供了数据库和交易服务。尤其是因特网提供商和网络服务提供商对使用Linux作为防火墙、代理服务器和Web服务器情有独钟。你会发觉每一个乐于使用一台舒服的管理工作站的UNIX系统管理员手边都会有一台Linux机器。Linux机器的集群被用来制作诸如泰坦尼克、怪物史莱克之类的电影。在邮局里,有用于路由邮件的控制中心。在大的搜索引擎中,集群被用来执行因特网的搜索操作。这只是每天在世界上Linux所执行的成千上万种重型应用的一小部分。

    值得指出的是,现代Linux不仅运行在工作站、中端和高端服务器上,同时也运行在诸如掌上电脑、手机、等一火车嵌入式的应用,甚至是运行在实验性的腕表上。这使得Linux是世界上唯一能够覆盖如此之多种类硬件的操作系统。


    1.2 用户界面

    1.2.1 Linux很难吗?

    学习Linux难不难取决于你问的人。有经验的UNIX用户会说不。因为对高级用户和程序员来说,Linux是一个理想的操作系统。因为它被,并且正在被这样的人开发。

    任何一个好的程序员想要的东西在Linux这都有:编译器、库、开发与调试工具。这些包与每一个标准的Linux发行版都是捆绑在一起的。C编译器被免费包含在内,与很多UNIX发行版正相反,它们对这款工具收取授权费。所有文档和用户手册被提供出来,并且常常会包含示例,让你能够马上上手。这感觉就像使用UNIX一样,并且在UNIX和Linux之间切换是一件很自然的事情。

    在Linux发展的早期, 成为一名专家某种程度上需要你着手使用Linux系统。那些掌握Linux系统的人比剩下那些还没看到光亮的"luser"自我感觉良好。让一名Linux新手去“RTFM”,即阅读使用手册是一种惯例。尽管在每个系统上都有使用手册,检索说明文档仍然是一件很困难的事。即便有人这样做了,解释说明的用语仍然是如此专业化,使得新用户很容易就在学习使用系统这件事上灰心丧气。

    Linux的使用社群开始意识到,如果Linux想要在操作系统市场上成为一名有力的竞争者,它必须在易用性上作出某种重大的改变。


    1.2.2. 给零经验用户使用的Linux

    像RedHat,SuSE和Mandriva这样的公司已然涌现,他们为适于大众消费者提供了对应的Linux发行版。为了简化程序与服务的管理,他们集成了社群开发的大量的图形用户界面(GUI)。在今日,作为一名Linux用户你拥有各种各样的方式来从里到外了解你的系统,不过再也不需要那些能够使你的系统服从你的请求的知识了。

    如今你可以采用图形界面的方式登录系统,并且不敲一个字你就能够运行所有所需的应用程序,与此同时,如果需要的话,你仍然具有访问系统核心的能力。正由于这种结构,Linux允许一个用户触及到系统内部,它完全适合于新手和有经验的用户。新手没有被要求做很困难的事情,而有经验的用户也没有被要求去和他们一开始学习Linux时一样去在电脑上工作。

    在服务领域的开发持续进行的同时,对于那些最不可能了解一台机器是如何运转的一般桌面用户来说,伟大的事情正在上演。桌面应用程序的开发者正做出惊人的努力,创造你所见过的最漂亮的桌面,换句话说也就使得你的Linux电脑看起来就像你之前用过的微软Windows或苹果工作站一样。最新的进展同样包括3D加速支持、USB设备支持,系统和软件包的一键更新等等。Linux具有这些特性,并且努力试图使得所有的所有可用的服务以一种条理分明的、普通人能够理解的方式呈现。下面是一个包含一些很棒的示例的列表,这些网站提供了许多屏幕截图,让你对Linux在台式机上的工作情况一睹为快:


    1.3. Linux有前途吗?

    1.3.1. 开源

    开源软件背后的理念相当易于理解:当一名程序员能够阅读、分发与更改代码时,代码会不断完善。人们可以改写它、修复它、对它进行除错,并且他们的工作效率能够使得传统软件公司相形见绌。以这种方式开发的软件将会更灵活并且比以传统方式开发的软件有更好的质量,因为与一个闭源的软件开发者所做的测试相比,这样的软件有更多的人在更加多样的环境下进行测试。

    开源软件倡议让这一点对商业世界越来越明晰,慢慢地,商业厂商逐渐也意识到这一点。尽管有很多学者和技术人员20年来对这是未来的发展方向一点深信不疑,商业厂商仍然需要像因特网这样的应用才能使他们意识到他们能够从开源这件事上盈利。现在Linux早已走过了仅供学术系统使用,并且仅仅对一小撮有技术背景的人才有用的阶段。

    现在Linux提供的不仅仅是一套操作系统。它有一套完整的基础设施,能够支持由创建一个操作系统、为其写和测试应用程序、把所有东西都呈现给用户,并提供维护、升级、支持和定制化等等构成的工作链条。如今,Linux已经能够应对来自这个快速变化的世界的挑战。


    1.3.2 十年为您工作的经验

    在Linux可能是最有名的开源发起者之时,有另一个为Linux的流行做出巨大贡献的项目,这个项目叫作SAMBA。它的主要成就在于对服务器消息块(SMB,Server Message Block)/通用网络文件系统协议(CIFS,Common Internet File System)的反向工程。这个协议主要用于在PC相关的机器上提供文件和打印服务,它受Windows NT、OS/2和Linux的原生支持。其软件包几乎在每个系统上都可用,它提供在混合环境中使用Windows协议进行互联的解决方案,即使用Windows兼容的文件和打印服务器(上至Windows XP,包括Windows XP)。

    也许与SAMBA项目相比,更成功的项目是Apache HTTP服务器项目。这个服务器在UNIX,Windows NT和许多其他操作系统上运行。它最初被称为“一个到处是补丁的服务器(A PAtCHy server)”,根据既存的代码和许多“补丁文件”而来。这些成熟代码的名字本应是意指美国本土的阿帕契人的部落,他们以在作战策略和不竭的耐久力上的非凡本领闻名。Apache已经显示出运行速度上的飞跃,并且具有更强的稳定性和与其他web服务器相比更全面的功能特性。Apache在每天具有百万访问者的站点上运行,尽管没有来自开发者的官方支持,Apache用户社群为你的每一个问题都提供解答。若干第三方厂商现在提供对Apache的商业支持。

    在办公应用这个类目下,有许多Office套件的翻版可供使用,包括从在Windows 工作站上可用的应用的部分实现到全部实现。这些应用的发起很大程度上促进了桌面端市场接受Linux,因为用户不需要额外的培训就可以习得如何在这些新系统上工作。

    伴随着桌面应用而来的是普通用户的赞誉。但不仅仅是赞誉,一起来的还有他们的特殊要求,这些要求随着时间推移变得越来越错综复杂、越来越苛刻。

    开源社群很大程度上由贡献了五年之久的人们构成,他们确定了Linux在桌面端市场上和一般IT应用里的重要的竞争地位。受雇的职员和相似的志愿者在孜孜不倦地工作,使得Linux能够在市场上保有一席之地。有更多的用户,就有更多的问题。开源社区确保答案不断出现,同时以怀疑的眼光关注着答案的质量,致使更强的稳定性和进一步的可访问性。

    列出所有可用的Linux软件超出了本书的范围,因为有成千上万的软件包。这本教程自始至终我们都会向你呈现最常用的软件包,这些软件包几乎都是可以免费用的。为了一定程度上移去除初学者的恐惧,下面是一张你最想用的程序之一的截图。你可以自己看出用不着付出额外的努力就可以使得从Windows过来的用户感到“如家般自在”。

    图 1-1. 与微软Office兼容的OpenOffice电子表格



    1.4 Linux的特点

    1.4.1 利

    使用Linux的许多好处是因袭了Linux的源头,是根植于UNIX的。当然除了第一条之外:

    • Linux是免费的:
      他们说就像免费啤酒那样。如果你想什么都不花的话,你甚至练一张CD的钱都不用付。Linux可以整个完全免费地从因特网上下载下来。没有注册费用,没有对每个用户收取的授权费,免费的更新,如果你想改变你系统的话也有免费可用的源代码可用。

    最重要的是,Linux可以像言论自由那般自由:

    通常使用的许可是GPL(GNU Public License,GNU公共许可)。这个许可表明对于想可能想修改Linux并最终再发行一个修改后的版本的人,他们都有权利这样做,不过有一个条件必须满足,就是源代码在再发行之后仍然可用。实际上,你可以自由地获取一张内核镜像。比方说,你都可以针对时空穿越或时间旅行的机器增加支持并且售卖你新写的代码,只要你的客户仍然能够拥有一份源代码。

    • Linux可以移植到任何硬件平台:
      想要销售一款新型计算机的厂商如果不知道在他的新机器上面要跑什么系统的话(比如说你车里或洗衣机里的CPU),可以获取一个Linux的内核并且让它跑在他的硬件上,因为与这项工程相关的文档都是可以免费使用的。

    • Linux 是为了持续运行创造的:
      和UNIX一样,我们可以期望一台Linux系统不需要重启,一直持续运行下去。这就是为什么许多任务在晚间执行或者是在其他无事的时间安排的原因,致使在忙碌期间的更高的可用性以及硬件的更

    相关文章

      网友评论

        本文标题:第一章、什么是Linux?

        本文链接:https://www.haomeiwen.com/subject/qrrbattx.html