手机软件开发模式(为何 Linus 一个人就能写出这么强的系统)

管理员 2024-09-22 04:29:35 0

林纳斯自然不可能写出那么强的系统,你眼中的Linux包含着千万行级别的代码,他手指敲断,也敲不完。

为何 Linus 一个人就能写出这么强的系统,中国却做不出来?

林纳斯最伟大之处在于开创了一种软件开发方式的先河,他调动着全球的黑客为其免费工作而乐在其中,这种合作方式在其后开发的 Git 版本控制软件中得到了充分体现。事实上,你认为的一个人的工程其实是堪称全人类历史上最大规模的合作工程。所以说获得了这么大的成就,理所应当。

那林纳斯做了什么?当他是芬兰赫尔辛基大学一名本科生的时候,他为手里的一款80386处理器的机器写了一款程序,他自己说当时仅仅是为了娱乐,直到最后他才意识到自己写了一款操作系统内核。当他发布其于网上的时候,获得了热烈欢迎。

不过在此之前还有一位极其伟大的前辈,他叫理查德·马修·斯托曼。他为了软件的自由奉献一生,他从不用智能手机,他使用的有线电话,他从不用google,即使不得不用,他也会使用朋友账号,他的笔记本从硬件到软件都是完全自由的,因此非常古老甚至是古董,他拒绝任何包含非自由软件的产品,因为“他不想把自己的隐私暴露在FBI的屠刀之下”。他就是自由软件之父,自由软件基金会的创立者,GNU工程的发起人。他来过几次中国,不过很遗憾,我那时候没条件去见识。

为何 Linus 一个人就能写出这么强的系统,中国却做不出来?

Linux全称应该称之为GNU/Linux,以此凸显GNU工程对Linux发展的重要贡献,但Linux并非GNU工程的一部分,因此两种称呼存在分歧。

GNU工程起源于1983年(Linux则于1991发布第一个版本),它计划开发出一款完全兼容Unix的操作系统。整个工程由外而内,先开发外部应用软件,再集中精力解决内核问题,应用软件和内核的关系类似于人所熟知的office软件和windows系统之间的关系。GNU工程持续到1991年那会,应用软件已基本开发完毕,只剩下内核问题,不过此时林纳斯的Linux内核横空出世,在负责GNU工程的自由软件基金会和全球黑客的帮助下,GNU外部应用软件和Linux内核完美融合,又经历了数十年的发展,全球技术人员生生不息的贡献,终于发展成为现在的GNU/Linux。

所以总体来说,Linux并非一人之功,就像之前说的,这是全世界技术爱好者数十年的功劳,规模之大,成就之高可想而知。

那为何中国到现在也没有完成一个类似的操作系统?

为何 Linus 一个人就能写出这么强的系统,中国却做不出来?

实在是没必要啊。

第一,国外计算机起步早,对软件的需求非常旺盛,需求极大刺激了软件发展。他人栽树旁人乘凉,人家已经造出来了,国内还有造新类似软件的需求么。

第二,GNU/Linux是一款完全自由的操作系统,技术不分国界,在GPL许可下,你可以自由地获取其源码,使用,修改,再发布。这意味着整个系统清澈见底,美国政府已不可能也没有这个能力在GNU/Linux上使绊子。

第三,这个全人类最大规模的合作工程,除了全人类,我认为已没有任何一个国家可以靠自己媲美之。

接下来有更深兴趣的同学可以额外了解下。

为什么早于Linux内核的GNU工程在如今的影响力知名度会远远弱于Linux?

事实上,在上个世纪八九十年代,理查德·斯托曼在软件界影响力巨大,那个时候也没有出现开源一词,而他则是自由软件唯一的精神领袖,《黑客》一书则称赞他是最后一个真正的黑客。但是他做事和理念过于极端(至少大部分人看起来如此)。他认为使用非自由软件是一种不道德的行为,哪怕你为那个专有软件付费一个愿买一个愿卖。除此之外,在一些日常工作中,之前和他志同道合的同事对他的管理风格也颇有微词。

OSI(开放源代码促进会)首届主席雷蒙德,也是开源运动圣经《大教堂与集市》的作者,八十年代他在GNU工程中非常活跃,但是在清理 Emacs LISP库中的代码时进行的修改使得理查德非常不满,雷蒙德回忆此事时:“这使我感觉到很沮丧,我再也不想与他合作了。”

与此形成鲜明对比的却是林纳斯,一个是最大开源软件Linux的领导者,一个是自由软件运动的精神领袖,两人被经常相提并论。相比之下,斯托曼的未来愿景看起来过于理想(最起码当前看起来是如此),而林纳斯则是一名实用主义者。

为何 Linus 一个人就能写出这么强的系统,中国却做不出来?

林纳斯热爱着开源软件,但他也是微软PPT的一名发烧友,他和雷蒙德认为:“在自由软件的世界中,也许隐藏着一个 PowerPoint 的自由软件替代品。但是,在黑客们真正开始转向使用这个软件前,为什么要嫉妒微软开发了这样一个好用的专有软件呢?”

林纳斯也非常容易与之相处,雷蒙德说:“Linus是个好人,人们都喜欢他并愿意帮助他,这(和他的项目成功)不是巧合。”除此之外,雷蒙德还在一次大会上开玩笑:”很有趣的是,如果你发自内心地谦逊,并承认你欠别人很多,你将很快发现世界会这样对待你:他们认为是你发明了整个软件,而且你对自己的天赋有着得体的谦虚。我们可以看到这一点在Linus身上体现得有多好!”

这句玩笑话正也可以用以题主的回答。

注:上述的对比并不意味着雷蒙德和斯托曼紧张的私人关系,相反,他们有着数十年的友谊。

林纳斯自我总结时,他说自己很懒,能给别人做的就给别人做,自己不感兴趣的部分也分给别人做。但是在最终采纳他人代码的时候他将“不偏不倚”,谁的好用就用谁的,这点他在自传中强调了多次。

其实对于Linux的最终成功,除了林纳斯过人的个人魅力和领导才能之外,一些客观的因素也不容忽视。

林纳斯出生于1969年,比较巧的是,同年互联网前身阿帕网正式投入运行,于是林纳斯和互联网同时成长,同时成熟。毫无疑问,Internet 对于Linux的合作开发至关重要。其实源代码共享并且吸收他人的改进的做法早有先例,1976年开始的斯托曼的Emacs便是著名的一例,他称之为“加入Emacs公社”。不过遗憾的是,这种做法并没有延伸到GNU工程。

这其中的原因我想除了互联网的不发达之外,一种被雷蒙德称之为大教堂的软件开发模式在当时主导软件开发也是非常关键的因素。“大教堂”认为:“如果软件复杂到操作系统这样的程度,就必须要有一个精心协作的团队,团队要比较小,而且紧密互动。”名称由来是因为在那个年代,遵循此模式的一些软件复杂巨大,如“大教堂般宏伟”。

为何 Linus 一个人就能写出这么强的系统,中国却做不出来?

但Linux则从一开始就走完全不同的路线。林纳斯在大学时开发出Linux第一个版本,当时的他“一周出门一次,毫无社交经验,人一多就双腿哆嗦”,毫无所谓的合作开发与管理经验,Linux“更像是仅通过互联网合作的大量志愿者的随意之作。”在质量方面,更没有严格的标准或一个强有力的机构来管理。

整体上,林纳斯的开发风格是“早发布、常发布、委托所有能委托的事、开放到几乎是混乱的程度。”

所以说,在Linux社区里,没有建筑大教堂那样的安静和虔诚,倒更像是一个乱糟糟的大集市,这也正是《大教堂与集市》一书名称的由来。毫无疑问,雷蒙德在写这本书的时候,大教堂有暗指FSF(自由软件基金会),而集市则是指代Linux社区的意思,但其实也并非如此,雷蒙德这本书的目的旨在推广开源运动,而当时市面上的各种商业软件公司都可以称之为大教堂。

不管怎样,Linux获得了难以想象的成功,美国杂志《时代》在“时代100人:本世纪最重要的人物”投票中,作者林纳斯位居第17名。

但是Linux的成功并不意味着自由软件和GNU工程的成功,实际上自由软件和开源软件是两码事,林纳斯对Linux使用的软件许可协议是GPL(GNU工程的产物),但是他本人则对开源一词有更大的兴趣,但同时他也说过:“对Linux使用GPL授权绝对是我做过的最正确的事”。自由软件不同于开源软件,但是软件自由的前提是开放源代码,斯托曼对此区别说:“自由软件和开源软件这两个说法其实说的几乎都是同一类软件,但是它们所秉持的价值观是根本不同的。开源是一种开发方法论,自由软件则是一场社会运动。”

为何 Linus 一个人就能写出这么强的系统,中国却做不出来?

相比之下,GNU工程则任重道远,但并未停止。GNU工程还有自己的内核Hurd正在开发之中,其实自由软件这场社会运动一天不成功,GNU工程就会持续下去。

相关文章