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