嵌入式系统的设计和开发有时候似乎处于与世隔绝的状态,跟在一般设备上面所进行的传统的那个应用开发的世界不相关,也许跟服务器端的Web开发更是风牛马不相及。但是,没有软件嵌入式系统就无法运行,而只要是软件就仍然需要根据设计原则进行开发,那些应用的原则甚至跟统领云应用开发的原则都十分的相似。Elecia White是Logical Elegance的创始人,O’Reilly出版的《建立嵌入式系统(Making Embedded Systems)》一书的作者,他解释了“嵌入式系统”和“一般计算设备”之间的界线未必就得是泾渭分明的,实际上嵌入式开发模式非常的有用,不会受到严格的系统约束的限制。
嵌入式软件开发跟其他软件开发有何根本性的不同?主要区别在哪里?
Elecia White:那种区别更多的时候在于开发的时候需要更多的信息。除了项目所需的东西,也即应用的目标以外,还有一组目标需要关心。处理器是不是就是那个处理器?如何与之建立接口?是不是只有32K的内存,垃圾回收甚至连Matlab都用不了?这些约束也许意味着,不管你的应用想要做什么都无法实现。
因此,其区别大部分在于要利用额外信息来实现代码。而服务器端的开发那里则又是完全不同的一组需求。嵌入式系统一般都有需求和资源约束,但是在服务器端,你的困难是不得不跟各种各样试图通过IE6、Firefox和Chrome访问你服务器的用户打交道。而嵌入式系统则稍微容易些,因为这一点你不需要担心。你也许只能在这一硬件上面工作,就算有也许也只能是某些硬件版本的子集。因此,有容易一点的地方,也有困难一点的地方,不过真正的不同是,在(应用的核心功能)完成之后,你的(运行时)约束是什么?
这两个哪一个更有趣?
White:[笑]对个问题我怎么能保持礼貌呢?…… 我当然是认为嵌入式系统更加有趣了,否则的话我就是服务器程序员了。不过这个问题在于你想做什么,你在乎什么。我是认为嵌入使系统要困难一点,这不是与生俱来的,而是因为我们学习它们的方式。
如果你把一个CS(计算机科学)程序看一遍,你就能了解软件,然后了解更大规模的,掌握那些基础设施。如果你把电子工程的程序看一遍,你就会掌握硬件。嵌入式系统工程师既要了解计算机科学的东西,又要掌握电子(工程学)的内容,因此,他们从学校出来只掌握了所需一半的信息。而学计算机科学的人要倒腾服务器的话,从教育的角度来说,也许他所需要的大部分信息都已经掌握了,嵌入式工程师通常需要在工作的过程中学习另一半的内容。这使得他们的工作要困难一点点,如果他们的学历更多是针对嵌入式系统开发而设计的话。
当然,我发现那更有趣,因为我喜欢接受那样的挑战,我热爱学习新事物。但是我看得到,花精力让事情完成是多么的有吸引力,尤其是对于应届毕业生而言。另一方面,制造电子器件—制造某些接触世界的东西,而不是提供信息—也具备真正的吸引力。在我的控制之下马达首次转动的那个时刻感觉真的是太美妙了。有一个传感器能够监控发生的事情,所有的服务器信息都得取自某个地方,这个地方通常就来自于嵌入式系统。
云计算出现之后,你有没有发现嵌入式系统的设计方式或者运行方式发生了改变?
White:是的,我发现了。我工作的几个项目最后都把自己的数据放到了云端,然后再取出来。嵌入式系统正变得越来越无线化,越来越类似于物联网那样出现时间已经很久的的东西。不过现在随着WiFi芯片价格更加便宜,嵌入式系统变成了可以融合进云设计当中的Web服务器。对于这个趋势我感到非常兴奋。
看一看像Fitbit那样的产品,那种基本上类似于你在Wii上面所发现的加速计及WiFi芯片那样的东西, 现在它可以一整天监控你的运动模式、睡眠模式并把它放到云上面去。跟Amazon的云不一样—而是更Fitbit化的云,但是它们能够从一个很大的角度来跟踪事物。我不知道它们实际上在跟踪聚合数据,不过肯定有公司能够提供那些聚合数据,告诉人们自己身材是否匀称健康,而不是通过单独的跟踪。
有很多东西进入到云里面。随着我们的嵌入式系统融入更多的WiFi,或者只需更多的网络能力,那么云就会更酷。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
《云技术第一线》之云应用开发
云应用开发的技术和工具多种多样。为了充分地利用它们,将您的应用超越可扩展性,并进入自我修复和无状态的领域。Maximilien是IBM云创新的首席架构师,经常被称为“Max博士”,他还讨论了IT专业人士开发云应用必须考虑的12个关键特性。
-
开发云应用必守的12个规则
云应用开发的技术和工具多种多样。为了充分地利用它们,将您的应用超越可扩展性,并进入自我修复和无状态的领域。
-
Red Hat Cormier发布OpenShift.io和容器状态指数
Red Hat为云应用开发人员提供了新功能和针对容器运行状态和安全性的评级服务。同时,它还避免了在本地工作站上使用OpenShift.io来安装开发工具。
-
云端应用开发:Vistual Studio 2017能帮开发者做什么?
经过十年 发展,云计算的优势已经越发凸显起来,越来越多的企业也已经开始把应用开发转移到了云端,这意味着软件应用的创建过程将发生在云端。但j ,因为一些问题,云中开发还没有大规模的实施。