帮助中心
商业软件开发与linux开发的异同。
2021-10-07

商业软件开发有严格的开发规则、严格的文档、版本控制、严格的测试流程等,源代码保密。然而,linux的开发完全不同,因为它是基于开源的方法,由互联网上许多自愿的开发者开发的。初学者经常对linux有一些误解或不切实际的期望。为了更有效地使用linux,初学者应该了解linux的设计理念。业务系统:封闭思维对于商业unix系统的开发,一般都有严格的质量保证体系和一整套严格的管理体系。软件的源代码和版本也受到严格控制。同时,还有完整的开发文档、bug报告和解决方案。开发者不得随意更改软件的关键代码,也不得添加其他功能。
 
 
 
不同的开发人员只负责编译整个系统的一部分或多个部分。开发人员只有在发现错误后才有权更改自己的代码。软件质量保证部门通过严格复杂的测试步骤对系统进行测试,发现并报告软件中的bug,以便开发部门能够纠正这些bug。在商业开发中,在系统下一次发布之前,必须通过统计分析消除一定比例的错误。总之,商业unix系统的开发者所遵循的开发模式是非常复杂的。此外,软件开发人员必须有充足的证据来说服用户,鼓励用户继续支持他们的操作系统,并向用户保证下一个版本的开发已经准备好或正在进行中,并且下一个版本的系统将更加稳定和强大,等等。因此,公司总是在收集、统计和分析操作系统的性能。这样,开发商用unix系统就是一个工作量巨大的项目。这就是为什么这类软件的开发总是聚集了成千上万的开发人员、测试人员、文档管理员、系统开发负责人等。当人们意识到软件的价值时,软件的开发模式就从开放走向了封闭。封闭的开发系统在软件开发中做了大量重复的工作。
 
 
 
甲公司开发的软件有可能被乙公司再次开发。不同开发团队开发的软件各有优势,但并不互相开放源代码。他们自己的先进技术无法共享。显然,这种软件开发体系,一方面造成了巨大的人力物力浪费;另一方面,最好的技术并没有集成到同类软件中,用户拥有A公司软件的一个优秀特性。如果他们想享受B公司软件的另一个优秀特性,那将是非常困难的。分散的智慧是人类软件业的一大悲哀。
 
 
 
linux:开放思想Linux的发展是面向技术的,不受任何商业因素的限制。linux的开发模式摒弃了传统商业开发模式的弊端,是一种完全开放、合作的开发模式。在这里,软件开发人员可以充分发挥自己的聪明才智和集体智慧,将最好、最高效的解决方案应用到操作系统中,从而避免许多不必要的重复工作。再者,商业软件的发展是以市场为导向的,往往随着市场的变化而变化。开发者没有自主权。开发什么,怎么开发,取决于市场部提供的信息。这恰恰证明了“最受欢迎,不一定是最好的”这句话。想想当初关于录像机标准的争议,最后的结论不就是市场决定的吗?今天,当人们使用微软产品时,他们别无选择。真的没有选择吗?不,是因为你没有选择。有很多比windows 9x/windows nt更好的操作系统!
 
 
 
Linux比它强很多倍!而且是免费的,不用花钱就能享受这款优秀的操作系统。为什么不试试呢?也许,有人说使用windows 9x/windows nt有微软完整的说明和技术支持。这其实不是理由!想想看,当windows nt出现该死的蓝屏时,你从微软那里得到了什么样的支持?再想想,当windows 9x/windows nt出现错误提示窗口时,你能从提示中得到什么?没什么,只能耐心重启电脑,仅此而已!在linux的开发中,你可以抛弃商业软件开发中使用的所有模式。没有组织发展的概念,没有bug报告结构,没有统计分析。Linux是由一群分布在世界各地的志愿者通过互联网合作开发的。
 
这篇文章讲述了如何将软件从其他系统移植到linux。
 
 
 
任何具有足够实践知识或技能的人都将有机会开发或调试内核,将软件从其他系统移植到linux,并制作系统文档或帮助新用户使用系统。在linux开发过程中,从来没有一个组织负责系统的开发,linux社区通常通过各种邮件列表服务和usenet新闻组进行联系。在开发过程中有一系列约定,例如,如果有人希望他的软件代码被正式的内核接受,他应该通过电子邮件将他的代码发送给linus torvalds。经过他的测试,如果符合要求,他会把代码放入内核。从始至终,Linux开发都是基于一个非常开放的模型。最近,建立了一系列新功能和重要改进。一般来说,每隔几个月就会发布一个新的内核版本,有时甚至更快。但是没有规律可循,这主要取决于内核中bug的数量和修改的进度,也取决于用户对于新内核的测试反馈单的数量。当然,这也与莱纳斯这一时期的睡眠时间有关。即使系统中有bug,仍然有一些问题没有被发现和解决。只要系统看起来相对稳定,就会被视为“稳定”系统,可以释放。这个系统与其说是为用户分发的,不如说是为开发人员分发的版本。
 
 
 
所以我们经常可以看到开发版本(2.x.y,x是奇数)。为了给系统增加新的功能和新的应用软件,通常会先发布软件的“alpha”版本供用户测试。linux社区是基于互联网发展壮大的,所以软件会上传到ftp站点,软件信息会通过usenet传递给大家。这样,用户和测试人员可以下载软件并进行测试,软件错误和发现的问题通过电子邮件发送给作者。当大多数错误被纠正后,软件的测试就进入了“测试”阶段。在这个阶段,软件通常被认为是一个相当稳定的产品,但它还没有完成。然后,将进行“最终”阶段:在此阶段,软件被认为功能齐全,大多数错误被消除。此时,开发人员可以请求linus将成熟的软件添加到标准内核中,或者作为内核的可选特性。软件的这个过程不是静态的。有些人对自己开发的软件有很强的信心。他们认为自己开发的软件可以不经过“alpha”或beta版就进入最后阶段。
 
 
 
linux的所有内核代码都是从头开始写的,没有借鉴其他系统的代码。开发者做的很多志愿工作都是在sun系统下移植自由软件,有的库文件是从头开始写,有的则是移植。文件系统是全新开发的,硬件设备的驱动也是全新编写的。虽然没有专门的机构负责linux的开发,但并不意味着开发中没有完善的管理方法。这种分布式开发并不像有些人想的那么混乱。它有自己的组织系统。开发通常以项目为单位,参与者负责项目管理、工作分配、工作进度协调、程序编写、测试等。根据他们的个人专长。项目管理中使用专门的项目管理软件,帮助项目经理明确职责,跟踪相关工作,优化资源,提供调度和储备等。工作流管理系统还可以有效地进行文档管理、版本控制等。


3384725023/85338248