经过HelloX开发团队近半年的努力,在HelloX V1.78版本基础上,增加许多功能特性,并对V1.78版本的一些特性进行了进一步优化之后,正式形成HelloX V1.79测试版本。经相对充分的测试和验证之后,现正式发布。相关代码,已全部上载到github上(github.com/hellox-project/HelloX_OS),欢迎对HelloX感兴趣的朋友下载测试和试用,并进一步反馈问题。

除继续保持V1.78所有特性之外,V1.79版本主要对下列特性进行了支持或优化:

1.        支持完整的USB功能,包括对USB1.0/1.1(OHCI/UHCI)控制器的支持,对USB2.0(EHCI)控制器的支持,以及对USB3.0(xHCI)控制器的支持。同时,还支持符合HID规范的USB接口键盘和鼠标功能;

2.        成功移植到基于Intel ATOM芯片组的MinnowBoard MAX开发板上。这包括对板载USB控制器和外设的支持,以及对板载千兆以太网芯片Realtek 8111的良好支持;

3.        网络功能进一步增强。在TCP/IP协议栈和网卡驱动程序之间,插入了一个网络管理器的内核组件。在此组件基础上,系统可以同时支持多个网卡,以及多个网络层协议栈(比如同时支持IPv4协议栈和IPv6协议栈)。同时,可以通过扩展,方便的支持其它通信协议;

4.        软硬件兼容性有了进一步改进。在硬件上,增加了对ARM,MIPS等RISC架构CPU的支持机制,增强了对PCI总线,CACHE,对齐等硬件特性的兼容和支持。在软件开发环境上,所有内核代码成功移植到基于Linux+GCC的编译开发环境;

5.        以可加载模块形式,实现了对物联网管理平台的动态支持。开发者可以根据需要,实时在线更新物联网后台代码。基于这一套机制,完整实现了与中国移动OneNET物联网平台的对接和集成;

6.        内核机制得到进一步增强和完善。内存分配算法效率更高,增加了内存对齐分配功能。实现了线程堆栈异常检测,高频异常中断扼杀,线程消息队列监视等保证内核安全和可靠的特性。同时内核启动时间大大提升,可在10ms级别内完成内核加载和初始化。

开发团队中的Mr. Tywind Huang充分发挥其高超的编程技术和丰富的经验,主导完成了MinnowBoard MAX开发板的移植,Realtek8111网络驱动的开发,物联网平台集成开发等工作,以及其它一些测试或优化工作,在整个HelloXV1.79版本的开发中做出了重大贡献。在MrGaojie的持续努力下,内核代码成功迁移到Linux+GCC的编译开发环境。Mr. Erwin Wang则在GUI模块代码的规范化(C++修改为C),USB功能的诊断测试等方面,做出了大量工作。Mr Blade Luo基于HelloX的网络框架,移植了BSD IP协议栈,为高性能网络支持奠定了基础。同时,开发团队中的Mr Haojie和Mr Wangyu,在编码规范,内核优化等方面,给出了卓有成效的支持。HelloX讨论群组中的很多朋友,都对最新的版本进行了实际测试和试用,给出了很多改进优化建议,在此统一表示感谢。

在HelloX开发过程中,我们始终坚持“稳定可靠,不留问题死角”为原则,所有代码都经过了详细深入的内部测试,并在实际网络环境中经受了大量考验。现举几个典型的例子:

1.   为了对HelloX USB功能进行测试,我们反复采用USB盘引导,并进行持续的读写操作,曾经进行过连续三天的USB读写,没有出现任何异常。在这个过程中,我们用坏了四五块USB盘。为了测试对USB输入设备的支持,我们对一个USB鼠标进行了物理上的破坏,使得它可以以最高频率自动连续的进行输入。我们把它接到运行HelloX的笔记本电脑上,运行了48个小时,无任何异常;

2.   所有的矛盾和问题,都出现在资源紧张的情况下。这在Realtek 8111网卡驱动的开发过程中,表现得尤其明显。最开始的时候,网络功能单独开发,没有与USB功能集成在一起。这时一切正常。但当把网卡驱动和USB功能集成到一起的时候,问题出现了。最开始的问题是,一旦接入到网络(一个实际的企业网络),MinnowBoard MAX单板就无法完成启动,停在USB初始化过程中。我们几乎查看了所有的代码,包括网络代码,USB代码,内核调度程序,内存分配,等等,都没有发现问题。后来,在Realtek 8111网卡驱动的中断处理程序中,增加了一行输出代码,发现了问题。原来中断处理程序漏了一个条件判断,这个条件在网卡的接收缓冲区溢出时会引发。因USB初始化较慢(要扫描USB设备),同时优先级很高,导致网卡接收的报文不能被系统及时处理。这时候一旦接入一个真正的网络,大量的广播等报文,会迅速占满网卡缓冲区,进而引发缓冲区溢出中断。由于中断程序中没有清除该中断,导致中断循环引发,使得系统一直处于中断程序执行中,便产生了停止响应的现象。通过增加一个接收缓冲队列,该问题得到解决。同时基于该经验而增加的“高频中断扼杀”功能,也会对类似问题进行防范;

3.   另外一个实际问题,也是与网络相关。通过增加接收缓冲队列对接收的网络报文进行排队,在合适的时机,系统会处理该队列。但最开始的时候,缓冲队列并没有限制长度,每当网卡接收到一个报文,就会申请一片内存,把数据拷贝到内存中,并排到缓冲队列中。大多数情况下,这是没有问题的。但是在实际测试中,系统还是有偶尔无法启动的情况,甚至初始化时出现崩溃。从错误输出看,是由于内核内存耗尽引起。经深入分析,问题被发现。具体过程是,我们接入的网络,是一个庞大的企业广播网络,流量非常大。而USB初始化比较慢,一旦网络流量太大,会导致大量报文排队,进而导致内核内存耗尽,从而导致内核无法正常工作。基于此,我们限制了网络接收队列的长度,一旦超出一个固定的长度,则新进入的报文就会被丢弃。该机制有效解决问题。

虽然这些问题及解决办法,看起来很细小,但正是这些细节上的完善和优化,使得系统趋向稳定和成熟。在操作系统开发中,也是“细节决定一切”。同时,在定位和处理这些问题时,整个内核的代码,都会被重新审视和检查,这对内核来说,也是一种进一步的确认。虽然这些问题的原因很简单,但其定位过程却是痛苦和繁杂的,很多时候,需要把内核代码翻来覆去好几遍。相信处理过bug或问题的朋友深有体会。

作为物联网操作系统,HelloX将始终聚焦物联网领域的应用,为物联网量身定制一套最优的系统软件解决方案。我们认为,只有一个内核的支撑,是远远不够的。物联网和智能硬件的有效发展和壮大,需要更多技术的支持,比如人工智能,分布式计算,机器学习,等等。但一个稳定可靠和可扩展的物联网操作系统,是这些技术的最好生存土壤。后续我们在进一步完善内核的同时,将在这些领域进行探索和研究,并依托HelloX进行落地实现,真正构筑一套支撑未来网络的软件数字神经。

2015年已经过去,新的一年已经来临。整个物联网产业依然处于培育发展阶段,但前景逐渐明朗。我们的物联网操作系统项目,也越来越壮大和稳定。我们遵循“稳中有进,同步发展”的策略,与整个物联网产业的发展保持步调一致。借用***主席2016新年贺辞中的话,与朋友们共勉:“只要有付出,总会有收获。只要坚持,梦想一定会实现!”。希望在新的一年里,我们共同努力,一起坚持,最终实现民族基础软件腾飞的梦想。

HelloX物联网操作系统开源社区正在筹建,并取得了一些社会团体和企业的支持,欢迎有志于物联网和系统软件开发的人士加入。具体的细节,欢迎加入QQ群讨论:38467832

QQ/微信:89007638

对HelloX和物联网操作系统的进一步信息,请关注blog:blog.csdn.net/hellochina15

物联网操作系统HelloX V1.79发布公告的更多相关文章

  1. 物联网操作系统HelloX V1.77(beta)版本发布

    物联网操作系统HelloX V1.77发布 经过近半年的努力,物联网操作系统HelloX V1.77版本正式完成,源代码已上载到github(github.com/hellox-project/Hel ...

  2. 物联网操作系统HelloX V1.80测试版发布

    经过HelloX开发团队近半年的努力,在HelloXV1.79版本基础上,增加许多功能特性,并对V1.79版本的一些特性进行了进一步优化之后,正式形成HelloX V1.80测试版本.经相对充分的测试 ...

  3. 物联网操作系统HelloX V1.78测试版正式发布

    经过HelloX开发团队近四个月的努力,在HelloX V1.77版本基础上,增加许多功能特性,并对V1.77版本的一些特性进行了进一步优化之后,正式形成HelloX V1.78测试版本,经相对充分的 ...

  4. 基于物联网操作系统HelloX的智慧家庭体系架构

    基于物联网操作系统HelloX的智慧家庭体系架构 智慧家庭是物联网的一个分支应用,是一个被广泛认同的巨大IT市场空间.目前市场上已经有很多针对智慧家庭的产品或解决方案,但与移动互联网不同,智慧家庭至今 ...

  5. 物联网操作系统HelloX已成功移植到MinnowBoard MAX开发板上

    在HelloX开发团队的努力下,以及Winzent Tech公司(总部在瑞典斯德哥尔摩)的支持下,HelloX最新版本V1.78已成功移植到MinnowBoard MAX开发板上.相关源代码已经发布到 ...

  6. 物联网操作系统HelloX开发者入门指南

    HelloX开发者入门指南 HelloX是聚焦于物联网领域的操作系统开发项目,可以通过百度搜索"HelloX",获取详细信息.当前开发团队正在进一步招募中,欢迎您的了解和加入.如果 ...

  7. 物联网操作系统HelloX开发人员入门指南

    HelloX开发人员入门指南 HelloX是聚焦于物联网领域的操作系统开发项目,能够通过百度搜索"HelloX".获取具体信息. 当前开发团队正在进一步招募中,欢迎您的了解和添加. ...

  8. 物联网操作系统HelloX应用编程指南

    HelloX操作系统应用编程指南 HelloX应用开发概述 可以通过三种方式,在HelloX操作系统基础上开发应用: 1.        以内部命令方式实现应用,直接编译链接到HelloX的内核she ...

  9. 基于.Net Core开发的物联网平台 IoTSharp V1.5 发布

    很高兴的宣布新版本的发布, 这次更新我们带来了大量新特性, 最值得关注的是, 我们逐步开始支持分布式, 这意味着你可以通过多台服务器共同处理数据, 而不是原来的单机处理, 我们也将遥测数据进行分开存储 ...

随机推荐

  1. 转:jxl导出excel(合并单元格)

    Demo 代码如下: import java.io.*; import jxl.*; import jxl.format.UnderlineStyle; import jxl.write.*; pub ...

  2. Android 检查设备是否存在 导航栏 NavigationBar

    尊重原创.尊重作者,转载请标明出处: http://blog.csdn.net/lnb333666/article/details/41821149 目前也没有可靠的方法来检查设备上是否有导航栏.可以 ...

  3. Content Providers详解

    今天仔细阅读了一遍Content Providers的官方API文档,总结了一下Android中Content Providers的用法. 各种类型的Content Provider对一个结构化的数据 ...

  4. HDU 1428 漫步校园(记忆化搜索,BFS, DFS)

    漫步校园 http://acm.hdu.edu.cn/showproblem.php?pid=1428 Problem Description LL最近沉迷于AC不能自拔,每天寝室.机房两点一线.由于 ...

  5. Xamarin for Visual Studio 破解日志

    一.相关声明 本文涉及的 Xamarin 系列软件的版权为 Xamarin Inc. 所有 以本文涉及的思路和方法破解的软件,禁止用于商业用途 如无必要,学习和研究时最好以正版为准 团队或土豪等若觉得 ...

  6. ios开发 ad hoc

    iOS证书分2种,1种是开发证书,用来给你(开发人员)做真机测试的:1种是发布证书,发布证书又分发布到app store的(这里不提及)和发布测试的ad hoc证书. 那ad hoc证书和开发证书区别 ...

  7. Markdown语法和MWeb使用说明

    Markdown 语法和 MWeb 写作使用说明 开始写博客,首先熟悉一下Markdown,以前过看GitHub里的README.MD,感受到了这种文字排版的简洁美观. 写博客是一种有效的学习总结和分 ...

  8. Win8.1安装VirtualSVN Server发生service visualSVN Server failed to start解决办法

    Service 'VisualSVN Server' failed to start. Please check VisualSVN Server log in Event Viewer for mo ...

  9. Java SpringMVC实现国际化整合案例分析(i18n)

    所谓国际化就是支持多种语言,web应用在不同的浏览环境中可以显示出不同的语言,比如说汉语.英语等.下面我将以具体的实例来举例说明: (1)新建动态Javaweb项目,并导入几个SpringMVC必需的 ...

  10. 配置VNCserver

    翻译:yunqing原作者:Thomas Chung出处:http://fedoranews.org/tchung/vnc/ 声明: 版权属原作者Thomas Chung所有,转载请注明出处. 再说一 ...