《张超-KylinOS_sdk&IDE分享v3 .pdf》由会员分享,可在线阅读,更多相关《张超-KylinOS_sdk&IDE分享v3 .pdf(29页珍藏版)》请在三个皮匠报告上搜索。
1、麒 麟 软 件 有 限 公 司麒 麟 软 件 有 限 公 司KylinOS SDK和和IDE技术分享技术分享2023.3.22打打 造造 中中 国国 操操 作作 系系 统统 核核 心心 力力 量量麒麟软件 张超麒 麟 软 件 有 限 公 司麒 麟 软 件 有 限 公 司目录目录1.Linux桌面操作系统上的开发现状2.主流操作系统开发体系现状3.麒麟的解决方案和规划KylinOS 研发SDK和IDE 背景和目的1.KylinOS SDK的设计思路和架构2.KylinOS SDK的技术现状3.KylinOS SDK的下一步计划KylinOS SDK1.KylinOS IDE研发目标和规划2.Ky
2、linOS IDE的设计思路和架构3.KylinOS IDE的技术现状4.KylinOS IDE的下一步计划KylinOS IDE麒 麟 软 件 有 限 公 司麒 麟 软 件 有 限 公 司Linux桌面操作系统上的开发现状桌面操作系统上的开发现状ARM64、AMD64、龙芯、申威、RISC-V硬件平台五花八门各发行版的基础库/组件选型和配置有较大差别Linux发行版各不一样 Qt、GTK、Python、Java等都自成体系开发语言/框架众多 一个功能的底层、服务层和高级接口都可自由使用基础功能库/服务完全开放系统显示、窗口管理和网络等都有多种实现方案基础功能实现方案层出不求麒 麟 软 件 有
3、 限 公 司麒 麟 软 件 有 限 公 司Linux桌面操作系统上的开发现状桌面操作系统上的开发现状同一功能的底层、服务层和上层高级接口都在被应用自由调用系统功能接口使用混乱托盘协议,Xembed 与 SNI显示协议,Xorg 与Wayland加密协议,SSL v3.0 与 TLS v1.3多种协议共存Linux桌面系统适配在众多不同架构、基于不同开发语言/框架编写的应用问题架构与系统环境差异开发系统和开发应用没有区别,应用开发经常错用底层接口对系统造成问题开发门槛高麒 麟 软 件 有 限 公 司麒 麟 软 件 有 限 公 司主流操作系统开发体系现状主流操作系统开发体系现状开发文档开发文档ID
4、E语言语言框架框架AndroidAndroid APIAndroid StudioJava/KotlinSDKmacOSApple开发者XCodeSwiftSwiftUIWindows MSDNVisual StudioC#.NET Framework谷歌谷歌跨平台跨平台 Flutter APIAndroid StudioDartFlutterQt跨平台跨平台Qt开发文档QtCreatorC+Qt成熟操作系统的必经之路:吸引更多开发者,共同建设软件生态吸引软件厂商:提高开发效率、减低开发成本、方便适配吸引开发者:降低上手难度、封装不必要的细节、开发更方便麒 麟 软 件 有 限 公 司麒 麟 软
5、 件 有 限 公 司KylinOS的解决方案和规划的解决方案和规划在开源技术研究场景,各种技术“百花齐放”这不是问题,但在产品化落地和生态推广上就是严重问题:1、对大量迁移和开发造成困难和高昂成本,为Linux大规模产业化推广带来困难。2、没有明确区分系统和应用软件接口能力,也对桌面系统自身功能开发造成阻碍。KylinOS:1、封装清晰易用的系统、安全管控和应用SDK2、提供适配操作系统开发环境的IDE3、联合应用厂商针对性解决应用迁移和开发问题麒 麟 软 件 有 限 公 司麒 麟 软 件 有 限 公 司KylinOS SDK的设计思路和架构的设计思路和架构一个一个产品产品二二类类场景场景三种
6、三种能力能力KylinSDKC/S应用应用B/S应用应用跨版本跨版本跨架构跨架构跨系统跨系统100%自主研发自主研发操作系统官方维护操作系统官方维护API工具工具指南指南规范规范四种四种方式方式5种编程语言原生接入种编程语言原生接入覆盖主流开发场景覆盖主流开发场景一次适配一次适配,多平台兼容,多平台兼容接口、文档、工具接口、文档、工具适合所有类型开发者适合所有类型开发者可控可控广泛广泛兼容兼容好用好用基石基石开源开源以以OpenKylin开源社区开源社区为平台为平台建设建设KylinOS软硬件生态兼容标准软硬件生态兼容标准OpenKylin开源社区开源社区多种硬件平台多种硬件平台麒 麟 软 件
7、 有 限 公 司麒 麟 软 件 有 限 公 司KylinOS其他其他Linux操作系统操作系统ARMx86。Native LibrariesSpecificationsConfig File.麒麟麒麟 SDK应用程序应用程序应用适配新解决方案应用适配新解决方案不同架构之间接口一致、行为一致不同操作系统版本间接口一致、行为一致通过对麒麟SDK向不同Linux发行版的移植适配,达到应用的跨系统兼容兼容一次适配,持续运行麒 麟 软 件 有 限 公 司麒 麟 软 件 有 限 公 司KylinOS SDK -架构图架构图麒 麟 软 件 有 限 公 司麒 麟 软 件 有 限 公 司 KylinOS SDK
8、的发展历程和版本更新的发展历程和版本更新2022年1月 Kylin SDK 1.0版本版本为开发者提供日志管理、配置读写、字符串处理、定时器等基础开发功能,共支持50+接口接口2022年7月 Kylin SDK 1.2版本版本引入系统安全模块安全模块,提供了应用管控、外设管控、登录管控、基础设置等能力,并结合内生安全提供了文件数据保护、进程安全防护、防火墙安全配置、应用执行控制等安全功能2022年4月 Kylin SDK 1.1版本版本1.统一Xorg与Wayland下各种窗口处理操作,如获取窗口信息、窗口置顶、窗口进程id、窗口当前的显示状态等2.提供与系统主题样式相符的自研控件自研控件10
9、+个个3.软、硬件基础信息获取以及系统运行时资源使用信息获取接口共接口共200+4.支持V10、V10SP1等发行版本2022年12月 Kylin SDK 2.0版本版本1.引入外设服务框架1.0,支持外设驱动的快速接入,支持Web应用调用2.支持多种开发语言原生调用,C、C+、Python、Java、JavaScript3.兼容OpenKylin、V10、V10SP1等发行版本4.支持飞腾、华为、龙芯、申威、兆芯等全国产全国产CPU架构5.划分基础开发、基础系统信息、应用支撑、系统安全四个层级共完成完成38个功能模块,控件数量个功能模块,控件数量39个,接口数量完成个,接口数量完成1400+
10、6.主体框架联动,适配多种主题样式麒 麟 软 件 有 限 公 司麒 麟 软 件 有 限 公 司KylinOS SDK的当前主要特色技术的当前主要特色技术外设驱动统一框架和接口ACBUI组件同一主题框架Xorg和Wayland显示兼容接口根 据 在 行 业 推 广 和 自 身 研 发 中 遇 到 的迫 切 问 题,针 对 性 设 计 研 发 相 关 模 块框 架 S D K,逐 步 完 善 系 统 整 体 S D K:麒 麟 软 件 有 限 公 司麒 麟 软 件 有 限 公 司外设驱动统一框架和接口外设驱动统一框架和接口在业务方与外设厂商均无代码修改的情况下,通过外设中间层方案,完成外设替换,适
11、配涉及读卡器、高拍仪、扫描仪、打印机、指纹仪等办公高频外设的适配工作,并形成了驱动开发规范文档。应用应用程序程序硬件硬件驱动驱动外设外设中间层中间层KT8000B驱动描述文件LX500D驱动描述文件ELCP-MSN55驱动描述文件728驱动描述文件外设中间层动态解析服务C/C+驱动操作接口JavaScript 驱动操作接口C/S 应用程序B/S 应用程序卡尔 KT8000B立思辰 LX500D易普森ELCP-MSN55神思 728操作操作系统系统KylinOS其他Linux操作系统CPUamd64 接口名称不一 参数列表不一 返回类型不一 以驱动功能角度提供接口 统一调用 动态接入解析 以业务
12、逻辑角度提供接口原生驱动接口原生驱动接口外设中间层外设中间层arm64龙芯.麒 麟 软 件 有 限 公 司麒 麟 软 件 有 限 公 司UI组件同一主题框架组件同一主题框架1.提供UI兼容,解决应用在不同的环境或系统版本下的UI显示兼容问题。2.控制全局主题的一个样式风格,实现整体UI视觉效果的一致性。3.简化应用UI开发流程,减少用户在应用的UI开发上消耗的精力,提高应用开发效率麒 麟 软 件 有 限 公 司麒 麟 软 件 有 限 公 司Xorg和和Wayland显示兼容接口显示兼容接口1.提供兼容接口,解决设备状态设置和信息获取,窗口操作和属性设置,窗口样式和显示效果控制在Xorg与Way
13、land上的差异等问题2.支持应用代码同源在Xorg与Wayland环境下的运行能力麒 麟 软 件 有 限 公 司麒 麟 软 件 有 限 公 司KylinOS SDK在开源社区的状态在开源社区的状态2022年6月 Open SDK 1.2 发布,服务于40余款自研应用和系统组件2022年11月 上传OpenSDK开发指南至openkylin文档平台,为社区开发者提供文档支持2022年10月Open SDK 2.0版本发布,支持X和Wayland两种显示协议,首次支持移动设备场景2023年2月 Open SDK上传至Debian社区麒 麟 软 件 有 限 公 司麒 麟 软 件 有 限 公 司Ky
14、linOS SDK的下一步计划的下一步计划KylinOS SDKUI交互框架输入法管理框架软硬件标准化规范.SDK v2.0 在完成SDK整体架构设计的基础上,重点在图形支撑、设备驱动、系统安全和基础系统模块覆盖实现SDK2023年年 v3.0:实现通用开发领域中几个垂直领域的覆盖支撑,垂直领域内开发者能够使用开源框架+SDK完整完成应用开发工作;2024年年 v4.0:实现完整系统SDK架构,覆盖麒麟系统所有功能模块;2025年年 v5.0:SDK作为KylinOS的底层支撑能力,完成与QT、Java、Flutter等开发框架深度对接,形成一套完整的开源Linux桌面系统SDK麒 麟 软 件
15、 有 限 公 司麒 麟 软 件 有 限 公 司UI交互框架交互框架1.桌面环境后端能力梳理整合归类;2.为桌面环境基础组件和应用提供不同能力的接口;3.后端统一管理,提供安全管控接口。麒 麟 软 件 有 限 公 司麒 麟 软 件 有 限 公 司输入法管理框架输入法管理框架 搜狗Linux拼音输入法架构麒麟输入法管理框架麒 麟 软 件 有 限 公 司麒 麟 软 件 有 限 公 司KylinOS IDE研发目标和规划研发目标和规划 集成开发环境集成开发环境 +管理工具管理工具1.为银河麒麟操作系统打造的通用集成开发和管理工具2.支持多种CPU架构:x86、飞腾、龙芯、申威等3.支持多种编程语言:C
16、、C+、Java、Python、Go、JavaScript等4.支持代码编辑、编译、调试、性能分析、软件打包、软件上架、远程开发、多人实时协同开发、公司软件工具集成管理等功能规划规划1.基于VSCode开源版本Code-OSS做修改,完成基本的语言支持功能、形成国产平台基础开源版本,满足KylinOS SDK对IDE需求;2.对VSCode整体框架做研究替代,逐步建立国内社区集成开发环境生态。麒 麟 软 件 有 限 公 司麒 麟 软 件 有 限 公 司KylinOS IDE的设计思路和架构的设计思路和架构麒 麟 软 件 有 限 公 司麒 麟 软 件 有 限 公 司n13个功能模块个功能模块n4
17、6个子模块13121110 2 3 1 4 5 6 7 8 9 麒 麟 软 件 有 限 公 司麒 麟 软 件 有 限 公 司KylinOS IDE的发展历程和版本更新的发展历程和版本更新2021年-2022年技术积累阶段,熟悉和调研VSCode技术路线,具备开发能力,形成一些插件,2022年底在openKylin社区形成初始版本Kylin-Code,集成在了openKylin软件商店2023年将面向银河麒麟桌面和服务器操作系统V10开发KylinOS IDE基础版,支持常用编程语言、支持远程开发、支持SDK辅助开发等功能麒 麟 软 件 有 限 公 司麒 麟 软 件 有 限 公 司KylinOS
18、 IDE的当前主要特色功能的当前主要特色功能当前KylinOS IDE特色功能:cmake语言支持 死锁检测 分布式编译KylinOS IDE正在开发的特色功能:远程开发 打包上架软件商店 SDK辅助开发等功能麒 麟 软 件 有 限 公 司麒 麟 软 件 有 限 公 司KylinOS IDE在开源社区的状态在开源社区的状态openKylin社区:主程序代码和数个插件代码模块模块模块名称模块名称功能功能能力能力-支持x86架构;支持openKylin操作系统主程序kylin-code开源。主程序。基于Code-OSS 1.68.0,提供基本图形和插件框架,支持openvsx插件商店。编译、项目创
19、建vscode-create-project自研。项目创建插件。支持C/C+项目进行项目的创建、管理配置、编译、运行调试和Deb/RPM打包。支持功能:提供项目管理统一入口;支持C/C+项目的图形化创建功能;支持C/C+项目图形化配置管理功能;支持C/C+项目图形化打包功能(DEB/RPM)。编译、项目创建dist-build自研。分布式编译插件。支持C/C+项目进行分布式构建,帮助开发人员提升大型项目的构建效率。支持功能:分布式构建图形化管理,支持编译机器增删改查;支持克隆本地编译环境到编译机,使编译机环境与本地环境一致,从而避免因编译环境不一致导致的其它问题;支持gcc、g+、clang编
20、译器进行分布式编译;只支持基于make,cmake,qmake的项目进行分布式构建。性能分析deadlock-detect自研。死锁检测插件。支持功能:C/C+多线程程序锁分析;可视化观察临界区进入次数、耗时、条件变量等待时长;线程退出未释放锁异常;可执行程序死锁检测;进程死锁检测;远程环境进程死锁检测。麒 麟 软 件 有 限 公 司麒 麟 软 件 有 限 公 司KylinOS IDE的下一步工作的下一步工作远程远程开发开发远程开发系统由客户端客户端和服务端服务端组成。客户端:客户端:两种远程机器访问模式两种远程机器访问模式1.浏览器模式:浏览器模式:使用浏览器访问服务端,做远程编辑、编译、调
21、试等开发工作2.本机集成开发环境模式:本机集成开发环境模式:在本机使用IDE插件访问服务端,做远程开发工作服务端:服务端:客户端使用ssh登录做用户登录认证,使用ssh隧道和服务端通信麒 麟 软 件 有 限 公 司麒 麟 软 件 有 限 公 司KylinOS IDE的下一步工作的下一步工作软件上架软件上架软件(编辑、编译、调试、测试、打包)提交申请评审软件商店(麒麟软件)软件上架返回修改(评审通过)(评审不通过)麒 麟 软 件 有 限 公 司麒 麟 软 件 有 限 公 司KylinOS IDE的下一步工作的下一步工作图形界面工具图形界面工具 +Kylin SDK1.设计1个类似QtCreato
22、r的图形界面工具2.支持Kylin SDK3.设计代码生成工具:自动生成C/C+、Java、Python等代码框架图形界面设计工具图形界面代码生成工具C/C+代码框架代码生成Kylin SDKJava代码框架Python代码框架+麒 麟 软 件 有 限 公 司麒 麟 软 件 有 限 公 司结语结语Linux桌面系统在各行业大规模落地还需要大量基础生态需要建设,KylinOS SDK和IDE还有许多工作要做,面临着大量挑战,欢迎厂商和爱好者加入我们开源社区共同推进Linux桌面生态完善。麒 麟 软 件 有 限 公 司麒 麟 软 件 有 限 公 司官方网站:服务热线:400-089-1870 打打 造造 中中 国国 操操 作作 系系 统统 核核 心心 力力 量量