1、自主可控软硬件与开源社区 推进的一点思考,江南计算技术研究所 2015年11月,汇报内容,自主可控软硬件现状 申威平台开源软件应用情况 体会和思考,一、国产自主软硬件现状,在国家“863”、“核高基”等项目的大力支持下,国产基础软硬件取得了长足的发展,为构建自主可控、安全可信的网络信息体系打下了良好基础。 形成了龙芯、申威、飞腾、众志等为代表的国产CPU 形成了中标麒麟、深度、普华等为代表的自主OS 形成了达梦、金仓、神舟通用为代表的国产数据库 形成了以金山、中标普华、永中等为代表的应用软件 初步具备从芯片设计到整机的自主可控能力 基于开源及自研软件形成了自主可控基础软件体系,应用支撑,自主软
2、件生态环境,基础运行时,软件栈的对比分析,国产软件与Wintel体系以及x86-Linux体系比较 自主可控基础体系采用Linux开源移植+自主研发相结合的方式 和Wintel体系以及X86-Linux体系比较,在软件各层次都有对应软件产品,自主软硬件能力瓶颈,对国产系统架构的支持不完 多核支持、指令特性支持,BIOS,标准C库,图形库,JAVA,中间件,数据库,办公软件,浏览器,桌面应用,服务器基础环境,Linpack,Web App,OS内核,Tomcat,X图形系统,编译工具,图像库,媒体库,GTK/GNOME,QT/KDE,APP,Flash,媒体播放,MPI,输入法,LAMP,APP
3、,桌面基础环境,服务器应用,底层系统软件,基础软件库,国产结构的优化支持薄弱 基础C库、图形图像处理,重点软件结构性优化工作不足 JAVA虚拟机、媒体播放器,大型应用软件适配调优环节缺失 浏览器、数据库、办公软件,亟待催生新产业链环境,B/S应用,C/S应用,GUI,Applet,应用类型,console,Visual ,Eclipse,Qtcreator,开发环境,Delphi,MFC,WTL,Qt,开发框架,Flex,SSH,MVC,C/C+,JAVA,JS,开发语言,SQL,VBA,Com/Activex,CORBA,Widget,控件集成,office 扩展,ODBC,JDBC,OCI
4、,数据接口,注册表/配置文件,线程/消息机制,进程间通信,操作系统,socket,CPU,RISC,CISC,SIMD,应用开发和应用环境的多样性为应用迁移带来巨大挑战,具体表现在应用类型、开发环境、开发框架、开发语言、集成控件、数据接口、操作系统与CPU依赖等方面的选择多样化,应用迁移瓶颈,由于Wintel长期垄断,工具、社区、资料丰富,开发人员、最终用户已习惯Wintel体系 Windows平台策略之一是鼓励通过插件机制扩展、集成复杂应用,其核心封闭,接口开放,导致用户难以摆脱平台制约 已有系统不得不采用大量封闭的商业框架 Windows SDK MFC,WTL,.NET,VBA Flas
5、h/Flex ActiveX控件、COM/DCOM组件,应用迁移瓶颈,面向国产平台的应用,CPU,X86处理器向国产自主多核处理器迁移 驱动、基础软件、性能优化等与此密切相关,Windows向Linux迁移 用户使用习惯,开发运行环境,控件与库支持各不相同,32位应用向64位应用迁移 变化带来的潜在正确性与性能问题,OS,APP,应用迁移瓶颈,应用迁移需跨越Windows到Linux、X86到国产CPU、32位到64位等三大鸿沟,自主软硬件生态发展的三种模式,三种模式对比,国产自主软硬件推进思考,重视程度前所未有,应用需求全面开花 应用规模迅速膨胀,推进速度超乎想象 利益集团竞相追逐,国产品牌
6、百花齐开 自主体系良机难求,发展之路任重道远,汇报内容,自主可控软硬件现状 申威开源软件应用情况 编译器 JAVA 其它 体会和思考,国际主流编译器现状,GCC的优势,绝大多数Linux平台标配的编译器,支持主流的编程语言 对新语言标准的支持具有很强的时效性 开源社区非常活跃,新技术新功能更新快 移植开发升级有保障,全世界都在做贡献 主要开源OS发行版的GCC工具链基本上都是跟着GCC最新版本走,GCC申威平台工作,功能 建立一整套SW64分支(configure、机器描述、架构处理等) 添加并完善申威指令集支持 添加并支持架构相关的语言扩展 解决架构无关代码与申威架构的兼容性问题 移植库及工
7、具链:基础C库(Glibc)、编译工具集、GDB等 有效支持各种语言在申威平台的编译运行支持(GO语言等) 性能 量身订做一系列申威指令集定制优化,如SIMD、访存、预取等 基础C库针对申威架构重新优化适配 自行开发了一整套高效数学库、多精度库 效果 GCC与申威平台良好适配 SPEC标准测试集在申威平台的性能明显提升,组队:2011年初抽调二进制翻译、编译器、操作系统相关精兵强将组建Java虚拟机研发团队 研发思路: 基于OpenJDK7,难点是HotSpot虚拟机移植 横向拓展:以Java虚拟机为核心逐步拓展支持外围工具,支持Java应用的本地编译、调试、调优等功能,完成与集成开发环境联调
8、 纵向优化:深耕细作,解决多线程优化及一系列偶发疑难问题,大幅提升Java虚拟机自身稳定性 从纵向和横向两个方面进行产品化充实完善,JAVA移植优化情况,功能:2012年通过JCK兼容性测试包,顺利与东方通等中间件适配,可支持桌面、服务端、Applet等各类Java应用 性能:2013年完成性能优化版(申威410),JAVA移植优化情况,SPECJVM2008测试结果,其他开源工作,Linux操作系统核心 各种设备驱动 Firefox浏览器 谷歌Chromium浏览器 开发平台:QT、ECLIPSE等,面临主要问题,移植工作量大 代码复杂、庞大 软件依赖项多 优化难度大 软件框架不熟悉 CPU架构不匹配 内嵌大量汇编代码,汇报内容,自主可控软硬件现状 申威开源软件应用情况 体会和思考,体会和思考,开源软件缓解了国内软件业人才匮乏 、技术积累不足等问题,提供了学习和再创新平台 自主软硬件能力不足以及应用迁移瓶颈等问题将长期存在 三种芯片模式是对软硬件生态发展的一种探索,体会和思考,发展自主技术体系,建立自主安全生态 拥抱开源软件,以开放的心态迎接挑战,谢谢!,