西西河

主题:【原创】Linux是什么? -- 请尽量

共:💬23 🌺12 新:
分页树展主题 · 全看 下页
  • 家园 【原创】Linux是什么?

    Linux是什么?

    Linux是一个先进的操作系统内核,支持几十种处理器体系结构,能够运行在小至Palm、大到IBM s390的各种计算机上。无论是一个处理器、两个、四个,还是多达六十四个处理器,Linux都可以收放自如。

    Linux提供了保护式内存管理、抢断式进程管理、符合POSIX标准的多线程支持、高性能的网络支持。Linux“正式”支持的文件系统就有十几种之多,其中不仅包括了随着Linux一起成长起来的ext2/ext3,还有来自IBM的JFS,SGI的XFS,微软的FAT和NTFS,更有分布式的簇(cluster)文件系统,如IBM的AFS、 RedHat的GFS等。

    Linux的设备驱动,一方面可以说是非常领先,几乎所有的新概念、新设备都会在第一时间得到支持,特别是那些更多地用在服务器领域的设备,如10Gbit Ethernet,InfiniBand等。但是在另一面,有些硬件厂商的decision makers依然对于open source心存疑虑,为Linux开发的设备驱动程序依然无法覆盖所有的硬件设备。与Windows、Mac OS X等专有的操作系统相比,在台式机和笔记本上更是如此。

    Linux是一种对自由的追求。当Linus还在芬兰赫尔辛基大学进修他的研究生课程的时候,出于对微软的DOS的不满,他在自己的386PC上试图创造一个自己的操作系统,进而开始了计算机操作系统史上的一个重要的篇章。他决定了要与整个世界共享他的劳动成果,要和全世界的志愿者一起创造一个自由的和开放的产品。从第一个公开发行的版本,0.0.1版开始,Linus为Linux选择了自由软件协会(Free Software Foundation)的Richard Stallman所创造的著名的General Public License(通常缩写为GPL)。在GPL的保护下,所有人都可以得到Linux内核的全部源代码,根据需要做修改,或在其之上开发产品,把Linux内核和自己的产品一起发行、流通(distribute)。GPL同时要求使用者将所做的一切修改和derived works也置于GPL下发行。这样既避免了Linus和其他contributors的劳动成果被盗取,也鼓励使用者以自己的劳动成果回报整个community。

    必须特别提出的一点是,虽然GPL保证了用户有权利得到产品的源代码,采用GPL并不意味着原作者放弃了自己的版权(copyright)。事实上,GPL依赖于美国和其他各个jurisdiction的版权法来维护版权所有者的权利。

    Linux是公开和透明的。从十五年前的0.0.1版开始,Linux的源代码就是完全公开的,所有的开发过程都是透明的。开发者之间的绝大部分沟通都是经由公开的电子邮件列表完成,并公布于Internet上。一切会影响广大用户的决策过程都在Linus和他的众多副手之间的进行公开讨论,在做出决定之前都会听取其他contributors的意见和建议。

    为了能够自由地做出设计决策,不受到来自任何第三方的影响,Linus回避了所有Linux distrabutors如RedHat、SuSE等的offers,加入了Transmeta,直到三年前加入了OSDL(Open Source Development Lab)。有意思的是,Transmeta的主要投资人是百亿富翁Paul Allan,Bill Gates的老友和微软的几个创始人之一。

    对IBM、HP、Intel、EMC、Oracle来说,Linux是一个机会。在Linux这个平台上,所有的参赛者都是平等的。开发过程的独立与公开保证了各个厂商既不能在Linux内核中加入只对自己有利的东西,更不可能用Linux内核来打击和限制对手。各个厂商只能通过积极的参与和贡献来保证自己的产品和技术在Linux内核中得到支持和发扬,从而间接地施加影响。同样重要的是GPL从法律上保证了各家厂商对Linux的贡献不会被其竞争对手窃为己有。

    对RedHat来说,Linux就是一切。挚着这竿大旗,Red Hat也跻身到操作系统供应商的行列中。虽然还暂时未有资格与微软、Sun等一博高低,但在普通大众、甚至某些所谓的行业分析家眼中,Red Hat俨然成了Linux的同义词。死而不僵的Novell在收购了SuSE后,居然象传说中的不死鸟一样,开始了又一个轮回。其实,Red Hat也好、Novell或是SuSE也好,都不过是纭纭众多Linux distributors中的两个比较有名的罢了。象所有的Linux distributions一样,Red Hat Linux与其他品牌的Linux的区别在于选择了哪一个桌面环境(desktop environment)、用的是什么样的安装程序、用了2.4.28版的内核还是2.6.5版的,等等。

    本质上,绝大部分的Linux distributions都包含以下的部件(components):一个经过仔细调整和测试的Linux内核、一个与内核匹配的GNU Libc、一个提供命令行界面的shell、boot loader、包管理程序(package manager,也就是软件安装程序,曾几何时,各家都有自己的包格式,现在好像逐渐统一到了RPM和DEB两种上了),还有各种各样的应用程序。如果需要图形界面,还会有某个版本的XFree86(an open source implementation of X,XFree86开发团队“自我爆炸”后,有些distributions选择了更加cutting edge的X.org,最终大家都会统一到X.org上)和一个桌面环境(desktop environment,如GNOME,KDE等)。如果是面向路由器、防火墙、手持设备等嵌入式设备,通常会把完整但庞大的GNU Libc换成某个简练的C运行库,例如diet libc等,以减小foot print。如果是用于软件开发,GNU Compiler Collection(gcc/g++)和GNU Debugger(gdb)是大家的一致选择。

    Linux还是Bill Gates的一个恶梦。在击溃了IBM、DRDOS和Apple后,Bill和他的微软如日中天,踌躇满志地准备趁着一统桌面市场的余威,再下一城,打垮钩心斗角的各个proprietory UNIX供应商,把服务器市场也收入囊中。眼看Windows NT势如破竹一般地攻入UNIX的底盘,把一个又一个的UNIX供应商踢出了局,马上就要让Bill这个辍学生一统IT江湖,遥远的地平线上出现了那个胖乎乎的、吃得过饱的企鹅的轮廓。

    首先在服务器市场,Linux代表UNIX展开了绝地大反击。Linux的市场份额在逐年上升,IBM、HP和Dell的服务器产品无一例外地将Linux与微软的操作系统并列作为选择,并反复向用户表白自己对Linux坚定不移地支持。世界上最快的五百个计算机系统(top 500)中有超过半数运行Linux。在桌面和便携系统市场,HP、Dell不仅在向Linux暗送秋波,HP甚至明目张胆地发布了一款预装Linux的笔记本。

    对Sun来说,Linux是一种无奈,是一个心中的痛。眼看Linux取代自己的Solaris成了最流行的UNIX,Sun在与自己斗争了五年后终于也无奈地投入了open source的阵营,但加在其许可协议中的条条款款又时时处处透露出Sun的不忿。在Linuix还是Wall Street宠儿的时候,Sun花了40亿美元买下了Cobalt,一个Web Appliance供应商,其基于Linux的产品线曾经非常火爆。Sun当然不是想变换大旗,投入Linux阵营。Sun买下Cobalt后,把其产品线统统仍进了废品仓库。这40亿美元是Sun为了挽回Solaris的颓势而付出的代价。但是,带着一种无可奈何花落去的悲哀,Sun眼睁睁地看着一个个浅蓝色的“Sun”标记还是被各种各样的企鹅所代替。

    之于我,Linux是是实实在在的。我的desktop是Debian GNU/Linux,屋角里放着一台旧电脑,硬盘里装的也是Linux。我路由器/防火墙运行的还是Linux。

    Linux更是我的职业生涯中一段无法忘却的回忆。Linux让我体会了在北美市场找到第一份工作的喜悦,也让我尝到了失业的恐慌。在过去的几年里,我的职业生涯就象Linux在股票市场的表现一样,经历了由天堂到地狱、再回到人间的跌宕起伏。最后,还是Linux,我竟然能够得到一个为Apple Mac OS X开发软件的工作。

    无论我的职业如何发展,Linux依然会是我业余生活中的一个部分,我的计算机上依然会有那个可爱的企鹅。

    元宝推荐:Highway,
    • 家园 哪里有中英词汇对照?

      谢谢

    • 家园 嗯,顶一下,微软是要打倒地
    • 家园 请问一下,FreeBSD和Linux的关系

      我听说,现在世界上最稳定的计算机运行的是FreeBSD。我在网上看过一下统计的数据,最长时间不出问题要重启的服务器前几十名基本都是FreeBSD-Based的。

      我知道FreeBSD和Linux都是基于UNIX的内核,但他们两者之间有什么不同呢?

      • 家园 “UNIX的内核”这个说法是不对的。没有UNIX内核这个东西。

        只有Linux内核、FreeBSD内核,等等。当然,FreeBSD的每个release还包括了完整的用户程序(user space applications)。Linux仅仅发布内核,用户程序由distribution vendors提供。

        如果你仔细阅读我的原文,你会发现,我一直在说Linux是一个操作系统内核。当我提到基于Linux的操作系统时,比如RedHat,我都用的是Linux distribution。

        “UNIX”是个商标,现在的所有者是“Open Group”(opengroup.org)。一个操作系统要想称自己是UNIX,必须得到Open Group的认证和许可。Those free and open source operating systems don't bother it. They probably don't have the money either. They can still be called UNIX-like or a UNIX flavor though.

        UNIX认证的标准是Single UNIX Specifications,最新的第3版本制订于2003年,所以也称为UNIX03。第2版本也被称为UNIX98。

        除此之外,历史上出现过的两大流派AT&T SysV和BSD,也分别成形了自己的一套应用程序接口(Application Programming Interface,简写为API)。所以,为维护向后兼容性,现代的UNIX和UNIX-like操作系统也都尽量试图兼容SysV和BSD。

        如果对UNIX的历史和现状感兴趣,可以去www.unix.org看看。

        至于说稳定性,Linux机器运行几十、上百天也是很普遍的。我还见过连续运行一年多的。虽然听起来很不错,但在实际使用中并没有多少人刻意追求最长的uptime。原因有两个。第一,Linux和FreeBSD(或是其他的BSD derived)都在actively developed,每个月,或是每几个月总是有新版本发布,系统管理员们总是还要考虑升级的,不为new features,也要为improvements and enhancements,至少是bug fixes。

        第二,真正的mission critical, non-stop services肯定不能只依靠一台机器,即使操作系统不死,硬件也总有可能会出故障,所以才会有双机乃至多机热备份。当然,没有人会抱怨一个操作系统可靠性好的。

        下面所说的Linux和FreeBSD之争是个问题。本来,大家在技术上有分歧是很正常的,要不然也不会有那么多的Linux distribution、BSD derived了。但是,每个人都总是希望别人也相信自己所欣赏的就是最好的,这样冲突就难免了。

      • 家园 千万别把两个往一块混,你要倒大霉的,

        两拨人,Linux的犯和FreeBSD的煽,都会和你死磕。

        两个的区别嘛,前一阵这里发了一篇大作,详细的很,麻烦您自己找一下?

    • 家园 有两个问题请教一下

      众所周知,软件质量如何,很关键的一点在于测试。尤其是操作系统的内核,每次修改,都可以说是牵一发而动全身。

      以Linux这种开发模式,他们是如何组织测试的呢?要知道,测试也是一门专业来的。

      另外,他们这种开发模式又是如何保证项目的进度的呢?

      • 家园 这是个很好的问题。

        ragtime说的对,Linux的测试大军就是那些成千上万的的Linux用户。Linus曾经说过,没有任何机构的QA Lab能比得上这些Linux用户的basements和cabinets。他们有着千奇百怪的软硬件组合、还有各种各样你都想不到的用途和使用方式。Open source软件项目的一个原则是“release early, release often”,目的之一就是让用户帮助测试。

        另外,Linux不十分在意API的稳定性,特别是内核各个部分之间的接口。这大概也是open source的一个特点吧。People do it for fun.所以大家都追求完美。当然,这并不是说Linus和他的副手热衷于打破向后兼容。恰恰相反,对于和用户程序(user space applications)之间的API,也就是用户程序可见的部分,Linus是非常注意保护的。但是,如果他认为变动带来的收益比付出的代价高,he will go for it for sure.

        理论上说,Linux的开发是没有进度表的。什么时候Linus和他的副手们满意了,什么时候他就发布一个新版本。这个新版本可能没有包含你所希望的新功能,甚至还可能会有问题。没关系,下一个版本会很快出来的。如果问题严重,或者你等不及下一个版本,有许多的热心肠的人会发布补丁。

        自从2.4版发布后,大部分的the most active contributors每年会在加拿大的Ottawa会面一次,就是所谓的Linux Summit。在这个会上,大家会讨论接下来要干什么,大致怎么干。然后大家基本上就遵循着这个不成文的计划安排自己的部分。IBM、Intel、HP、Oracle、SGI等也会派人参与,并和大家讨论如何让Linux更好地支持自己的软件、硬件。

        他们也一直在探求一个最佳的开发模式。比方说,什么时候应该停止增加新功能、什么时候应该branch the code for the next major release。到现在为止,都还没有形成规矩,靠摸索前进。毕竟,他们所做的没有先例可循。公司、机构在软件开发方面积累的经验教训也不太适合。

        所幸的是,到目前为止,Linux的开发还是很成功的,没有发生过大的事故,也没有出现很多人曾经担心,部分人曾经预言过的fork。大家求同存异,所有的努力还是拧成一股绳的,继续“紧密团结在以Linus为核心的领导集体周围”。在这方面,Linus功不可没。他的技术能力、管理能力、洞察力、幽默感以及亲和力在Linux Community赢得了一致的认同。(有点象个人崇拜了

分页树展主题 · 全看 下页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河