999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

自主可控環(huán)境下的集成開(kāi)發(fā)環(huán)境

2022-06-16 03:29:48陳瑋彤黃天一丁呂繁
現(xiàn)代計(jì)算機(jī) 2022年7期
關(guān)鍵詞:調(diào)試環(huán)境功能

陳瑋彤,黃天一,丁呂繁,楊 曦

(1.四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610041;2.成都創(chuàng)騰軟件有限公司,成都 610095)

0 引言

自主可控是保障網(wǎng)絡(luò)安全、信息安全的前提,只有提高關(guān)鍵核心技術(shù)的創(chuàng)新能力,關(guān)鍵零部件、各類核心軟件實(shí)現(xiàn)安全可控,我國(guó)數(shù)字經(jīng)濟(jì)發(fā)展才能不受制于人。中興、華為斷供事件作為敲響中國(guó)軟硬件發(fā)展的“警鐘”,使得國(guó)家充分認(rèn)識(shí)到了自主可控的重要性。在各行業(yè)自主研發(fā)的大趨勢(shì)下,國(guó)產(chǎn)CPU、操作系統(tǒng)等技術(shù)已經(jīng)趨于成熟,國(guó)產(chǎn)CPU 公司包括龍芯、飛騰等,國(guó)產(chǎn)操作系統(tǒng)如銀河麒麟等,都在不斷發(fā)展以提高核心競(jìng)爭(zhēng)力,增強(qiáng)自主可控能力。

本論文研究的課題旨在實(shí)現(xiàn)一個(gè)支持國(guó)產(chǎn)嵌入式、桌面、服務(wù)器操作系統(tǒng)的自主可控的軟件集成開(kāi)發(fā)環(huán)境平臺(tái)。課題的需求包括滿足在飛騰計(jì)算機(jī)平臺(tái)、銀河麒麟操作系統(tǒng)上的運(yùn)行要求,從而解決國(guó)產(chǎn)處理器生態(tài)不成熟、操作系統(tǒng)對(duì)國(guó)產(chǎn)處理器支持薄弱等問(wèn)題,打破國(guó)外組織、機(jī)構(gòu)對(duì)操作系統(tǒng)配套軟件集成開(kāi)發(fā)環(huán)境的壟斷。

1 自主可控計(jì)算環(huán)境下的集成開(kāi)發(fā)環(huán)境統(tǒng)一架構(gòu)技術(shù)

本課題的集成開(kāi)發(fā)環(huán)境由滿足工業(yè)嵌入式應(yīng)用軟件開(kāi)發(fā)、滿足工業(yè)桌面操作系統(tǒng)應(yīng)用和滿足工業(yè)服務(wù)器操作系統(tǒng)應(yīng)用開(kāi)發(fā)的一組功能模塊和第三方軟件組成:

針對(duì)工業(yè)嵌入式軟件開(kāi)發(fā)的特點(diǎn),集成開(kāi)發(fā)環(huán)境集成了多種交叉工具鏈運(yùn)行環(huán)境、多種交叉工具鏈,實(shí)現(xiàn)了上位機(jī)與目標(biāo)機(jī)之間的通信代理,向開(kāi)發(fā)人員提供了項(xiàng)目管理、代碼管理、代碼編輯、交叉編譯器參數(shù)設(shè)置、編譯器調(diào)用、交叉調(diào)試參數(shù)設(shè)置、目標(biāo)機(jī)端程序調(diào)試、文件下載、二進(jìn)制固化等圖形化操作界面,以開(kāi)發(fā)面向多硬件平臺(tái)、工業(yè)嵌入式操作系統(tǒng)的靜態(tài)庫(kù)、動(dòng)態(tài)庫(kù)以及應(yīng)用程序。

針對(duì)工業(yè)桌面操作系統(tǒng)、工業(yè)服務(wù)器操作系統(tǒng)應(yīng)用開(kāi)發(fā)的特點(diǎn),集成開(kāi)發(fā)環(huán)境支持了多種編程語(yǔ)言,集成了多種第三方軟件開(kāi)發(fā)SDK、多種單元測(cè)試框架、性能分析工具、調(diào)試環(huán)境、運(yùn)行環(huán)境、部署環(huán)境以及過(guò)程控制平臺(tái)等,以便支持開(kāi)發(fā)人員進(jìn)行窗體應(yīng)用開(kāi)發(fā)、后臺(tái)應(yīng)用開(kāi)發(fā)、Web 應(yīng)用開(kāi)發(fā),開(kāi)展項(xiàng)目管理、需求分配、任務(wù)管理等活動(dòng)。

1.1 集成開(kāi)發(fā)環(huán)境組成

依據(jù)統(tǒng)一、開(kāi)放、靈活的架構(gòu)思路,課題設(shè)計(jì)了集成開(kāi)發(fā)環(huán)境。如圖1所示,組成集成開(kāi)發(fā)環(huán)境的軟件模塊和應(yīng)用遵循OSGi 模塊化規(guī)范、以Equinox平臺(tái)為運(yùn)行時(shí)環(huán)境、以Eclipse開(kāi)發(fā)工具為插件開(kāi)發(fā)環(huán)境。

圖1 集成開(kāi)發(fā)環(huán)境組成

1.2 Eclipse平臺(tái)簡(jiǎn)介

Eclipse 作為一種通用的工具平臺(tái),它將各個(gè)功能模塊連接起來(lái),提供標(biāo)準(zhǔn)的接口,接收各個(gè)模塊的請(qǐng)求并且控制程序的運(yùn)行。整個(gè)Eclipse 平臺(tái)建立在插件機(jī)制之上,除了一些平臺(tái)運(yùn)行時(shí)的內(nèi)核,Eclipse 平臺(tái)所有的功能都由插件實(shí)現(xiàn)。由于課題實(shí)現(xiàn)的工業(yè)嵌入式軟件開(kāi)發(fā)環(huán)境和工業(yè)服務(wù)器操作系統(tǒng)軟件開(kāi)發(fā)環(huán)境都是基于Eclipse 實(shí)現(xiàn)的,因此本小節(jié)主要介紹Eclipse的運(yùn)行機(jī)制和體系結(jié)構(gòu)。

1.2.1 工作機(jī)制

Eclipse 平臺(tái)的主要任務(wù)是為開(kāi)發(fā)者提供各種編程工具集成的機(jī)制和規(guī)則,這些機(jī)制通過(guò)應(yīng)用程序接口(API)、類和方法表現(xiàn)出來(lái)。本質(zhì)上,Eclipse 是一組松散綁定、但互相連接的代碼塊。搞清楚這些代碼塊之間的相互調(diào)用和連接方法,也就理解了Eclipse結(jié)構(gòu)的基本原理。Eclipse 平臺(tái)的結(jié)構(gòu)如圖2 所示,它的組件包括平臺(tái)運(yùn)行庫(kù)(platform runtime)、工作臺(tái)(workbench)、工作區(qū)(workspace)、團(tuán)隊(duì)組件(team)、調(diào)試(debug)和幫助(help)。

圖2 Eclispe體系結(jié)構(gòu)圖

1.2.2 Eclipse插件機(jī)制

模塊化的設(shè)計(jì)讓Eclipse 自身被分解為不同的功能塊,這些功能塊能更容易地被重用于創(chuàng)建超出原始開(kāi)發(fā)人員設(shè)想的應(yīng)用程序,就像不同版本的Eclipse 分別為特定的功能而設(shè)計(jì)。Eclipse 附帶了標(biāo)準(zhǔn)的插件集,包括Java 開(kāi)發(fā)工具JDK,還包括插件開(kāi)發(fā)環(huán)境PDE。

希望被其他插件擴(kuò)展的插件都會(huì)聲明一個(gè)擴(kuò)展點(diǎn),擴(kuò)展點(diǎn)機(jī)制使得Eclipse平臺(tái)架構(gòu)具有更好的靈活性,擴(kuò)展是Eclipse平臺(tái)上提供各種功能的來(lái)源,插件利用擴(kuò)展點(diǎn)向Eclipse新添功能??捎玫牟寮谑孪却_定后,進(jìn)行插件間信息交換,無(wú)需激活它們,平臺(tái)就可以為每個(gè)插件提供豐富的關(guān)于它運(yùn)行的上下文的相關(guān)信息。

1.3 SWT/JFace與圖形化操作環(huán)境

SWT具有本地JNI調(diào)用機(jī)制,使得程序具有很快的響應(yīng)速度;輕量級(jí)的API 使得開(kāi)發(fā)人員調(diào)用簡(jiǎn)單、易于上手,因此課題選用SWT/JFace圖形化界面開(kāi)發(fā)框架作為集成開(kāi)發(fā)環(huán)境的統(tǒng)一界面開(kāi)發(fā)框架。

JFace 用來(lái)在SWT庫(kù)頂部提供常見(jiàn)的應(yīng)用程序用戶界面功能。JFACE 采用MVC 的模式對(duì)SWT 進(jìn)行了封裝,增加了對(duì)復(fù)雜界面組件的支持,并且極大地豐富了SWT 的組件功能。它提供一些類和接口,以處理與使用SWT 來(lái)對(duì)動(dòng)態(tài)用戶界面編程相關(guān)聯(lián)的許多常見(jiàn)任務(wù)。

2 自主可控環(huán)境下的軟件集成開(kāi)發(fā)環(huán)境總體架構(gòu)

2.1 嵌入式軟件開(kāi)發(fā)環(huán)境

本論文實(shí)現(xiàn)的嵌入式軟件開(kāi)發(fā)環(huán)境由兩大部分構(gòu)成,分別為主機(jī)端支撐環(huán)境和圖形化操作系統(tǒng),主要結(jié)構(gòu)如圖3。其中主機(jī)端支撐環(huán)境為交叉工具鏈提供了運(yùn)行環(huán)境、為集成開(kāi)發(fā)環(huán)境提供了與目標(biāo)機(jī)端的通信代理、為集成開(kāi)發(fā)環(huán)境提供了交叉調(diào)試工具。圖形化操作環(huán)境則由一組與嵌入式軟件開(kāi)發(fā)密切相關(guān)的軟件模塊組成。

圖3 嵌入式軟件集成開(kāi)發(fā)環(huán)境

2.1.1 嵌入式應(yīng)用軟件調(diào)試模塊

提供基于匯編的調(diào)試和基于源代碼的調(diào)試;提供任務(wù)棧顯示功能;提供匯編斷點(diǎn)、源代碼斷點(diǎn)管理功能;提供調(diào)試會(huì)話管理功能;提供被調(diào)試的應(yīng)用軟件的內(nèi)存查看、修改功能;提供變量值查看、修改功能;提供表達(dá)式添加、運(yùn)算功能;提供單步、運(yùn)行、掛起功能。

2.1.2 二進(jìn)制文件下載&運(yùn)行模塊

提供將主機(jī)端的二進(jìn)制文件下載到目標(biāo)機(jī)端的內(nèi)存或文件系統(tǒng)中的功能;提供從主機(jī)端執(zhí)行目標(biāo)機(jī)端指定文件的功能;提供運(yùn)行參數(shù)設(shè)置功能。

2.1.3 源代碼編譯模塊

源代碼編譯模塊根據(jù)開(kāi)發(fā)人員在創(chuàng)建項(xiàng)目時(shí)所指定的編譯信息,調(diào)用主機(jī)端中相關(guān)的工具鏈對(duì)項(xiàng)目中的源代碼進(jìn)行預(yù)處理、編譯、匯編、鏈接生成可執(zhí)行文件或庫(kù)文件。在編譯過(guò)程中,系統(tǒng)會(huì)將工具鏈的輸出信息輸出到界面中進(jìn)行顯示,根據(jù)編譯錯(cuò)誤將錯(cuò)誤信息與源代碼進(jìn)行關(guān)聯(lián)并顯示錯(cuò)誤信息。

2.1.4 目標(biāo)機(jī)通信管理模塊

基于主機(jī)端與目標(biāo)機(jī)端的通信協(xié)議,建立主機(jī)端與目標(biāo)機(jī)端的通信通道,向上提供通信接口。

2.2 桌面和服務(wù)器系統(tǒng)的應(yīng)用開(kāi)發(fā)環(huán)境

銀河麒麟操作系統(tǒng)下桌面應(yīng)用和服務(wù)器應(yīng)用的開(kāi)發(fā)環(huán)境如圖4所示,其中部分軟件模塊的功能描述如下。

圖4 銀河麒麟應(yīng)用開(kāi)發(fā)環(huán)境

2.2.1 項(xiàng)目創(chuàng)建向?qū)?/p>

為開(kāi)發(fā)人員創(chuàng)建窗體應(yīng)用項(xiàng)目、Web 應(yīng)用項(xiàng)目、控制臺(tái)應(yīng)用項(xiàng)目等類型的項(xiàng)目提供引導(dǎo), 提供項(xiàng)目名稱輸入、項(xiàng)目類型選擇、項(xiàng)目模板選擇等操作界面。

2.2.2 項(xiàng)目管理

提供當(dāng)前工作空間中所有項(xiàng)目信息的展示功能;提供項(xiàng)目導(dǎo)入/導(dǎo)出功能;提供項(xiàng)目重命名功能;提供項(xiàng)目刪除功能;提供項(xiàng)目關(guān)閉/打開(kāi)功能等。

2.2.3 源代碼編譯

根據(jù)項(xiàng)目類型以及開(kāi)發(fā)人員在創(chuàng)建項(xiàng)目時(shí)所設(shè)置的信息,調(diào)用相應(yīng)的編譯器(如:Python編譯器、Java 編譯器、Qt編譯器)對(duì)源代碼進(jìn)行編譯。

2.2.4 目標(biāo)機(jī)管理

管理用于運(yùn)行、調(diào)試、安裝應(yīng)用的目標(biāo)機(jī),并向外提供通信接口供其它模塊調(diào)用。

3 實(shí)現(xiàn)集成開(kāi)發(fā)環(huán)境的關(guān)鍵技術(shù)

3.1 crosstool-NG制作交叉編譯工具鏈

在嵌入式軟件開(kāi)發(fā)過(guò)程中,一個(gè)十分重要的部分是交叉編譯工具的構(gòu)建,課題基于銀河麒麟操作系統(tǒng),使用crosstool-NG 工具實(shí)現(xiàn)了針對(duì)mips架構(gòu)嵌入式開(kāi)發(fā)板的交叉編譯工具鏈。

使用crosstool-NG 得到需要的交叉編譯工具鏈有以下幾個(gè)步驟:下載crosstool-NG 源碼、編譯crosstool-NG 源碼并安裝、配置需要的交叉工具鏈參數(shù)、編譯生成需要的交叉工具鏈。

其中,crosstool-NG 工具的源碼下載和安裝過(guò)程,與普通的Linux 環(huán)境下軟件的安裝過(guò)程類似,都需要下載源碼之后在本機(jī)進(jìn)行編譯安裝。

在使用安裝好的crosstool-NG 生成需要的交叉工具鏈之前,需要進(jìn)行的配置包括宿主機(jī)使用的CPU 架構(gòu)類型、目標(biāo)平臺(tái)的操作系統(tǒng)、使用的C 庫(kù)等。使用ct-ng list-samples 命令查看當(dāng)前已經(jīng)包含了哪些默認(rèn)的示例配置,部分結(jié)果如圖5所示。

圖5 使用ct-ng list-samples命令的部分結(jié)果

在所有的配置工作都完成之后,使用ct-ng build命令生成交叉工具鏈。

3.2 Qt桌面軟件開(kāi)發(fā)框架

我們使用流行的Qt 框架實(shí)現(xiàn)桌面軟件集成開(kāi)發(fā)環(huán)境,可以較為方便地進(jìn)行銀河麒麟操作系統(tǒng)下桌面軟件的開(kāi)發(fā),開(kāi)始界面如圖6所示。

圖6 使用Qt框架實(shí)現(xiàn)桌面軟件集成開(kāi)發(fā)環(huán)境的開(kāi)始界面

Qt 是一個(gè)跨平臺(tái)的C++開(kāi)發(fā)庫(kù),支持市面上大多數(shù)操作系統(tǒng),主要用于開(kāi)發(fā)有圖形化界面的程序,同時(shí)也可以用于命令行程序和服務(wù)器端程序的開(kāi)發(fā)。

Qt 開(kāi)發(fā)庫(kù)基于現(xiàn)有的一些工具鏈制作,其使用的編譯器、鏈接器、調(diào)試器都是現(xiàn)成的,使用的工具包括GNU 工具集、MinGW、CMake等,Qt 官方的開(kāi)發(fā)環(huán)境安裝包里也內(nèi)置了專門(mén)的開(kāi)發(fā)工具。

Qt的類庫(kù)目錄如圖7所示。

圖7 Qt的類庫(kù)目錄

4 結(jié)語(yǔ)

本課題開(kāi)發(fā)的集成開(kāi)發(fā)環(huán)境,基于OSGi 規(guī)范開(kāi)發(fā),運(yùn)行于Equinox 環(huán)境,包括工業(yè)嵌入式軟件開(kāi)發(fā)、工業(yè)桌面軟件開(kāi)發(fā)、工業(yè)服務(wù)器應(yīng)用開(kāi)發(fā)三個(gè)部分,集軟件設(shè)計(jì)、開(kāi)發(fā)、調(diào)試與集成部署為一體,將開(kāi)發(fā)平臺(tái)和運(yùn)行平臺(tái)有機(jī)地結(jié)合在一起。其中嵌入式軟件開(kāi)發(fā)部分基于插件機(jī)制開(kāi)發(fā),支持在銀河麒麟操作系統(tǒng)中開(kāi)發(fā)國(guó)產(chǎn)龍芯、飛騰處理器的應(yīng)用;桌面軟件開(kāi)發(fā)環(huán)境基于Qt 開(kāi)發(fā),支持基于C/C++、Python、Java 的控制臺(tái)應(yīng)用開(kāi)發(fā);服務(wù)器應(yīng)用開(kāi)發(fā)環(huán)境基于插件機(jī)制開(kāi)發(fā),支持Java、HTML、CSS、JavaScript 等語(yǔ)言的程序開(kāi)發(fā)。通過(guò)使用開(kāi)發(fā)集成環(huán)境,用戶可以高效地在銀河麒麟操作系統(tǒng)中進(jìn)行嵌入式軟件、桌面軟件、服務(wù)器軟件的開(kāi)發(fā),課題豐富了銀河麒麟操作系統(tǒng)的軟件生態(tài)。

猜你喜歡
調(diào)試環(huán)境功能
也談詩(shī)的“功能”
長(zhǎng)期鍛煉創(chuàng)造體內(nèi)抑癌環(huán)境
一種用于自主學(xué)習(xí)的虛擬仿真環(huán)境
孕期遠(yuǎn)離容易致畸的環(huán)境
環(huán)境
基于航拍無(wú)人機(jī)的設(shè)計(jì)與調(diào)試
電子制作(2018年12期)2018-08-01 00:47:44
FOCAS功能在機(jī)床調(diào)試中的開(kāi)發(fā)與應(yīng)用
關(guān)于非首都功能疏解的幾點(diǎn)思考
無(wú)線通信中頻線路窄帶臨界調(diào)試法及其應(yīng)用
電子制作(2017年19期)2017-02-02 07:08:38
調(diào)壓柜的調(diào)試與試運(yùn)行探討
主站蜘蛛池模板: 国产91丝袜在线观看| 农村乱人伦一区二区| 国产办公室秘书无码精品| 国产高清精品在线91| 日本AⅤ精品一区二区三区日| 先锋资源久久| 亚洲欧美另类色图| 国产69精品久久| 日韩在线网址| 久久精品波多野结衣| 97色伦色在线综合视频| 91精品在线视频观看| 欧美五月婷婷| 韩日免费小视频| 亚洲色大成网站www国产| 亚洲第一成年人网站| www.91中文字幕| 少妇露出福利视频| 免费人欧美成又黄又爽的视频| 亚洲一区二区约美女探花| 亚洲中文字幕国产av| 日韩欧美中文字幕在线精品| 色婷婷狠狠干| 97久久精品人人| 亚洲精品欧美日本中文字幕| 日本一区二区不卡视频| 国产成人一区在线播放| 国产免费久久精品99re不卡 | a级毛片一区二区免费视频| 亚洲三级成人| 尤物特级无码毛片免费| 亚洲人成影院在线观看| 久久国产精品麻豆系列| 日韩在线2020专区| 国产精品va免费视频| 欧洲av毛片| 亚洲欧美人成人让影院| 国产亚洲精品精品精品| 毛片久久网站小视频| 亚洲视频在线网| 一级爆乳无码av| 国产成熟女人性满足视频| 在线免费不卡视频| 久久人搡人人玩人妻精品 | 麻豆精品国产自产在线| 成人国内精品久久久久影院| 成色7777精品在线| 夜精品a一区二区三区| 香蕉在线视频网站| 国产黄色片在线看| 国产亚洲一区二区三区在线| 亚洲无码视频喷水| 波多野结衣一二三| 黄色a一级视频| 欧美a在线看| 国产成人一二三| 亚洲经典在线中文字幕| 国产91色在线| 亚洲一区色| 日韩精品无码免费一区二区三区| 成人伊人色一区二区三区| 911亚洲精品| 自偷自拍三级全三级视频| 99精品免费在线| 日本人妻丰满熟妇区| 2020精品极品国产色在线观看 | 亚洲最大综合网| 亚洲天堂在线免费| 网友自拍视频精品区| 亚洲中文字幕在线一区播放| 亚洲色欲色欲www网| aⅴ免费在线观看| 午夜啪啪福利| 91色在线观看| 亚洲手机在线| 99re在线观看视频| 成人综合网址| 国产午夜精品一区二区三区软件| 色爽网免费视频| 九九热在线视频| 久久免费看片| 欧美成人怡春院在线激情|