本节书摘来自异步社区《精通linux设备驱动程序开发》一书中的第1章,第1.5节,作者:【印】sreekrishnan venkateswaran(斯里克里斯汉 温卡特斯瓦兰)著,更多章节内容可以访问云栖社区“异步社区”公众号查看
一个gnu/linux系统除了内核以外,还包括大量的实用程序、程序、库和工具,因此,获得和正确安装所有的组件是一项艰巨的任务。而linux发行版有序地将这些组件进行了分类,并捆绑成相应的包,从而分担了这一艰巨任务。一个常见的发行版包含数以千计的捆绑好的包。这使得用户无需担心下载不到正确版本的程序,也无需关心程序间的依赖问题。
因为打包是gnu许可证范围内的一种有效的赚钱方式,因此,目前的市场上诞生了数个linux发行版。其中,red hat/fedora、debian、suse、slackware、gentoo、ubuntu和mandriva这些发行版面向桌面用户,而montavista、timesys和wind river发行版则面向嵌入式系统开发。嵌入式linux的发行版还包括一套可动态配置的紧凑的应用程序集,以便针对资源的限制为系统进行量体裁衣。
除了打包以外,发行版还为内核的开发提供了增值服务。因此,许多项目都开始于发行版提供的内核而非kernel.org发布的官方内核,这样做的理由如下。
遵守设备行业领域标准的linux发行版更适合作为开发的起点。特殊兴趣组(sig)已经成立,其目的是促进linux在各个领域的应用。消费电子产品linux论坛主要讨论消费类电子领域的linux应用。celf标准定义了一些功能的支持等级,如可扩展性、快速启动、片上执行以及电源管理等。开源开发实验室则致力于讨论电信级设备。osdl的电信级linux(cgl)标准包含了对可靠性、高可用性、运行时补丁、增强的错误恢复能力的诠释,这些问题在电信领域非常重要。
主线内核版本可能并未包含对用户所选择的嵌入式控制器的充分支持,即使用户的系统建立在内核所支持的cpu核心之上。但是,一个linux的发行版则可能包含了控制器内所有外围设备模块的设备驱动程序。
在内核开发过程中你计划使用的调试工具可能不包含在主线内核中。例如,内核并不包含内嵌的调试器支持。如果想在内核开发过程中使用内嵌的调试器,用户必须下载并打上相应的补丁。如果针对用户内核版本的补丁并不齐备,用户将必须忍受更多的麻烦。而发行版则包装了很多有用的调试功能,所以你可以立即开始使用它们。
一些发行版提供了法律保护,让你的公司无须为任何由于内核bug所引发的诉讼承担责任。
发行版往往会对它们发布的内核进行较多的测试[3]。
用户可以从内核发行版的供应商处购买它们提供的服务以及软件包支持。