tvos电视操作系统1.0正式发布,系统新增信息安全模块,可加强用户的信息安全保障,同时在市场化还可对电视机上的应用进行可管可控,任何应用安装到电视机都可被广电总局监测调控,往后诸如网络直播软件可能将被直接封杀禁止!
目前还没有专门针对电视终端的操作系统,安卓和IOS系统针对电视的优化还没有完成。而在TVOS1.0系统中,增加了信息安全模块,加强用户的信息安全保障。
目前,智能电视操作系统90%使用安卓,但更多厂商并不认为安卓为电视而生。
TVOS 1.0天生就内置数字电视基因,并考虑到跨平台特性。TVOS的软件架构和基于安全芯片自底向上的安全框架,TVOS将支持智能人机交互。
Android和iOS只是在刚开始开发的时候应用在智能终端上,无论哪种操作系统都是十分优秀的。NGB TVOS完全兼容Android应用,也将致力于建设可持续发展的生态系统。
TVOS1.0系统市场化后将对电视机上的应用进行可管可控,有终端电视机企业担心,未来智能电视靠应用发展的速度将放缓。
我国广播电视在向NGB迈进的征程中,实现接收终端的标准化和智能化是一项重要任务:只有实现终端的标准化,NGB全国互联互通业务才能落地;只有实现终端的智能化,才能承载跨屏互动、多屏融合等NGB智能业务,满足“4A”(注:“4A”是指Any Time、Any Where、Any Device、Any Content)需求,即用户可在任何时间(Any Time)、任何地点(Any Where)、采用任何终端设备(Any Device)、接受任何内容(Any Content)。
接收终端所谓的“智能化”,是指接收终端具有全开放式平台,搭载了操作系统,除欣赏电视节目外,用户还可自行安装和卸载各类应用软件,持续对功能进行扩充和升级,以此不断满足个性化需求。接收终端的形态可以是一体机,也可以是外置的电视盒(即智能机顶盒),也可以是其它形态,实现接收终端的标准化和智能化关键不在于硬件平台的统一和智能,而是其所搭载的核心软件平台,即操作系统。实现操作系统的标准化和智能化是解决问题的关键,实现符合NGB业务发展需求的智能电视操作系统(TVOS)对实现NGB具有重要战略意义。
目前在智能电视领域试水的智能操作系统有iOS、Android、MeeGo、Tizen等,竞争力最强的当属美国Google公司主导的Android操作系统。Android对智能手机领域的垄断基本成为事实,无论是智能手机终端制造还是智能手机应用开发,参与者众多,围绕Android的智能手机生态链逐渐成熟。在智能电视领域,目前已经出现了多款基于Android深度定制的智能电视,例如小米电视、乐视互联网电视等等。若智能电视被国外非可管可控的操作系统占领,操作系统内核的安全无法保证,运行于其上的应用不受管控,严重威胁国家的文化和信息安全,我国迫切需要自主、安全、可管可控的智能电视操作系统。
2012年3月,国家新闻出版广电总局科技司组织科研院所、设备开发商、网络运营商等17家单位成立了NGB TVOS合作开发组,开展NGB TVOS的研发工作,于2013年7月实现1.0版本的原型系统,目前正在版本稳定测试过程中。
软件架构体现了一个软件系统的设计思路和技术路线,撰写本文对NGB TVOS的软件架构进行分析,对其技术特点进行总结,以便读者能从总体上更好地了解NGB TVOS。
NGB TVOS应满足下列最基本的要求:
安全、可管可控;
标准化:支持NGB中间件标准和可下载CA(DCAS)标准定义的API;
开放架构与高效应用计算;
支持多硬件平台:不同主芯片和外设芯片组合方案;
支持多种终端产品形态:数字电视机顶盒和一体机,互联网电视机顶盒和一体机,数字电视+互联网电视机顶盒和一体机等;
能够有效利用和整合已有产业链资源:如已有的各种应用程序资源,特别是Android下的各种应用;
自主创新。
在此需求的导向下,NGB TVOS软件架构概要设计如所示。
图1 NGB TVOS软件架构概要设计
NGB TVOS向上承载Java和HTML应用,其软件架构按照功能层次从上到下分为五层:应用框架层、执行环境层、功能组件层、硬件抽象层(HAL,Hardware Abstract Layer)和Linux内核层。
为了实现对系统稀缺资源的高效管理,NGB TVOS软件架构提出了一种资源管理框架,从上到下实现系统资源的全局高效管理;为了解决系统的安全问题,NGB TVOS软件架构提出了一种安全框架,从上到下实现系统安全的全局防控。
NGB TVOS软件架构详细设计见图2。
图2 &nbSP;NGB TVOS软件架构详细设计
本文按层次对NGB TVOS的架构进行分析。
(1)应用框架层
所谓应用框架是指对底层功能组件外露的能力的组合和封装,简化应用程序对底层功能组件的调用,方便应用程序开发。
NGB TVOS支持Java和Web应用,因此同时提供了Java应用框架和Web应用框架:Java应用框架是指底层功能组件外露的能力在Java空间的组合和封装,以Java对象的形式存在,应用程序通过调用Java对象的方法实现对底层功能组件的访问;Web应用框架是指底层功能组件外露的能力在Web空间的组合和封装,以HTML标签、JS对象等形式存在,应用程序通过调用JS对象的方法实现对底层功能组件的访问。
Java应用框架向应用程序显露的API遵循GY/T 267-2012《下一代广播电视网(NGB)终端中间件技术规范》,简称NGB-J API。
Web应用框架主要包括HTML 5.0标签、JS 1.5对象和扩展JS对象。扩展JS对象遵循GY/T 267-2012《下一代广播电视网(NGB)终端中间件技术规范》,简称NGB-H JS对象。
(2)执行环境层
所谓执行环境是指软件代码被解释执行的实时运行环境,NGB TVOS提供了Java和Web两种应用执行环境。
Java应用执行环境用以解释执行Java字节码,主要包括Java虚拟机和Java核心库。NGB TVOS选用了开源的Dalvik虚拟机;为支持早期遵循J2ME规范开发的数字电视应用,NGB TVOS改造了Java核心库,实现了CDC 1.1.2(JSR 218)、FP 1.1.2(JSR 219)、PBP 1.1.2(JSR 217)等全部的J2ME库。此Java应用执行环境称之为TVM(Television Virtual Machine),意即能支撑数字电视应用的Java虚拟机环境。
Web应用执行环境用以解释执行由HTML标签、CSS标签、JS脚本等组成的Web页面,本质上是一个Web浏览器。Web应用执行环境的核心能力是由底层组件层WebKit组件提供的,由WebKit实现对标签的解析,对Web页面的排版布局,对JS脚本的解释执行等。
(3)功能组件层
所谓功能组件是指功能相对独立的软件模块,以系统后台服务或静态函数库的形式存在。功能组件是NGB TVOS核心能力的实现者,全部以C/C++代码实现,可以获得比Java更高的运行效率,对机顶盒这类终端来说尤为重要。功能组件外露的能力通过应用框架的组合和封装暴露给应用程序。
NGB TVOS提供的系统服务主要有DTV、DCAS、VOD、AV设置等与数字电视相关的服务,有窗口管理、事件管理、人机交互等基本GUI服务,有应用管理、安装包管理、内容管理等系统服务。
NGB TVOS提供的静态函数库主要有SQLite、FreeType、SurfaceManager、WebKit等,均来自于开源项目。
(4)硬件抽象层(HAL)
所谓硬件抽象层(HAL,Hardware Abstract Layer),是指对与硬件平台相关部分进行抽象封装,为上层提供统一的API,下层针对具体的软硬件平台进行适配,为TVOS跨平台移植提供方便,主要对下列硬件部件进行HAL封装:WiFi、USB、视频解码器、音频解码器、摄像头、电源管理器、调谐解调器等。
(5)Linux内核层
Linux是一个开源开放的操作系统,采用Linux内核则是智能电视终端操作系统开放性的基础。Android基于Linux 2.6.x,其对Linux所做的改进已经正式纳入Linux的后续版本。NGB TVOS采用Linux 3.0.31作为基线版本,继承沿用由Android所贡献的改进之处,例如Binder机制。
NGB TVOS对Linux内核进行了功能扩充和安全增强。
(6)资源管理框架
所谓的“框架”是指一种统一的规则或规范。NGB TVOS制定了全局的资源管理框架,在每个软件层都植入了资源管理模块,任何部件都可按照此框架与资源管理模块对接,实现系统资源的全局高效管理。
(7)安全管理框架
NGB TVOS制定了全局的安全管理框架,在每个软件层都植入了安全模块,任何部件都可按照此框架与安全模块对接,实现系统安全的全局防控。
从软件架构上分析,NGB TVOS与iOS、Android、MeeGo、Tizen等操作系统相比架构上基本上趋同,但在具体软件代码实现上,NGB TVOS具备自己独特的技术特点。
(1)天生内置支撑数字电视业务的“基因”
NGB TVOS天生就是为了支撑数字电视(DTV)业务。在如何支撑数字电视方面,不同的智能操作系统有着不同的做法,绝大多数都是将数字电视功能独立在智能操作系统之外,而NGB TVOS将支撑数字电视的“基因”内置于智能操作系统内核中,较好地与智能操作系统融合在一起,成为智能操作系统不可或缺的组件。NGB TVOS的数字电视功能解决方案见图3。
图3 NGB TVOS的数字电视功能解决方案示意图
NGB TVOS在Linux内核层、组件层和应用框架层都植入了支撑数字电视的“基因”,但主要能力是由组件层的DTV组件实现的。DTV组件的核心能力由服务端完成,对外显露的能力通过客户端提供,服务端和客户端通过Linux内核层的Binder驱动通信。DTV服务端通过HAL层访问Linux内核层的高频头和解复用器驱动。为便于Java应用访问DTV组件,在应用框架层实现了DTV Java API,符合GY/T 267-2012标准;为便于Web应用访问DTV组件,在应用框架层实现了DTV JS API,符合GY/T 267-2012标准。
(2)支持DCAS,实现内容保护的水平化
可下载CA系统(DCAS, Downloadable Conditional Access System)是一套完整的端到端业务保护系统,具有传统条件接收系统所有的授权控制和管理功能。接收终端可以通过DCAS用户端软件下载,实现在不同DCAS系统终端间的灵活切换,从而实现终端业务保护水平化。
NGB TVOS从最初的架构设计就将对DCAS的支持考虑在内,实现了CA组件,实现对DCAS和传统CA的支持。
(3)Java生态和Web生态并重的架构设计
Java应用侧重于逻辑运算,Web应用侧重于信息呈现,各有千秋,NGB TVOS提供了支撑这两种应用的执行环境。与Android不同的是,NGB TVOS提供了Java生态和Web生态并重的架构设计,Web执行环境的存在不依赖于Java环境。
Android的Web应用执行环境解决方案如图4所示。在Android中,Web浏览器采用Java语言开发,对WebKit组件的访问通过Java应用框架层的WebKit Java API,Web浏览器的运行依赖于Android的Java环境。
图4 Android的Web执行环境解决方案示意图
NGB TVOS的Web应用执行环境解决方案见图5所示。在NGB TVOS中,Web浏览器直接采用原生C/C++语言开发,对WebKit组件的访问直接通过C/C++接口,Web浏览器的运行与Java毫无关系。
图5 NGB TVOS的Web执行环境解决方案示意图
(4)TVM环境实现对J2ME应用的支撑
NGB TVOS的Java应用执行环境采用了与Android相同的Dalvik Java虚拟机,该虚拟机的实现目前是个开源项目。Dalvik虚拟机的优点就是对Java字节码的解释执行基于寄存器机制,耗内存少,经过优化可在有限的内存空间中同时运行多个虚拟机实例,使得每个Java应用都运行在独立的进程中,Java应用的隔离性比较好,一个Java应用崩溃不影响其它Java应用正常运行。
然而早期广电运营商部署的很多Java应用都基于Sun J2ME规范,NGB中间件和DCAS标准也基于J2ME规范。J2ME应用的执行环境采用CVM虚拟机,Java字节码的解释执行基于堆栈机制,内存开销大,只能运行一个Java虚拟机实例,所有Java应用运行在同一个进程中,一个Java应用一旦崩溃将导致其它Java应用终止执行。
NGB TVOS吸收了Dalvik虚拟机的优点,同时为了保护运营商的前期投入,必须要让Dalvik虚拟机能执行基于J2ME规范的Java应用。NGB TVOS实现了TVM(Television Virtual Machine),对Dalvik的核心Java库进行改造,补充了J2ME PBP/FP/CDC库;提供了转换工具,可将J2ME .class文件转成Dalvik .dex文件,可将J2ME .jar包转换成.apk包;J2ME应用的.jar包可预先在前端侧静态转换成.apk包,也可在终端侧动态转换成.apk包,最终dalvik虚拟机执行的都是.dex文件。为保证对J2ME的最大的兼容性,建议在前端侧静态转换,待兼容测试通过后再上线部署。
(5)Java应用框架的“垫片”机制
为了发展壮大自己,初期NGB TVOS可利用目前大量存在的Android应用,借势发展壮大自己。对Android应用的兼容是NGB TVOS发展的一种策略,而不是依赖。
NGB TVOS采用了一种“垫片”机制,实现了对Android应用的兼容。若将来还需要兼容其它平台的应用,同样可采用“垫片”机制实现兼容。垫片机制的原理如图6所示。
图6 NGB TVOS的“垫片”机制
所谓“垫片”是指保持底层功能组件的核心能力不变,为适应不同平台的需要,对功能组件的能力在Java应用框架层重新组合和封装,以实现对其它平台的兼容支持,其技术原理可通过下面的例子说明。
举例:NGB TVOS有图形组件、窗口组件和消息组件等,全部是C/C++实现,为实现对J2ME AWT的支持,可将这些组件的能力按照J2ME规范封装出AWT接口;保持这些图形组件的能力不变,也可根据Android规范封装成Android接口。
(6)Java服务代码采用C++重构,提高运行效率
在智能电视这种大屏幕应用场景中,应用的执行效率对用户体验的影响极大,为此对NGB TVOS新增加的功能组件直接采用C/C++语言实现,对从Android吸收引进过来的功能组件采用C/C++语言重构。采用原生C/C++方式实现后台服务组件,极大提升了NGB TVOS的运行效率。
NGB TVOS与Android等相比,具备Android的基本功能;围绕TVOS,可以建立与Android一样的生态系统;更由于天生就内置了数字电视“基因”,是专门为广电数字电视服务量身定做的一款操作系统,在接收直播数字电视服务的用户体验方面将会超过Android。
安装NGB TVOS的智能电视接收终端将是现有数字电视机顶盒的升级替代。截止到2013年2月底,我国数字电视用户数已达到1.4亿户,若逐步替换成安装NGB TVOS的智能终端,无论是终端制造业,还是围绕TVOS衍生的新型智能电视服务业,都将获得巨大发展,可以有效促进数字电视产业的升级换代。
NGB TVOS是一款天生内置了数字电视“基因”的操作系统,数字电视相关功能组件可与系统其它功能组件紧密耦合、协同高效工作;提出了“垫片”机制实现对其它平台应用的兼容,在软件架构上具有一定的开放性;提出了TVM这种Java应用执行环境,应用框架完整实现GY/T 267-2012《下一代广播电视网(NGB)终端中间件技术规范》,支持早期基于J2ME和NGB中间件规范的数字电视应用,保护了运营商已有的业务部署和投资;功能组件全部采用C/C++方式实现,运行效率比Java方式高效。
在软件架构方面,NGB TVOS具有一定的创新性,但能否适应市场需求顽强地存活下去,除了技术本身外,外围生态圈的建设也很重要。从最初的方案设计到最终的产业化应用,NGB TVOS还有很长的路要走,期待NGB TVOS 1.0版本的早日发布。