物联网操作系统HelloX V1.82发布公告

物联网操作系统HelloX V1.82发布公告

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

HelloX V1.82主要功能简介

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

1.        实现了完整且丰富的网络功能,包括以太网交换,IP路由,网络地址转换(NAT),PPPoE宽带拨号,DHCP Server,安全访问策略和防火墙等功能。可以基于HelloX实现完整的宽带接入路由器;

2.        V1.82版本还支持多种以太网驱动,包括对PCNet,Realtek 8111,Realtek 8152等网卡的驱动支持。其中Realtek 8152是一款USB转Ethernet接口芯片。只要你的计算机有USB接口,就可以通过购买基于该款芯片的USB/以太网转接模块,轻松连接网络;

3.        进一步加强和优化了Samsung的JavaScript引擎-JerryScript。这使得HelloX可以支持JavaScript编程,而JavaScript被认为是物联网时代的主要应用编程语言;

4.        增加了更加丰富和完整的调试与诊断手段,包括日志输出功能,异常情况下的调试信息输出功能,以及内存申请跟踪等功能。当前的内核,已经很少出现异常情况。万一出现异常,通过分析上述手段输出的信息,可以快速定位问题。

HelloX V1.82编译后的可执行文件大小,包括内核,网络功能,用户命令行界面,文件系统,各类驱动程序等,在500K左右,可满足大多数嵌入式硬件的要求。而JerryScript等程序,则以外部可执行文件的方式存在,可以存放在外部存储介质如USB stick或者SD card上,按需加载和卸载。

HelloX V1.82网络功能介绍

HelloX V1.82的网络功能具有安全,高效等特点,主要表现在下列几个点上:

1.   为了确保安全,HelloX的IP协议栈关闭了所有的服务端口。绝大多数网络安全问题,是由于操作系统默认开放的服务端口导致。比如,大多数路由器上运行的操作系统,都会开放80号端口,作为路由器配置的服务端。这样该端口一旦被扫描到,攻击者就可以发送大量的TCP连接和HTTP请求,对目标进行攻击。由于这些攻击报文都是合法的请求,路由器不得不正常进行处理,最终会导致CPU忙于应付攻击而无法转发正常的用户报文,从而停止响应。而HelloX V1.82版本不开放任何端口,采用命令行或者远程服务器方式(HelloX作为客户端,使用随机端口连接远端配置服务器)进行配置,从而避免了这种威胁;

2.   与此同时,HelloX V1.82的NAT功能,只允许从内部网络访问外部网络,也就是说,只有通过HelloX的DHCP Server获取到IP地址的设备,才允许访问到Internet。任何试图从Internet访问内部网络,都会被HelloX所拦截掉;

3.   网络地址转换(NAT)功能的最大挑战,就是如何组织NAT表项,以确保IP报文的修改和转发效率。一台访问Internet的个人计算机可以产生数千条NAT表项,如果采用链表或者数组方式来组织,采用线性查找算法,则查找时间会非常长,导致整体转发效率大大降低。HelloX采用Radix Tree加Hash表的方式来组织NAT转换表项,在大多数情况下,不管NAT表项的数量有多少,只需要查找8次,就可以找到匹配的NAT表项。同时,HelloX根据不同网络协议的交互过程,来最大可能的降低NAT表项数量。比如,HelloX会跟踪TCP会话的状态,在TCP数据传输结束(TCP会话的两端都发送FIN比特)时,立即删除对应的NAT表项,而不用等到超时。这些措施综合起来,可以保证NAT功能的整体效率;

4.   HelloX的DHCP Server功能,会记录分配给每台计算机的IP地址。即使计算机从网络上断开,在下一次接入网络时,HelloX也会查找内部数据库,为该计算机分配原来的IP地址(只要该IP地址没有被重新分配出去)。这样可以确保计算机永远使用相同的IP地址,这在物联网的应用中尤其重要。另外,HelloX的DHCP Server功能还可以对终端的身份进行验证,只有记录在案的终端,才能获得IP地址,这样可有效防止非法接入,从而确保整个网络的安全。在物联网时代,非法接入是常见的安全威胁,这种验证机制可以降低非法接入造成的不良后果;

5.   HelloX的IP协议栈代码,移植了业界常熟的lwIP协议栈。但是lwIP协议栈只保证了IP协议的功能正确,其性能是很差的。比如,lwIP协议栈采用消息队列来传递IP报文,一个IP报文对应消息队列中的一个元素。一次线程调度,只处理一个消息(也就是一个IP报文),在大量IP报文同时到达时,就出现丢包或处理不及时问题。HelloX对这个机制进行了修改,采用消息队列加报文队列结合的方式对IP报文进行处理。对于批量到达的IP报文,HelloX会把这些报文全部放到报文队列中,然后只发送一个消息,通知TCP/IP线程去处理。一旦TCP/IP线程得到调度,就会连续处理报文队列中的所有报文,而不是只处理一个报文。这种机制大大的提升了整体吞吐量。比如,采用消息队列方式,在下载大文件或者看网络视频时,丢包率达到50%以上,视频卡顿得无法观看。采用上述机制优化之后,丢包率为0,视频流程。还有其它大量的优化,限于篇幅,不做详细说明。总之,HelloX把面向低端低性能应用的lwIP协议,优化成了高性能高可靠,可以适应任何应用场景(从G比特吞吐量的路由器,到低端嵌入式设备)的IP协议栈。

需要说明的是,HelloXV1.82的网络功能,只有基础IP协议栈是基于lwIP协议进行移植和优化的,NAT,DHCP Server,IP路由功能,以太网交换功能等主要的网络功能,都是完全自主开发的代码,lwIP协议栈目前尚不具备这些功能。

除此之外,HelloX的网络功能还具备可扩展可伸缩的特点,可以很容易的增加新的网络协议和网络功能。比如,可以通过增加一个协议对象的方式,很容易的增加IPv6支持。而这种新增加的功能,不会对原有功能带来任何影响。

在HelloX V1.82版本的开发过程中,我们始终坚持“稳定可靠,不留问题死角,可直接应用”为原则,所有代码都经过了详细深入的内部测试。为了测试HelloX的网络功能,我专门用一台笔记本电脑加一个无线AP,搭建了一个家庭宽带路由器(物理图和逻辑图如下),并连续使用了将近一个星期(期间因为断电,有过几次重启),体验与普通路由器没有任何差别。



注:HelloX运行在一台笔记本电脑上,通过两个RealtekR8152 USB网卡,分别连接运营商网络和无线AP。其中无线AP只是做WLAN和有线之间的转换,没有任何网络功能。HelloX通过PPPoE拨号方式,接入运营商网络。在连接无线AP的接口上,启用DHCP Server功能,同时HelloX启用NAT功能。手机和电脑等终端设备,通过AP提供的WLAN信号,接入到HelloX GW,HelloX为这些终端分配IP地址(192.168开头的保留IP地址)及DNS服务器。通过HelloX的NAT功能,终端设备可访问Internet。

HelloX后续会针对新的网络发展,比如IPv6,5G等,对网络功能做进一步的增强。同时也会进一步引入业界先进的网络架构和新技术,比如SDN(软件定义网络),新的网络安全技术,打造一个兼容现有的路由器功能,同时面向物联网应用的软件平台。这个软件平台完全开源,并始终保持安全,高效,灵活等特点,立足中国,面向全球,为人类的信息化建设增砖添瓦。

HelloX V1.82 JavaScript执行引擎介绍

在HelloX V1.81版本中,已经引入面向嵌入式JavaScript的执行引擎-JerryScript。JerryScript是SANSUNG公司主导开发的一个面向物联网和嵌入式应用的JS执行引擎,具备代码开源,执行高效,占用资源少等特点。

在HelloX操作系统中,JerryScript解释引擎被编译成一个外部可执行模块,并保存在外部存储介质中。需要时,通过loadapp命令,加载到内存中执行。我们编写了一个简单的JavaScript执行shell,执行”loadappjerryvm.exe”之后,即可加载JerryScript并启动这个shell。程序员可以编写JavaScript脚本,完成之后,按下“Ctrl + Z”组合键,即可执行刚刚编写的代码。要退出这个shell,只需按下”Ctrl + C”组合键即可。

为了便于体验和测试HelloX的JavaScript功能,我们专门制作了一个虚拟硬盘文件(/bin目录下,vdisk.vhd压缩文件)。感兴趣的朋友可以直接把这个虚拟硬盘挂接到虚拟机上(比如VirtualBox),引导运行即可。下图示意了一个简单的JavaScript开发截屏:

 

需要说明的是,对JavaScript的支持,只是HelloX支持物联网应用开发的手段之一。并不是所有的物联网应用都适合用JavaScript开发,毕竟这是一种解释型语言,执行效率和实时性是其软肋。作为一个全栈的操作系统,HelloX可以提供多层次的API或者机制,来满足几乎所有物联网应用的开发。比如,为了适应实时性开发的要求,HelloX可以直接提供C语言开发接口。而仅仅提供JavaScript语言开发的环境,显然无法具备这种能力。

HelloX进一步的开发方向

作为物联网操作系统,HelloX将始终聚焦物联网领域的应用,为物联网量身定制一套最优的系统软件解决方案。我们认为,只有一个内核的支撑,是远远不够的。物联网和智能硬件的有效发展和壮大,需要更多技术的支持,比如人工智能,分布式计算,机器学习,等等。但一个稳定可靠和可扩展的物联网操作系统,是这些技术的最好生存土壤。

同时我们认为,物联网中的一个关键组件将会是物联网接入网关。不论是哪种应用场景,物联网网关将是物联网世界连接用户或者真实世界的最核心角色。因此,后续HelloX会首先瞄准这一个物联网应用场景,进行深入耕耘。物联网网关首先是一个更安全和高效的宽带接入网关,同时具备支撑物联网应用的能力。下图示意了我们对物联网网关的理解:


物联网网关并不是孤立存在的,而是需要AI平台,大数据平台,物联网设备管理平台等一系列后端平台的支撑,共同组成一个面向物与物互联和协同的数字神经。我们的目标,就是构筑这样一套数字神经。

俗语有云:“难事必做于易,大事必做于细”。HelloX操作系统当前的主要应用目标,定位于物联网网关,但是要真正做出特色,做出价值,还是要从一些具体的功能入手,来打开缺口。经过与行业内一些人士交流之后,我们决定,HelloX的下一个版本将在下列功能领域进行进一步增强和开发:

操作系统内核

我们认为,物联网网关与现有的宽带接入网关不同。现有的宽带接入网关,强调的是网络处理和转发能力,只是作为一个路由器存在,其计算能力非常有限。但是到了物联网时代,网关的功能将在需求驱动下,功能和处理能力将呈指数级增强。首先,边缘计算能力(Edge Computing)会被加入到物联网网关中,负责网关所辖区域内的计算任务,比如AI建模和训练,复杂的逻辑推断,庞大的树或者图遍历(大于1万个节点),等等。同时,边缘网关还将面对各种各样不同厂商,不同功能的物联网终端设备,每个设备都可能会有自己独立的处理任务。

为了适应这种情况,我们需要对HelloX的内核做进一步优化,甚至是重构。比如,当前HelloX内核只支持单核CPU,将来需要支持多核CPU,核的数量会有很大幅度的变动,可以从4个一直变化到数百个。对内存管理算法和机制,也有非常大的优化空间。现在是基于空闲链表算法来管理内存,在内存块数量急剧上升(达到十万级别)的时候,分配和释放效率都会出现下降。还有其它诸多的优化或者重构的方面,在此不做赘述。

总之,我们的目标是,下一个版本的HelloX的内核,其内核并发效率,实时性,简洁性和安全性等,将超越Linux和大多数操作系统。

构筑面向未来的网络协议栈

未来将对HelloX的网络协议栈做进一步增强和重构,开发一个业界独创,面向未来的网络协议栈。主要包括下列方面:

1.   同时支持IPv6和IPv4协议,能够按照用户的需求,同时高效处理这两种IP协议。我们要设计一种全新的协议架构,设计一套通用的数据结构,同时为IPv4和IPv6两种协议所用,而不是像现在的大多数实现一样,IPv4和IPv6相互隔离,没有交互;

2.   进一步增强网络的安全,充分吸收新的网络架构和技术,比如SDN等,来做到最大限度的安全。我们认为,未来的网络安全,怎么强调都不过分。而一个自主和全新的网络架构,可以甩掉长期积累的包袱,轻装上阵,满足未来网络和信息系统的需要;

3.   在支撑网络的基础算法和数据结构有创新,满足未来网络的性能需要。比如融合IPv4和IPv6的路由查找算法,网络报文DPI深度解析算法等等,以期达到业界顶尖水平。

总之,我们的定位是,下一个版本的HelloX,其网络协议栈的安全,效率,架构等方面,将达到业界顶第一的水平。

基于JavaScript,构筑一套全新的物联网开发框架

现在有很多物联网开发框架,比如IoTivity,三星主导的IoT.js等。这些框架都是基于企业开发框架来衍生或者设计的,我们认为并不能很好的适应物联网的本质特征,无法对物联网的发展启动助推作用。

我们计划,基于JavaScript语言,构筑一套全新的,分三个层级的物联网开发框架。通过充分的抽象和模型建立,形成一套基础的物联网模型库。基于这一套基础模型库,进一步派生出二级面向具体行业的模型库,可以成为Tier 2模型库。进一步地,基于Tier 2模型库,进一步派生出某个行业内的物联网模型。这样某个行业内的具体应用,就可以快速和直接地引用这些行业特定模型,或者对这些模型进行派生和扩展,快速高效的开发出独立于运行硬件和运行软件环境的物联网应用。

总之,我们的定位很高,但不是盲目定位,而是基于已有HelloX的代码和成果,以及前期探索的基础上,做出的可以预期达到的定位。这些功能和特性开发完毕之后,将会极大增强HelloX的竞争力,相信能够达到物联网操作系统领域业界第一的位置。

欢迎有志于物联网和系统软件开发的人士加入加入我们,进一步开发和优化HelloX操作系统。相信在我们的共同努力下,必然能够做出面向未来的基础软件平台和核心软件部件,有效促进物联网和信息化的发展水平,进一步提升人们的生活水准,为人类的发展做出贡献。

对于参与其中的朋友们来说,您的开发成果和代码输出,可以共同积累在一个相同的平台上,永远沉淀下来。如果我们做成了,您将“青史留名“。即使做不成,通过这个过程,您也可以对自身的专业技能和行业理解有一个系统的梳理和提升,必然有助于您职业的发展。打一个更加通俗的比方,相比每天拿着手机刷半天花边新闻,看半天视频,然后自责的关上手机,感叹一天又快过去了,您是不是更愿意做一些与自身专业相关且有持续积累和持续产出的事情呢?相信这样会更充实和有意义。:-)

更具体的细节,欢迎加入QQ群讨论:38467832

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值