论文部分内容阅读
大家想必都对“今天暂时停止(GroundhogDay:1993年哥伦比亚影视出品)”这部电影耳熟能详。影片中比尔墨瑞(Bill Murray)所扮演的电视台气象主播菲尔,奉命到一处小镇采访当地饶富盛名的土拨鼠日(Groundhog Day)庆祝活动,原本电视台一行人打算当天采访完便打道回府,却因大风雪而被迫在镇上停留一日,然而第二天早上醒来后,菲尔发现自己不知何故,竟身陷奇异的时间循环被困在2月2日这一天!他被迫一直重复不断地过这同一天,直到幡然领悟他所应体认的救赎之道后,才让时间继续前进并重回正常的生活。
有时我突然发觉,原来在嵌入式开源软件的世界中竟也有许多类似菲尔身陷时间循环的情境。回到1983年,当时我是一个在BSD(Berkeley SoftwareDistribution)做事的年轻开源软件开发人员,那时我的工作就是要让软件能够在Digital Corporation PDP-11/84上头运行,记得那时我必须日复一日写出汇编程序代码(Assembling Boot Code)并将其套用至机器上,如此我才能从磁带机中下载数据。这项工作不是单单花个一两天就能结束,而是总计必须耗费数周才能结束的苦差事。当然,最终我还是成功让系统以基本模式顺利启动,虽然我仍得利用剩下的整个夏天撰写驱动程序,好让这台机器达到堪用的地步。
接下来把时间快转到1993年,那时我是同样在第一线奋斗的嵌入式医疗设备开发人员,只不过这次我面对的是内建摩托罗拉(Motorola)68000系列处理器的机器,这次我耗费了数个月才将一套操作系统整治到我得以在上头开始进行应用软件开发的程度。
再将时间快拨10年左右,这时我的角色已经转换为带领一群开发工程师将开源软件导入于各式各样不同嵌入式处理器上。
回顾当初的“旧时光”,光是要让一台机器能够顺利启动运作就已是困难重重,但这却又是开发嵌入式装置过程中无法避免的关键第一步。如今,感谢Linux的出现,不但有许多参考机板(ReferenceBoards)可供挑选,还顺道附带一些已建置好基本功能的操作系统。然而,对于打算开发或布署嵌入式装置的人来说,这样仍是远远不足,要建置一套符合嵌入式操作系统开发所需,同时又够完善、够稳定、够可靠、还要易于维护的Linux操作系统,绝对不是一件轻松简单的任务。对大多数嵌入式装置的用户来说,他们并不会特别思考一台装置背后是否有一大群人花了极为可观的时间建置出一套堪用的操作系统这回事,他们只是很单纯地希望这台机器能够正常运作,甚至认为机器上运行的那套操作系统不能单单具备基本功能。最好还能发挥物超所值的高水平表现。
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/dzyd/dzyd201011/dzyd20101126-1-l.jpg)
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/dzyd/dzyd201011/dzyd20101126-2-l.jpg)
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/dzyd/dzyd201011/dzyd20101126-3-l.jpg)
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/dzyd/dzyd201011/dzyd20101126-4-l.jpg)
因此,就在这一刻,全世界有成千上万的工程师正在重复做着毫无二致、没有任何差异性的工作。他们忙着下载软件、建置系统、汇整用户套件档,或是完成一套客制化软件版本以便将其递交给应用开发团队,而后者将会把相关应用软件加入系统并整合得好好的:每当客制化软件版本完成后,系统平台建置团队要不就是得超时加班以维护好这些软件版本,不然就是得重新开始应付下一套新设计好的版本。这整出戏码不断地重演,就像每天我们洗澡的动作一样固定不变——抹上肥皂一直到起泡沫,接着把泡沫冲洗掉,然后再继续重复这些动作。
为什么嵌入式市场中的Linux用户仍然愿意重复这整套毫无二致、没有任何差异性的工程开发戏码7对某些人来说,这可能已是习惯成自然,也因此他们永远都有忙不完的事情可做,他们也不觉得有任何改变的必要;对另一部分人来说,他们则是觉得自己动手做总是会更好,不管市面上已有多少现成商用解决方案可兹利用,他们总是对这些套装方案的效果不满意,不放心:除了上述两种人之外的其他人,则是很单纯出于没得选择!因为他们找不到适当、好用的开源软件或商用软件包,来协助他们处理手边的项目。
等等!在您打算指责这些开发人员之前,请先好好思考一下目前嵌入式Linux业界的作业型态。这个产业有项非常显著的坏习性,就是惯于在开源软件及商用软件的产业生态系统间制造出多重鸿沟和断层。许多硬设备制造商选择由内部自行开发本身的Linux软件版本,而这些软件版本中大量的程序代码常常都未做到上行(upstream)处理。此外,绝大多数使用开源软件的项目最终也导致碎裂化的鸿沟和断层出现,因为这些项目通常会被导向一项极为特定的垂直型应用,因而欠缺在深度嵌入式应用市场中广泛支持不同应用的灵活性和能力。即便是商用软件的开发厂商,假如未针对其基础架构,软件,以及不同团队之间的最佳解决方案(best practices)进行标准化动作,往往也同样沦为鸿沟和断层的制造者之一。
其实借镜某些特定产业的成功经验,我们即可找到更好的因应之道。以电信设备制造业来说,他们已了解到不能将操作系统视为每一套设备的独有功能,而是具共通性的,因此他们已建立起适当的软件及硬件标准规格,以便直接汲取开源及商用软件资源的精华,进而转换为可供利用的解决方案。举例来说,Wind River持续投入时间和资源改善旗下的商用Linux平台“Wind River Linux”,藉此让客户得以将全副心力放在足以使其产品与其他竞争对手产品区隔的差异化功能开发上。如此一来,客户就能把更多时间和精力投资于开发高价值的事物上,而非浪掷于不断重复且意义不大的低价值固定工作。
当然,这还只是踏出第一步而已。嵌入式业界需要共同树立开放标准架构,开源软件和商用软件的产业生态系统之间也需要建立起更好、更紧密的连结关系。当我们能完成越多标准化动作并尽量善用更多第三方资源,我们身处同一产业的联系感以及型塑这个产业的力量也就越强,而我们也将能够为我们的产品及服务注入更多价值。
土拨鼠日(Groundhog Day):北美洲一项传统节日,时间点是每年的2月2日,也就是刚好介于冬至和春分之间的日子。传说中,如果土拨鼠在这天跑出洞穴但因为天候不佳而没看到自己的影子,就表示冬天即将结束;反之如果天气晴朗而看到自己的影子,土拨鼠会吓得再躲回洞穴中,这就表示冬天将再往后延6个礼拜才会结束。每逢这个节日,美国和加拿大许多地方都会举行相关庆祝活动。
作者介绍:
Paul Anderson目前担任Wind River软件产品开发副总裁一职,他对于研发、产品具现化、开源软件开发及商用化、嵌入式软硬件开发、以及美国食品药物管制局(FDA;Food and Drug Administration)规范之医疗产品开发等专业事务均拥有相关从业经验。
有时我突然发觉,原来在嵌入式开源软件的世界中竟也有许多类似菲尔身陷时间循环的情境。回到1983年,当时我是一个在BSD(Berkeley SoftwareDistribution)做事的年轻开源软件开发人员,那时我的工作就是要让软件能够在Digital Corporation PDP-11/84上头运行,记得那时我必须日复一日写出汇编程序代码(Assembling Boot Code)并将其套用至机器上,如此我才能从磁带机中下载数据。这项工作不是单单花个一两天就能结束,而是总计必须耗费数周才能结束的苦差事。当然,最终我还是成功让系统以基本模式顺利启动,虽然我仍得利用剩下的整个夏天撰写驱动程序,好让这台机器达到堪用的地步。
接下来把时间快转到1993年,那时我是同样在第一线奋斗的嵌入式医疗设备开发人员,只不过这次我面对的是内建摩托罗拉(Motorola)68000系列处理器的机器,这次我耗费了数个月才将一套操作系统整治到我得以在上头开始进行应用软件开发的程度。
再将时间快拨10年左右,这时我的角色已经转换为带领一群开发工程师将开源软件导入于各式各样不同嵌入式处理器上。
回顾当初的“旧时光”,光是要让一台机器能够顺利启动运作就已是困难重重,但这却又是开发嵌入式装置过程中无法避免的关键第一步。如今,感谢Linux的出现,不但有许多参考机板(ReferenceBoards)可供挑选,还顺道附带一些已建置好基本功能的操作系统。然而,对于打算开发或布署嵌入式装置的人来说,这样仍是远远不足,要建置一套符合嵌入式操作系统开发所需,同时又够完善、够稳定、够可靠、还要易于维护的Linux操作系统,绝对不是一件轻松简单的任务。对大多数嵌入式装置的用户来说,他们并不会特别思考一台装置背后是否有一大群人花了极为可观的时间建置出一套堪用的操作系统这回事,他们只是很单纯地希望这台机器能够正常运作,甚至认为机器上运行的那套操作系统不能单单具备基本功能。最好还能发挥物超所值的高水平表现。
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/dzyd/dzyd201011/dzyd20101126-1-l.jpg)
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/dzyd/dzyd201011/dzyd20101126-2-l.jpg)
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/dzyd/dzyd201011/dzyd20101126-3-l.jpg)
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/dzyd/dzyd201011/dzyd20101126-4-l.jpg)
因此,就在这一刻,全世界有成千上万的工程师正在重复做着毫无二致、没有任何差异性的工作。他们忙着下载软件、建置系统、汇整用户套件档,或是完成一套客制化软件版本以便将其递交给应用开发团队,而后者将会把相关应用软件加入系统并整合得好好的:每当客制化软件版本完成后,系统平台建置团队要不就是得超时加班以维护好这些软件版本,不然就是得重新开始应付下一套新设计好的版本。这整出戏码不断地重演,就像每天我们洗澡的动作一样固定不变——抹上肥皂一直到起泡沫,接着把泡沫冲洗掉,然后再继续重复这些动作。
为什么嵌入式市场中的Linux用户仍然愿意重复这整套毫无二致、没有任何差异性的工程开发戏码7对某些人来说,这可能已是习惯成自然,也因此他们永远都有忙不完的事情可做,他们也不觉得有任何改变的必要;对另一部分人来说,他们则是觉得自己动手做总是会更好,不管市面上已有多少现成商用解决方案可兹利用,他们总是对这些套装方案的效果不满意,不放心:除了上述两种人之外的其他人,则是很单纯出于没得选择!因为他们找不到适当、好用的开源软件或商用软件包,来协助他们处理手边的项目。
等等!在您打算指责这些开发人员之前,请先好好思考一下目前嵌入式Linux业界的作业型态。这个产业有项非常显著的坏习性,就是惯于在开源软件及商用软件的产业生态系统间制造出多重鸿沟和断层。许多硬设备制造商选择由内部自行开发本身的Linux软件版本,而这些软件版本中大量的程序代码常常都未做到上行(upstream)处理。此外,绝大多数使用开源软件的项目最终也导致碎裂化的鸿沟和断层出现,因为这些项目通常会被导向一项极为特定的垂直型应用,因而欠缺在深度嵌入式应用市场中广泛支持不同应用的灵活性和能力。即便是商用软件的开发厂商,假如未针对其基础架构,软件,以及不同团队之间的最佳解决方案(best practices)进行标准化动作,往往也同样沦为鸿沟和断层的制造者之一。
其实借镜某些特定产业的成功经验,我们即可找到更好的因应之道。以电信设备制造业来说,他们已了解到不能将操作系统视为每一套设备的独有功能,而是具共通性的,因此他们已建立起适当的软件及硬件标准规格,以便直接汲取开源及商用软件资源的精华,进而转换为可供利用的解决方案。举例来说,Wind River持续投入时间和资源改善旗下的商用Linux平台“Wind River Linux”,藉此让客户得以将全副心力放在足以使其产品与其他竞争对手产品区隔的差异化功能开发上。如此一来,客户就能把更多时间和精力投资于开发高价值的事物上,而非浪掷于不断重复且意义不大的低价值固定工作。
当然,这还只是踏出第一步而已。嵌入式业界需要共同树立开放标准架构,开源软件和商用软件的产业生态系统之间也需要建立起更好、更紧密的连结关系。当我们能完成越多标准化动作并尽量善用更多第三方资源,我们身处同一产业的联系感以及型塑这个产业的力量也就越强,而我们也将能够为我们的产品及服务注入更多价值。
土拨鼠日(Groundhog Day):北美洲一项传统节日,时间点是每年的2月2日,也就是刚好介于冬至和春分之间的日子。传说中,如果土拨鼠在这天跑出洞穴但因为天候不佳而没看到自己的影子,就表示冬天即将结束;反之如果天气晴朗而看到自己的影子,土拨鼠会吓得再躲回洞穴中,这就表示冬天将再往后延6个礼拜才会结束。每逢这个节日,美国和加拿大许多地方都会举行相关庆祝活动。
作者介绍:
Paul Anderson目前担任Wind River软件产品开发副总裁一职,他对于研发、产品具现化、开源软件开发及商用化、嵌入式软硬件开发、以及美国食品药物管制局(FDA;Food and Drug Administration)规范之医疗产品开发等专业事务均拥有相关从业经验。