《張超-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開源。主程序?;贑ode-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的下一步工作的下一步工作遠程遠程開發開發遠程開發系統由客戶端客戶端和服務端服務端組成??蛻舳耍嚎蛻舳耍簝煞N遠程機器訪問模式兩種遠程機器訪問模式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 打打 造造 中中 國國 操操 作作 系系 統統 核核 心心 力力 量量