欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

tvos电视操作系统介绍以及下载

程序员文章站 2022-06-13 11:50:17
tvos电视操作系统介绍以及下载...

tvos电视操作系统1.0正式发布,系统新增信息安全模块,可加强用户的信息安全保障,同时在市场化还可对电视机上的应用进行可管可控,任何应用安装到电视机都可被广电总局监测调控,往后诸如网络直播软件可能将被直接封杀禁止!

tvos电视操作系统特色:

目前还没有专门针对电视终端的操作系统,安卓和ios系统针对电视的优化还没有完成。而在tvos1.0系统中,增加了信息安全模块,加强用户的信息安全保障。

目前,智能电视操作系统90%使用安卓,但更多厂商并不认为安卓为电视而生。

tvos 1.0天生就内置数字电视基因,并考虑到跨平台特性。tvos的软件架构和基于安全芯片自底向上的安全框架,tvos将支持智能人机交互。

android和ios只是在刚开始开发的时候应用在智能终端上,无论哪种操作系统都是十分优秀的。ngb tvos完全兼容android应用,也将致力于建设可持续发展的生态系统。

tvos1.0系统市场化后将对电视机上的应用进行可管可控,有终端电视机企业担心,未来智能电视靠应用发展的速度将放缓。

ngb tvos的软件架构及其主要技术特点:

我国广播电视在向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软件架构概要设计如所示。

tvos电视操作系统介绍以及下载

图1 ngb tvos软件架构概要设计

  ngb tvos向上承载java和html应用,其软件架构按照功能层次从上到下分为五层:应用框架层、执行环境层、功能组件层、硬件抽象层(hal,hardware abstract layer)和linux内核层。

为了实现对系统稀缺资源的高效管理,ngb tvos软件架构提出了一种资源管理框架,从上到下实现系统资源的全局高效管理;为了解决系统的安全问题,ngb tvos软件架构提出了一种安全框架,从上到下实现系统安全的全局防控。

ngb tvos软件架构详细设计见图2。

tvos电视操作系统介绍以及下载

图2  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。

tvos电视操作系统介绍以及下载

图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环境。

tvos电视操作系统介绍以及下载

图4 android的web执行环境解决方案示意图

  ngb tvos的web应用执行环境解决方案见图5所示。在ngb tvos中,web浏览器直接采用原生c/c++语言开发,对webkit组件的访问直接通过c/c++接口,web浏览器的运行与java毫无关系。

tvos电视操作系统介绍以及下载

图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所示。

tvos电视操作系统介绍以及下载

图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版本的早日发布。