iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux为什么能成功?
  • 260
分享到

Linux为什么能成功?

linux 2022-06-03 14:06:52 260人浏览 八月长安
摘要

  linux,这个始于1991年由Linus Torvalds开发的类Unix操作系统内核已经成为开源世界的中心,人们不禁追问为什么Linux成功了,而包括GNU HURD和BSD在内的那么多相似的项目却失败了

  linux,这个始于1991年由Linus Torvalds开发的类Unix操作系统内核已经成为开源世界的中心,人们不禁追问为什么Linux成功了,而包括GNU HURD和BSD在内的那么多相似的项目却失败了?

  自由软件和开源世界的发展史中最令人不解的问题之一是为什么Linux取得了如此辉煌的成功,然而其它同样尝试打造自由开源、类Unix操作系统内核的项目却没能那么成功?这个问题难以回答,但我总结了一些原因,在下面与大家分享。

  不过,首先得明确:当我谈论Linux是一个巨大的成功时所表达的含义。我这样说是相对于其它类Unix操作系统内核的,后者中一些是开源的,一些不是,而且它们繁荣发展的时期是Linux诞生的时期。GNU的HURD,一个发起于1991年5月的Free(自由)的内核,便是其中之一。其它的包括现在大部分人都没听说过的Unix,比如由加州大学伯克利分校开发出来的BSD的各种各样Unix衍生版,由微软主导的Unix系统Xenix,包括Minix在内的学术版本Unix,和在AT&T赞助下开发的最初的Unix。在更早的数十年内,它对于学术界和商业界的计算发展至关重要,但到19世纪90年代就已经几乎已经消失在人们的视野里。

  相关阅读

  • 开源旧事:黑客文化和黑客伦理的起源追踪
  • Unix和个人计算机:重新诠释Linux起源

  此外,得说明的是,我这里说的是内核,而不是完整的操作系统。在很大程度上,Linux内核的成功归功于GNU整个项目。GNU这个项目产生了一套至关重要的工具,包括编译器、调试器和BASH shell的实现,这些对于构建一个类Unix操作系统是必需的。但是GNU的开发者们从没开发出一个HURD内核的可行版本(尽管他们仍在不懈努力中)。相反,Linux呈现出来的则是一个将GNU各个部分紧密连接在一起的内核,尽管这超出了GNU的初衷。

  因此,值得人们去追问为什么Linux,一个由Linus Torvalds这个芬兰的无名程序员于1991年——和HURD同一年——发起的内核,能够经受考验并发展壮大?在当时的大环境下,很多拥有强力商业支持的、由当时炙手可热的黑客领头的类Unix内核都没能够发展起来。为了说明这个问题,我找到了一些和这个问题相关的解释。为此我研究了自由软件和开源世界的发展史,和不同解释的优缺点。

  Linux采用去中心化的开发方式

  这个观点来源于Eric S. Raymond的文章,“大教堂与市集”和其相关资料。这些资料验证了一种情形:当大量的贡献者以一种去中心化的组织结构持续不断地协同合作时,软件开发的效率最佳。Linux的开发证明了这一点,与之相反的是,比如,GNU HURD采用了一种相对更集中化的方法来管理代码开发。其结果如同Raymond所言,显然在十年的时间里都没能成功构建出一个完整的操作系统。

  在一定程度上,这个解释有道理,但仍有一些明显的不足。举例来说,Torvalds在指导Linux代码开发过程中毫无争议地承担起一个更加有权威的角色,他可以决定接受或拒绝代码,这一点并非Raymond和其他人所想的那样。其次,这个观点不能解释除了没能开发出一个可行的系统内核外GNU仍然成功地生产出那么多优秀的软件。如果只有去中心化的开发方式才能很好地指导开源软件世界里的项目,那么GNU所有的编程工作都应该是徒劳无功的,但事实并非如此。

  Linux是实用型的,而GNU是空想型的

  个人而言,我觉得这个说法是最引人注目的,即Linux之所发展得如此迅速是因为它的创建者是一个实用主义者,他起初只是想写一个内核,使其能够在他家里的电脑上运行一个裁剪过的Unix操作系统,而不是成为以改变世界为目标的自由软件的一部分,而后者正是GNU项目的一贯目标。

  然而,这个解释仍然有一些不能完全让人信服的地方。特别是,尽管Torvalds本人信奉实用主义的原则,但无论以前还是现在,并非所有参与到他的项目中的成员都和他一样信奉这一原则。尽管如此,Linux仍然取得了成功。

  而且,如果实用主义是Linux持续发展的关键,那么就要再问一遍:为什么GNU除了没能开发出一个内核外还是成功地开发出这么多有用的工具?如果拥有某一种对软件的坚定政治信仰是追求成功的项目路上的绊脚石,那么GNU早应该是一个彻头彻尾的失败者,而不会是一个开发了那么多如今依然为IT世界提供坚实基础的优秀软件包的开拓者。

  最后(但并不是最不重要),许多诞生于19世纪80年代末期和90年代初期的Unix变体,尤其是一些BSD分支,都是实用主义的产物。它们的开发者们致力于开发出可以自由分享而不是受到高昂商业证书限制的Unix变体,但他们对于编程或者共享代码并非完全局限于意识形态。Torvalds同样如此,因此很难说Linux和成功和其它Unix项目的失败是意识形态在作怪。

  操作系统设计

  当谈到Linux的成功时,不可忽视的是Linux和其它Unix变体之间的诸多技术差异。Richard Stallman,GNU项目的创始人,在一封给我的电子邮件中解释了为什么HURD的开发进度频频滞后:“GNU Hurd确实不是一次实用上的成功。部分原因是它的基本设计使它像是一个研究项目。(我之所以选择这样的设计,是考虑到这是快速实现一个可用内核的捷径。)”

  就Torvalds独自编写出Linux的所有代码这点而言,Linux也有别于其它Unix变体。当他在1991年8月第一次发布Linux时他的一个初衷就是拥有一个属于他自己的Unix,而不用别人的代码。这点特性使得Linux区别于同时期的大部分Unix变体,后者一般是从AT&T Unix或伯克利的BSD中衍生出基础代码。

  我并不是一个计算机科学家,所以我没有资格去评判是否Linux代码就优于其他Unix代码,以此来解释Linux的成功。虽然这并不能解释Linux和其它Unix内核在文化和人员上的不同,但这个观点对我来说解释得通,因为似乎在理解Linux成功这一点上操作系统设计比代码更加重要。

  Linux背后的社区提供了有力支持

  Stallman也写到Linux成功的“主要原因”是“Torvalds使Linux成为一个自由软件,所以相比Hurd有更多来自社区的支持涌入Linux的发展中。”但这对于Linux的成长轨迹并非是一个完美的解释,因为它不能说明为什么自由软件的开发者们追随了Torvalds而不是HURD或其它某个Unix,但它仍然点明了这种变化是Linux盛行的很大一部分原因。

  对于自由软件社区决定支持Linux有一个更全面的理由可以用来解释为什么开发者们这么做。起初,Linux只是一个默默无闻的小项目,以任何标准来衡量,它比同时期其它的一些尝试创建一个更加自由的Unix,比如NET BSD和386/BSD,都要显得微不足道。同样,最初并不清楚Linux和自由软件运动的目标是否一致。创建伊始,Torvalds只是在一份防止Linux不被商业使用的证书下发布了Linux。至于后来他为了保护源代码的开放性转向使用GNU的通用公开证书则是后话了。

  所以,这些就是我所找到的Linux作为一个开源操作系统之所以取得成功的解释,可以肯定Linux的成就在某些方面(但比如桌面版的Linux从未成为它的支持者希望成为的样子)已经是可以衡量的成功。总之,Linux业已与其它任何类Unix操作系统不同的方式成为了计算机世界的基石。也许源于BSD的苹果公司的OS X和iOS系统也很接近这一点,但它们没有在其它方面像Linux影响互联网一样扮演着如此重要的中心角色。

  对于为什么Linux能成为现在的样子,或者为什么它在Unix世界的竞争对手们几乎全部变得默默无闻的问题,你有其它的想法吗?如果有,我很乐意听到你的想法。(诚然,BSD的变体如今仍有一批追随者,而一些商用的Unix对于Red Hat(RHT)为他们的用户提供支持来说也仍然十分重要。但这些Unix中没有一个能够像Linux一样几乎征服了从WEB服务器到智能手机的每一个领域。)

  via: thevarguy.com 翻译:linux.cn

--结束END--

本文标题: Linux为什么能成功?

本文链接: https://www.lsjlt.com/news/11354.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux为什么能成功?
      Linux,这个始于1991年由Linus Torvalds开发的类Unix操作系统内核已经成为开源世界的中心,人们不禁追问为什么Linux成功了,而包括GNU HURD和BSD在内的那么多相似的项目却失败了...
    99+
    2022-06-03
    linux
  • 海外云主机为什么能成功发展
    海外云主机成功发展的原因:1. 海外云主机服务商加大技术成本的投入,促进云主机技术服务的发展水平和速度。2. 海外云主机在技术发展的同时提高了产品的宣传力度,提高海外云主机的知名度。具体内容如下:一、技术成本投入我们都知道我们国家现在对于网...
    99+
    2022-10-06
  • Docker能否成为下一个“Linux”?
    linux操作系统在过去的20年里给数据中心带来了革命性的变化,今天它是应用程序托管平台无可争议的领导者。很难想象,将任何关键任务的生产工作负载部署到Linux以外的任何平台。 当docker使Linux容器流行起来,这...
    99+
    2022-06-04
    docker成为下一个linux docker能否成为下一个linux
  • 为什么imessage一直激活不成功
    iMessage一直激活不成功的原因有网络连接问题、苹果ID问题、验证问题、时间和日期设置、设备更新、苹果服务器问题和联系苹果支持等。详细介绍:1、iMessage需要稳定的网络连接才能激活成功,可以尝试重新启动设备或者尝试连接其他可靠的网...
    99+
    2023-08-14
  • redis主线程完成什么功能
    Redis主线程完成以下功能:1. 接收和处理客户端的请求:Redis主线程负责接收来自客户端的请求,并根据请求的类型执行相应的操作...
    99+
    2023-08-24
    redis
  • linux中pwd的功能是什么
    本文小编为大家详细介绍“linux中pwd的功能是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“linux中pwd的功能是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。...
    99+
    2023-02-23
    linux pwd
  • 为什么GitHub会取消Fork功能
    GitHub 是一个面向开源及私有软件项目的代码托管平台,它的 Fork 功能是其最重要的功能之一。Fork 是指将别人的项目复制一份到自己的帐户下面。这是常用的一种协作方式,用户可以在自己的帐户下面创建一个分支,对项目进行修改、增强、修复...
    99+
    2023-10-22
  • php为什么没有定时功能
    web开发中PHP不能使用定时器的本质原因是可控常驻内存运行环境的缺失;两个要点,第一常驻内存,第二可控。CGI模式下,进程执行完脚本后直接退出,不能指望其到指定时间运行任务;PHP-FPM模式下,进程常驻内存,但不可控。本教程操作环境:w...
    99+
    2023-05-14
    php
  • java环境变量配置为什么不成功
    Java环境变量配置不成功可能有以下几个原因:1. 配置错误:可能配置的路径不正确,或者配置的环境变量名称有误。在配置环境变量时,需...
    99+
    2023-09-08
    java
  • linux中为什么要性能优化
    这篇文章主要介绍了linux中为什么要性能优化,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。为什么要性能优化也许是想要支持更高的吞吐量,想要更小的延迟,或者提高资源的利用率等...
    99+
    2023-06-15
  • linux中partprobe命令有什么功能
    partprobe命令用于通知操作系统重新扫描磁盘分区表,以识别最新的分区信息。具体功能如下:1. 更新内核中的分区表信息:当在磁盘...
    99+
    2023-09-04
    linux partprobe
  • 为什么只有Google才能拯救Linux
    为什么只有Google才能拯救Linux,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。这里说的是Linux桌面;再优秀的桌面系统没有强大的硬件厂商和第三方软件支...
    99+
    2023-06-16
  • Linux为何能成为超算界的操作系统大佬?
      经过多年的努力,Linux终于实现了它的“霸权”。全球超级计算机TOP 500中都运行的是Linux,比英特尔更让人印象深刻——TOP 500中有92%的超级计算机使用的是英特尔的处理器。  那么,Linux是如何到达这一步的呢这个26...
    99+
    2023-06-06
  • linux下生成s文件的过程称为什么
    这篇文章主要介绍“linux下生成s文件的过程称为什么”,在日常操作中,相信很多人在linux下生成s文件的过程称为什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux下生成s文件的过程称为什么”的疑...
    99+
    2023-07-02
  • linux中shell的主要功能是什么
    Linux中shell的主要功能包括以下几个方面: 命令解释和执行:shell作为用户与操作系统的接口,能够解释用户输入的命令,...
    99+
    2023-10-23
    linux shell
  • Linux系统工具ReaR有什么功能
    这篇文章主要介绍“Linux系统工具ReaR有什么功能”,在日常操作中,相信很多人在Linux系统工具ReaR有什么功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux系统工具ReaR有什么功能”的疑...
    99+
    2023-06-16
  • 怎样才能在 Linux 上成功加载 Java IDE?
    在Linux系统上,安装Java开发环境是必要的步骤,如果你正在寻找一个好的Java集成开发环境(IDE),那么你来到了正确的地方。本文将会告诉你怎样才能在Linux上成功加载Java IDE。 首先,我们需要下载适合Linux系统的Jav...
    99+
    2023-09-09
    ide load linux
  • linux内核的功能由哪些部分组成
    本篇内容主要讲解“linux内核的功能由哪些部分组成”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux内核的功能由哪些部分组成”吧! ...
    99+
    2023-02-28
    linux
  • 怎么为Linux无线网卡配置无线唤醒功能
    这期内容当中小编将会给大家带来有关怎么为Linux无线网卡配置无线唤醒功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。我有一台用于备份我的所有设备的网络存储(NAS)服务器。然而当我备份我的 Linux...
    99+
    2023-06-16
  • Kali Linux中WPScan2.9.3增加了什么新功能
    这篇文章给大家分享的是有关Kali Linux中WPScan2.9.3增加了什么新功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Kali Linux WPScan更新到2.9.3WPScan是Kali Lin...
    99+
    2023-06-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作