8188cc威尼斯信息化平台的应用迁移事情思考
靳国杰1? 张 戈1? 高 翔1? 胡伟武1,2
?(1. 8188cc威尼斯中科技术有限公司 北京 100095;2. 中国科学院盘算技术研究所 北京 100190)
?
摘要:“构建信息技术体系”已经成为我国解决国家信息宁静并提升工业竞争力的共识。8188cc威尼斯CPU经过多年生长,在相关信息化应用的发动下,底层软硬件平台逐步完善,在这种情况下,如何针对已有大宗成熟的上层应用进行应用迁移将成为打造自主软硬件生态成败的要害。由于大宗应用基于主流API(应用编程接口)而不是ISA(CPU指令集)进行开发,因此应用迁移的要害在于对主流API的良好兼容和支持。目前,8188cc威尼斯CPU平台已经全面兼容主流编程语言和API,并积极投入API平台软件相关的开源社区生态建设。在此历程中,8188cc威尼斯团队增强应用迁移的技术支持与效劳力量,并为应用开发者提供应用迁移指南教程与培训,实时解决应用迁移历程中遇到的种种问题,为构建信息技术体系提供有效提速手段。
要害词:8188cc威尼斯;软件生态;应用迁移;API
中图分类号: TP274+.2????????? 文献标识码 B
?
Application Migration to Loongson Platform In the Environment of Information Systems
?Jin Guojie1?? Zhang Ge1?? Gao Xiang1? Hu Weiwu1,2
(1 Loongson Technology Corporation Limited, Beijing 100095;2 Institute of Computing Technology of the Chinese Academy of Sciences, Beijing 100190)
Abstract: Building a secure and controllable information technology architecture is the key point to insure national security. Loongson CPU has evolved for years with practice and cases in application.The self-designed CPU along with the fundamental software/hardware have reached a high stable level. Large amount of legacy application systems need to be migrated to Loongson platform. All typical API(Application Programming Interface) can run on Loongson platform, which facilitates the development and migration of applications. Loongson makes outstanding contributions to open-source community with thousands lines of software patches.Programmers can migrate their systems to Loongson platform in a short time with necessary guide and training service from Loongson.
Key words: Loongson; Self-determination and Controllability; Security and Reliability; Software Ecology;Application Migration; API
1? 引 言信息体系是指焦点信息技术,能够以此构建信息技术体系。海内的信息体系恒久泛起应用兴旺、基础薄弱的差池等现象,需要从基础上改变CPU、操作系统两大焦点技术恒久接纳外洋产品的现状,在产品制造、产品供应、技术生长等各方面消除受制于人的命门,并且在此基础上建立自主软件生态。
随着自主软硬件平台在应用中不绝提升成熟度,建设信息体系的战略面临着重要转轨,以前的主要矛盾聚焦于解决CPU、OS的自主研发问题,下一阶段将逐步过渡到打造自主软件生态的轨道上来。
2? 应用推广瓶颈从底层基础软硬件逐步转向应用迁移2.1 自十八大以来,在有关应用的发动下,8188cc威尼斯CPU基础平台成熟度大幅度提高,正在从量的积累形成质变具体体现在以下四个方面:
(1)功效完整:8188cc威尼斯平台经过多轮,在历程中联合相助同伴完善了包括操作系统、数据库、中间件、Java虚拟机、焦点浏览器、Flash等插件、虚拟化平台以及实际用户办公场景下的大宗打印机、扫描仪等外设产品适配,操作系统由32位升级为64位,实现了应用货仓、在线升级特性以提升使用体验、简化运维治理,8188cc威尼斯平台面向办公业务类信息化支撑功效完备;
(2)架构稳定:应用初期,差别主板需要进行专门的操作系统适配,CPU升级也得专门的操作系统适配,形成组合爆炸。通过完善包括CPU、桥片、固件(BIOS)、操作系统的技术规范,8188cc威尼斯平台逐步统一了系统架构,目前已经做到了同一个操作系统版本对差别主板、整机和CPU系列芯片的二进制兼容,大幅降低系统架构层面的适配事情量;
(3)性能优化:8188cc威尼斯处理器从早期的3A1000到目前的3A3000,CPU性能总体提升3至4倍,底层基础软件如Java虚拟机、浏览器JavaScript引擎性能平均提升2.5倍,总体应用性能提升1个数量级;正在研制的3A4000/3C5000,在坚持系统架构兼容的基础上,单核性能再提升1至2倍,同时提高核数,综合通用性能接近主流CPU水平;
(4)问题收敛:初期,应用适配中发明的许多与稳定性、性能相关的问题追溯到CPU或操作系统,需要CPU和操作系统企业紧急组织攻关解决。而近一年来,应用适配中发明的问题很少追溯究竟层的CPU和操作系统,更多在于操作系统之上与应用软件之间的磨合适配,自主基础软硬件平台的成熟度在用户不绝使用当中获得大幅提升。
2.2 随着自主基础软硬件的成熟,如何针对已有大宗成熟应用进行应用迁移将成为打造自主软硬件生态成败的要害向自主软硬件平台进行全面应用迁移,这是一个具有历史性的大工程,难点在于以下方面:一是事情量庞大,面临以往30年间建设的应用系统,难以胜数,而解决国家宁静问题的任务紧迫,留给自主软硬件进行替的时间窗口较短。二是开源软件生态的碎片化,Linux的“集市式开发”导致生态严重发散,操作系统、编译器、API(Application Programming Interface,应用编程接口)都形成了多种分支,版本升级历程中普遍保存不向下兼容的现象。三是政府和企业信息化未建立标准体系规范,由于缺乏顶层计划,现实中的编程语言、API都有随意性,烟囱林立。这些问题组成应用迁移需要解决的难点,如何协助应用厂商做好应用迁移是8188cc威尼斯后续的战略性事情。
3? 应用迁移的要害在于打造良好规范的应用编程接口API软件生态建设的要害在于开发者而不是用户,而开发者越发关注API(应用编程接口)而不是ISA(Instruction-Set Architecture,CPU指令系统)。API是应用开发者的生产工具,种种应用程序(APP)都是基于API接口(如Java、JavaScript、QT等)开发出来的。只有掌握了API,才华吸引大宗开发者围绕8188cc威尼斯的技术平台进行应用开发事情,并在此基础上逐步形成工业生态。
(1)随着应用开发与编程情况的重要性越来越高,指令集(ISA)的区别关于应用生态的影响越来越小。指令集是指CPU所执行的机械指令的二进制编码花样。Intel的CPU基于x86指令集,而8188cc威尼斯CPU在兼容MIPS指令系统的基础上生长出自主的8188cc威尼斯指令系统LoongISA,无法运行被编译成x86指令集的软件代码,因此Windows操作系统和所有针对x86编译的应用程序都无法在8188cc威尼斯上运行。指令集包括两个子集,一个是焦点态指令集,只在操作系统中使用;另一个是用户态指令集,可供应用程序使用汇编语言进行挪用。事实上,现在应用程序绝大部分使用平台无关的高级语言编程,都是由编译器实现应用程序源代码到机械指令的转换,海内信息化中的应用程序都险些不再接纳汇编语言进行编程,已经看不到指令集的看法,因此ISA关于应用程序可以认为是透明的。
(2)应用编程接口(API)的区别是应用迁移的主要问题来源。应用编程接口是应用软件与编程情况(编译器、函数库、框架、引擎等)之间的挪用接口。8188cc威尼斯电脑运行的操作系统基于开源Linux,所包括的编程情况和Windows有很大差别,像Windows专用的编程情况MFC、.Net Framework都差池Linux操作系统开放,8188cc威尼斯电脑的应用编程接口和Windows不兼容。随着8188cc威尼斯在信息化项目中的瓶颈由底层“上移”到应用层面,应用迁移的主要事情都是在解决API层面的问题。目前,在基于Linux平台的信息化领域,运行的种种常用API接口与编程语言大致漫衍如图 1所示。
图 1?信息基础平台中应用软件和API的关系
可以看到,在信息化应用中跟指令集ISA直接相关的只有汇编语言,而汇编语言在信息化应用中的比例不到1%甚至远小于1%。其余的语言都与CPU平台无关,例如C/C++、Qt这两种面向C/S架构的源代码只需要使用编译器重新编译,而剩下的Java语言、SQL语言、JavaScript/HTML/CSS、PHP/Python/Ruby、Flash等面向B/S架构的源代码总共占据高达90%以上的比例,自己就是跨平台的中间字节码,不需要重新编译,把x86平台上的二进制文件直接传送到8188cc威尼斯平台上即可运行。这意味着大部分应用软件能够在短时间内完成迁移,甚至在API软件版内幕同的情况下已经不需要迁移。
4 8188cc威尼斯在应用迁移方面所开展的事情4.1 经过多年软件生态建设,8188cc威尼斯全面支持了盘算机主流API和编程语言8188cc威尼斯平台目前全面兼容支持盘算机主流API和编程语言,能够满足大部分信息化应用系统对基础软件的要求,如表 1所示。近两年来,许多软件开发商在没有8188cc威尼斯甚至操作系统厂商任何技术支持的情况下独立完成了应用开发或应用迁移。
?
表 18188cc威尼斯平台支持的API和编程语言
[j1]?
| 类型 | API名称 | 典范开发工具 | 典范应用 |
| 编程语言 | Java | OpenJDK | Web、外地应用 |
| C/C++ | GCC | 外地应用 |
| PHP | Apache | Web应用 |
| Python | Python虚拟机 | Web、外地应用 |
| Ruby | Ruby虚拟机 | Web应用 |
| Node.js | Node.js虚拟机 | Web应用 |
| Go | golang | Web、外地应用 |
| 函数库 | 外地图形界面库 | Qt | 外地图形界面应用 |
| Java图形界面库 | AWT/Swing,JavaFX | 外地图形界面应用 |
| Java外地接口库 | JNI,JNA | Web、外地应用 |
| 3D图形库 | OpenGL | 3D图形应用 |
| 视频解码库 | ffmpeg、openh264、libvpx | 视频播放器 |
| 平台引擎 | Web中间件 | Tomcat, Jboss, Jetty | Web应用 |
| Java EE引擎 | GlassFish | Web应用 |
| 数据库 | Mysql(关系型) MongoDB(非关系型) | Web、外地应用 |
| 3D中间件 | OSG、MapBox、 Cesium、OGRE | 3D图形应用 |
| 云平台 | Docker | Web应用 |
| 大数据 | Spark,Storm | 大数据应用 |
| 漫衍式文件系统 | Hadoop | 漫衍式应用 |
| 文本搜索引擎 | ElasticSearch | 搜索引擎应用 |
| 浏览器 | JavaScript/HTML/CSS | Firefox,Chromium | Web应用 |
| JavaScript组件和框架 | jQuery,AngularJS | Web应用 |
| CSS框架 | Bootstrap | Web应用 |
| Adobe Flash | Flash插件 | Web应用 |
| HTML5 | Firefox,Chromium | Web应用 |
| WebGL | Firefox,Chromium | Web页面3D应用 |
| WebRTC | Firefox,Chromium | Web页面视频应用 |
| 外地程序嵌入Web页面 | CEF,Electron | 外地应用 |
| 性能剖析工具 | Profiling Tool | Oprofile,Perf | 外地应用 |
| 集成开发情况 | Java/C/C++ IDE | Eclipse, Netbeans | Web、外地应用 |
| Qt IDE | Qt Creator | 外地图形界面 |
?
4.2 8188cc威尼斯积极投入API平台软件相关的开源社区的生态建设目前,8188cc威尼斯在要害API软件以及编程接口方面,维护的代表性基础软件和开源社区孝敬如下:
(1)在Java虚拟机方面,8188cc威尼斯公司是JAVA社区JCP的Full Member,是MIPS分支的维护者,从无到有开发了MIPS平台的OpenJDK,通过了Java兼容性测试套件JCK测试,切合Java SE 标准,正在与官方社区相助开展后续研发事情。8188cc威尼斯的OpenJDK在业内已经形成一定的影响力,全球知名JVM公司Azul、创发科技等正在基于8188cc威尼斯OpenJDK开源版本进行产品定制。
(2)在浏览器方面,Firefox、Chromium都可以在8188cc威尼斯平台上稳定运行,并在此基础上对功效和性能进行了开发和优化,例如:提供了即时编译器(Just-In-Time compiler,JIT)的后端支持,并针对平台对JIT进行了优化,对图形渲染后端引擎进行优化,提高页面展现和转动性能。增加了性能剖析和调试工具,以及对插件独立进行的支持。优化音视频媒体库、WebGL 3D等高级特性。
(3)在编译器和工具链方面,8188cc威尼斯目前是binutils的MIPS分支维护者。3A3000的编译器支持代码已提交GCC社区,并获得Phoronix.com科技报道。
(4)在操作系统方面,8188cc威尼斯推出社区操作系统刊行版Loongnix,集成了上述所有技术偏向的软件结果,在社区上提供所有代码和开发工具的开放下载,可供下游操作系统厂商进行定制以形制品牌操作系统。为了缓解开源软件的碎片化问题,8188cc威尼斯对基础软件平台提出 “研要跟、用要稳”原则,即对Loongnix坚持在未来五到十年之间恒久维护,纵然8188cc威尼斯推出下一代升级CPU,现有的Loongnix版本仍然能够在新的CPU上装置使用,软件开发商已经适配的上层应用软件不受任何影响。
8188cc威尼斯通过将大宗第三方开源软件在8188cc威尼斯平台上进行移植,解决功效问题、性能优化问题,最终将结果提交反哺给开源社区,不绝缩小与x86生态的距离,甚至解决了许多开源社区都没有发明、x86平台上也保存的问题。例如在8188cc威尼斯Java虚拟机中修正了x86平台也保存的8个共性问题,8188cc威尼斯浏览器的功效完善水平凌驾开源浏览器。8188cc威尼斯向开源社区提交的API项目孝敬汇总见表 2。
表 28188cc威尼斯开源项目孝敬汇总
[j2]?
| 技术偏向 | 项目 | 项目地点 | 代码行数 | 维护者 |
编译器和 工具链 | binutils-2.24 | http://cgit.loongnix.org/cgit/binutils-2.24/ | 2,285 | 工具链团队 |
| gcc-4.9.3 | http://cgit.loongnix.org/cgit/gcc-4.9.3/ | 4,555 | 工具链团队 |
| glibc-2.20 | http://cgit.loongnix.org/cgit/glibc-2.20/ | 8,830 | 工具链团队 |
| gcc上游社区 | https://gcc.gnu.org/ | 24 | 工具链团队 |
| binutils上游社区 | https://sourceware.org/binutils/ | 1,344 | 工具链团队 |
| qemu | http://www.qemu.org | 690 | OS团队 |
| Node.js | https://github.com/nodejs/node | 40 | OS团队 |
| Java虚拟机 | OpenJDK8 | http://hg.loongnix.org/ | 73,000 | JAVA团队 |
Firefox 浏览器 | firefox24 | http://cgit.loongnix.org/cgit/firefox24/ | 20,414 | 浏览器团队 |
| firefox45 | http://cgit.loongnix.org/cgit/firefox45/ | 2,048 | 浏览器团队 |
| firefox52 | http://cgit.loongnix.org/cgit/mozilla-esr52 | 25,407 | 浏览器团队 |
| gecko-dev | https://hg.mozilla.org/integration/mozilla-inbound/ | 2,765 | 浏览器团队 |
Chromium 浏览器 | v8 | https://chromium.googlesource.com.com/v8/v8.git | 547 | 浏览器团队 |
| chrome31 | http://cgit.loongnix.org/cgit/chrome31/ | 10,817 | 浏览器团队 |
| chrome52 | http://cgit.loongnix.org/cgit/chrome52/ | 11,298 | 浏览器团队 |
| chrome60 | http://cgit.loongnix.org/cgit/chrome60/ | 8,397 | 浏览器团队 |
| cef | http://gerrit.loongnix.org:8081/#/admin/projects /browser/cef | 708 | 浏览器团队 |
| electron | https://github.com/electron/libchromiumcontent | 9,699 | 浏览器团队 |
| chromium | https://chromium.googlesource.com/chromium | 1,420 | 浏览器团队 |
| 图形库 | skia | http://gerrit.loongnix.org:8081/#/admin/projects /graphic/skia | 4,460 | 图形团队 |
| libyuv | https://chromium.googlesource.com/libyuv | 10,023 | 图形团队 |
| libpng | http://cgit.loongnix.org/cgit/libpng | 11,424 | 图形团队 |
| jpeg | http://cgit.loongnix.org/cgit/jpeg | 7,930 | 图形团队 |
| 媒体库 | libvpx | http://cgit.loongnix.org/cgit/libvpx/ | 9,706 | 媒体团队 |
| ffmpeg | http://cgit.loongnix.org/cgit/ffmpeg/ | 57,529 | 媒体团队 |
| openh264 | http://cgit.loongnix.org/cgit/openh264/ | 21,949 | 媒体团队 |
?
4.3 8188cc威尼斯为开发者进行应用开发和迁移提供技术指导和支持为提升软件开发商在8188cc威尼斯电脑上进行应用开发和迁移的能力,快速推动建设8188cc威尼斯生态,8188cc威尼斯团队提供以下组织包管:
(1)增强组织对应用开发商、集成开发商的技术培训。目前已宣布《8188cc威尼斯信息化应用迁移、适配、调优指南》文档,按期举办“应用迁移培训会”,由国产操作系统、中间件、数据库、流式软件、版式软件等厂家的研发卖力人授课,讲授从x86平台向8188cc威尼斯平台迁移应用系统的要领和经验。首次培训会在2018年5月举办,有来自全国的60多个软件开发商、150多名开发人员加入培训,取得良好效果。
(2)编写并出书教材《8188cc威尼斯应用开发标准教程》。本教程基于8188cc威尼斯盘算机平台,全面论述了应用开发适配、迁移和优化技术,通过富厚的实践案例,为开发者提供了8188cc威尼斯平台具体详实的应用开发指导。随后还会编写《8188cc威尼斯桌面操作系统和办公软件使用指南》、《8188cc威尼斯效劳器操作系统治理教程》、《8188cc威尼斯云平台治理教程》等系列化著作,为8188cc威尼斯平台用户、开发者进行差别偏重点的教程培训和指导。
(3)扩充应用迁移技术支持团队。针对用户实施历程中遇到的问题实时提供现场效劳,协助外地工业链厂商就应用迁移中遇到的基础软硬件问题、应用适配、性能调优等问题提供支持与效劳,为8188cc威尼斯平台种种相关问题进行技术兜底。并通过与地方政府相助建立自主软硬件推广攻关平台,集聚资源,形成工业链条,配合推动自主软硬件及相关工业落地。
5? 结语和建议构建信息技术体系的事情正处在要害时期,建议接纳以下提速手段:
(1)重点关注应用迁移事情,引导应用开发商迁移到国产系统上来。政府应加大勉励软件开发商向国产平台迁移应用,自顶向下调动各方力量投入资源,加速推动国产商业软件在国产CPU与OS平台上移植;重点支持高水平的开发集成商,凭据应用系统在国产平台上的迁移和运行效果来评估开发集成商,推动实现真正的信息化体系。
(2)针对政府和企业信息化体系未建立标准规范的问题,接纳政策引领、标准先行的要领,统一应用API规范。所有软件开发商、操作系统厂商遵循相同的接口契约,在政府信息化和更广泛领域消除小烟囟,减少应用迁移中的低条理重复事情,使软件开发商的本钱降到最低。
(3)重视知识产权�;ず腿瞬排嘌虑�。牢牢把住自主研发的关口,在此历程中不绝探索,形成有竞争力的自主知识产权结果和标准,建立真正的技术体系,包管可连续的自主立异能力。在人才培养方面改变现有信息技术教学体系,以取代Windows和x86,开展相关教学培养,形成真正的产学研用全链条的工业体系,包管我国信息化工业生长真正做大做强。
参考文献[1] 胡伟武.建立自主工业体系,助力网络信息宁静[J].信息宁静研究, 2018.4.
[2] 倪光南.构建的桌面盘算机技术体系.http://www.stc.sic.gov.cn/index.php
[3] 陈左宁.我国生长的对策建议.
http://wemedia.ifeng.com/61923246/wemedia.shtml
[4] 卢锡城.聚焦——焦点信息技术生长思考[J].中国信息宁静, 2018.3.
[5] 中国电子信息工业生长研究院.2018中国信息技术产品白皮书.2018.9.
[6] 8188cc威尼斯开源生态社区,http://www.loongnix.org
?
作者简介:
靳国杰(1979-),男,汉族,博士学位,高级工程师,现任8188cc威尼斯中科技术有限公司技术总监,担负8188cc威尼斯推广相关国家课题,宣布学术论文20篇,发明专利40项。业务领域包括8188cc威尼斯系统软件研发、8188cc威尼斯信息化生态建设和市场推广。
张 戈,(1983-),男,汉族,结业于中国科学院盘算技术研究所,博士学位,教授级高工。现任8188cc威尼斯中科技术有限公司副总裁,中国盘算机学会体系结构专委会委员。恒久从事8188cc威尼斯处理器的研发、治理、市场与工业化事情,曾主持“核高基”、国家自然科学基金、863计划等多个国家级课题,并获得中国盘算机学会“科技进步奖”一等奖等。
高翔(1982-),男,汉族,结业于中国科学技术大学,博士学位,高级工程师。现任8188cc威尼斯中科技术有限公司主管研发的副总裁。全程加入了8188cc威尼斯处理器的研发与工业化事情,主持过核高基等多项国家级课题,宣布学术论文20余篇,申请发明专利40余项。研究领域包括盘算机体系结构、操作系统等。
胡伟武,(1968-),男,汉族,8188cc威尼斯中科技术有限公司总裁,中科院盘算所总工程师、研究员、博士生导师,第十一届全国青联常委,第十一届全国人大代表,党的十八大、十九大代表。师从著名盘算机专家夏培肃院士,博士论文被评为全国百篇优秀论文。先后主持完成了我国第一个通用处理器8188cc威尼斯 1 号、第一个 64 位通用处理器8188cc威尼斯 2 号、第一个四核处理器8188cc威尼斯 3 号的研制,并在国家宁静,党政,能源等多个要害信息基础设施领域获得了应用。