九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
QNX入門-簡介、開源代碼、框架文檔

一直想介紹下QNX,因為其框架對其他微內(nèi)核有很多可借鑒的地方,但是其是一個商業(yè)系統(tǒng),不開源,只能看到部分的軟件接口,在其上進行開發(fā)。我們的老一套:代碼下載、編譯、運行是搞不了了,真是讓人頭大??!

一些重要的東西先放這里:
1)QNX的開源代碼:https://github.com/vocho/openqnx
2)QNX的框架文檔
http://myqnx.com/developers/docs/6.3.0SP3/momentics/bookset.html

1. 簡介



1.1 歷史


1980年,加拿大滑鐵盧大學的學生戈登貝爾(Gordon Bell)和丹道奇(Dan Dodge)都上了實時操作系統(tǒng)設計的課程,課程要求學生構建一個基本的實時微內(nèi)核,并成立了 Quantum Software Systems 公司。

1982年,戈登貝爾(Gordon Bell)和丹道奇(Dan Dodge)根據(jù)大學時代的一些設想寫出了一個能在 IBM PC 上運行的名叫 QUNIX(Quick UNIX)的系統(tǒng),直到 AT&T 發(fā)律師函過來才把名字改成 QNX。

2004年,來自美國的音響設備制造商哈曼(Harman)國際工業(yè)集團以 1.38 億美元的現(xiàn)金收購了 QNX。

2010年,黑莓手機(BlackBerry)制造商 RIM(Research In Motion Ltd.)為獲取其車載無線連接技術,收購哈曼集團旗下的 QNX 軟件公司,QNX 因此重返加拿大。

QNX 主要開發(fā)汽車,通訊設備所使用的操作系統(tǒng),哈曼國際的主業(yè)則是汽車音像和娛樂設備。BlackBerry 的并購交易使得 RIM、QNX 和哈曼工業(yè)在智能手機車載音頻娛樂系統(tǒng)之間找到合作空間。
------------

開源小插曲:
參考本文第5節(jié):開源代碼中介紹,在07年的時候,還沒被黑莓收購前更改了下商業(yè)模式,開源了內(nèi)核代碼,但是應用代碼沒放開。

1.2 應用場景


QNX 具有安全可靠、可信的特點,因此通常應用于對安全性要求極高的領域,例如汽車、航空、核電站、工業(yè)自動化等領域。

  • carOS:QNX 一直是汽車領域最大的操作系統(tǒng)
  • robotOS:工業(yè)醫(yī)療領域,例如手術機器人達芬奇
  • weaponOS:例如洛克希德·馬丁的武器
  • criticalTaskOS:核電站、宇航領域


QNX Neutrino實時操作系統(tǒng),QNX Momentics工具套件和QNX Aviage中間件系列基于組件的架構共同構成業(yè)界可靠性和延展性最強的架構,幫助建立高性能的嵌入式系統(tǒng)。包括思科、戴姆勒、通用電氣、洛克希德·馬丁和西門子在內(nèi)的眾多全球知名技術領先企業(yè),都將QNX技術應用在網(wǎng)絡路由器、車載遠程信息處理和信息娛樂系統(tǒng)、工業(yè)控制系統(tǒng)、醫(yī)療設備、安全防衛(wèi)系統(tǒng)和其他任務關鍵性和生命關鍵型應用中。

上面提到工具套件,就知道界面化的東西,核心代碼是看不到的,我們學習到的源碼內(nèi)容和知識也有限了。

2. 特點


QNX是一個分布式可擴展、遵從POSIX規(guī)范的類Unix硬實時微內(nèi)核操作系統(tǒng)。

QNX為微內(nèi)核的架構,微內(nèi)核只提供進程調(diào)度、進程間通信、底層網(wǎng)絡通信和中斷處理四種服務。驅(qū)動程序、協(xié)議棧、文件系統(tǒng)、應用程序等都在微內(nèi)核之外內(nèi)存受保護的安全的用戶空間內(nèi)運行,組件之間能避免相互影響,在遇到故障時也能重啟。

QNX是商業(yè)類Unix實時操作系統(tǒng),主要針對嵌入式系統(tǒng)市場。它提供用戶可控制的、優(yōu)先級驅(qū)動的、急者優(yōu)先搶占的調(diào)度方式。QNX 內(nèi)核自身開銷小、上下文切換快,在同樣的硬件條件下給實時應用留下更大的余地,因而它在實時控制、通信、多媒體信息處理等對時間敏感的應用領域大有用武之地。

QNX 同時也是一個可嵌入的操作系統(tǒng)。它由微內(nèi)核和一組共操作的進程構成,具有高度可伸縮性,可靈活的剪裁。最小配置只占用幾十 KB 內(nèi)存。因此,它可以廣泛地嵌入到智能機器、智能儀器儀表、通信設備等應用中去。

2.1 POSIX

QNX是一種商用的遵從POSIX(可移植操作系統(tǒng)接口, Portable Operating System Interface,縮寫為POSIX, 是IEEE為要在各種UNIX操作系統(tǒng)上運行軟件,而定義API的一系列互相關聯(lián)的標準的總稱)規(guī)范的類Unix實時操作系統(tǒng),目標市場主要是面向嵌入式系統(tǒng)。

2.2 微內(nèi)核


QNX采用微內(nèi)核架構,操作系統(tǒng)中的多數(shù)功能是以許多小型的task來執(zhí)行,它們被稱為server。這樣的架構使得用戶和開發(fā)者可以關閉不需要的功能,而不需要改變操作系統(tǒng)本身。QNX是一個微內(nèi)核實時操作系統(tǒng),其核心僅提供4種服務:進程調(diào)度、進程間通信、底層網(wǎng)絡通信和中斷處理,其進程在獨立的地址空間運行。所有其它OS服務,都實現(xiàn)為協(xié)作的用戶進程,因此QNX核心非常小巧而且運行速度極快。QNX的微內(nèi)核獨立自處于一個被保護的地址空間,驅(qū)動程序、網(wǎng)絡協(xié)議和應用程序處于程序空間中。

微內(nèi)核架構的優(yōu)點:

(1). 驅(qū)動程序、網(wǎng)絡協(xié)議、文件系統(tǒng)等操作系統(tǒng)模塊和內(nèi)核相互獨立,任何模塊的故障都不會導致內(nèi)核的崩潰;

(2). 驅(qū)動程序、網(wǎng)絡協(xié)議、文件系統(tǒng)和應用程序都處于程序空間,都調(diào)用相同的內(nèi)核API,開發(fā)與調(diào)試和應用程序沒有區(qū)別;

(3). 操作系統(tǒng)功能模塊可以根據(jù)需要動態(tài)地加載或卸載,不需要編譯內(nèi)核。在高可靠性要求的情況下,可以編寫監(jiān)視模塊,對可靠性要求高的模塊進行監(jiān)視,必要的時候重新啟動或重新加載而無須重啟系統(tǒng)。高可靠性的內(nèi)核結(jié)構使QNX具備了高可靠性嵌入式操作系統(tǒng)的本質(zhì)特征。

QNX Neutrino操作系統(tǒng)的微內(nèi)核,管理一組協(xié)作的進程,如下圖所示,這種結(jié)構不是一種層級的組織,更像是一個團隊,因為不同的進程可以通過內(nèi)核來協(xié)調(diào)交互。

QNX Neutrino充當一個“軟件總線”的角色,可以在需要的時候動態(tài)的插入和移除系統(tǒng)模塊。

   
華為鴻蒙的分布式軟總線是不是從這里找到的靈感?

更多微內(nèi)核介紹參考之前的文章:seL4微內(nèi)核入門-微內(nèi)核介紹


2.3 IPC


進程間通信 (IPC) 是將應用程序設計為一組協(xié)作進程的關鍵。

QNX 是同類中第一個使用消息傳遞作為IPC 基本手段的商業(yè)操作系統(tǒng)。操作系統(tǒng)的強大功能、簡單性和優(yōu)雅性在很大程度上歸功于在整個系統(tǒng)中完全集成了消息傳遞方法。

在 QNX Neutrino 中,消息是從一個進程傳遞到另一個進程的字節(jié)包。操作系統(tǒng)對消息的內(nèi)容沒有任何特殊意義——消息中的數(shù)據(jù)對消息的發(fā)送者和接收者都有意義,但對其他人沒有意義。

消息傳遞不僅允許進程相互傳遞數(shù)據(jù),而且還提供了一種同步多個進程執(zhí)行的方法。當它們發(fā)送、接收和回復消息時,進程會經(jīng)歷各種“狀態(tài)變化”,這些變化會影響它們運行的時間和時間。了解它們的狀態(tài)和優(yōu)先級后,微內(nèi)核可以盡可能高效地調(diào)度所有進程,以充分利用可用的 CPU 資源。這種單一的、一致的方法——消息傳遞——因此在整個系統(tǒng)中不斷地運行。

實時應用程序和其他關鍵任務應用程序通常需要可靠的IPC 形式,因為構成此類應用程序的過程是如此緊密相關。QNX Neutrino 的消息傳遞設計強加的紀律有助于為應用程序帶來秩序和更高的可靠性。

2.4 內(nèi)存保護


QNX Neutrino利用MMU,在受保護的環(huán)境中實現(xiàn)了POSIX的線程模型。

針對內(nèi)存保護,有以下幾種情況:

  1. 不提供內(nèi)存保護:所有程序位于同一個地址空間,應用程序可以訪問所有空間,效率較高,但是程序指針錯誤可能造成內(nèi)核崩潰
  2.  單內(nèi)核OS提供部分內(nèi)存保護:用戶層系統(tǒng)層進行了隔離,內(nèi)核和各種驅(qū)動、協(xié)議棧在同一個地址空間,應用程序在單獨空間。內(nèi)核模塊處于一個保護空間,效率較高,應用程序無法訪問,系統(tǒng)的穩(wěn)定性也得到提高。由于內(nèi)核模塊處于保護空間,調(diào)試會比較困難。比如Linux系統(tǒng)。
  3. 微內(nèi)核OS提供完整的內(nèi)存保護:內(nèi)核處于一個被保護的地址空間,驅(qū)動程序、網(wǎng)絡協(xié)議及應用程序等處于程序空間中。

          QNX就是微內(nèi)核,使用的上面c方案,如上圖。內(nèi)存保護其實就是微內(nèi)核中的系統(tǒng)服務之間:地址空間隔離

2.5 分布式網(wǎng)絡


網(wǎng)絡中任何機器上的任何線程都可以直接使用任何其他機器上的任何資源。從應用程序的角度來看,本地資源和遠程資源之間沒有區(qū)別——不需要在應用程序中構建特殊設施來允許它們使用遠程資源。

用戶可以訪問網(wǎng)絡上任何地方的文件,利用任何外圍設備,并在網(wǎng)絡上的任何機器上運行應用程序(只要他們有適當?shù)臋嘞蓿?。進程可以在整個網(wǎng)絡的任何地方以相同的方式進行通信。同樣,操作系統(tǒng)無所不在的消息傳遞 IPC 解釋了這種流暢、透明的網(wǎng)絡。

4.  QNX Neutrino RTOS



QNX Neutrino實時操作系統(tǒng)(RTOS):內(nèi)存受保護的微內(nèi)核架構。

QNX Neutrino實時操作系統(tǒng)架構如下圖所示:


QNX Neutrino RTOS是功能齊全性能可靠的簡化版操作系統(tǒng),可滿足最小規(guī)格的實時嵌入系統(tǒng)的有限資源要求。其真正的微內(nèi)核操作系統(tǒng)和模塊化架構可使客戶以較低的運行總成本創(chuàng)建高度優(yōu)化的可靠系統(tǒng)。

(1). 該系統(tǒng)建立在真正的微內(nèi)核架構上。在這種系統(tǒng)中,所有驅(qū)動程序、應用程序、協(xié)議棧和文件系統(tǒng)都在內(nèi)核外部內(nèi)存受保護的安全的用戶空間內(nèi)運行。幾乎所有組件在出現(xiàn)故障時都能自動重啟而不會影響其他組件或內(nèi)核。

(2). 該系統(tǒng)采用模塊化結(jié)構,可允許用戶動態(tài)升級模塊、引入新功能或?qū)嵤﹩栴}修復,而無高增加停機時間和系統(tǒng)中斷的成本。

(3). 該系統(tǒng)采用多核技術和內(nèi)置透明分布處理技術。

(4). 該系統(tǒng)根據(jù)POSIX標準設計,只需通過簡單地重新編譯,就可移植既存代碼、開源UNIX、Linux和因特網(wǎng)代碼。通過標準應用程序接口,用戶能重新使用應用程序代碼。

(5). 該系統(tǒng)利用自適應分區(qū)技術確保系統(tǒng)資源滿足應用要求。

(6). 該系統(tǒng)支持x86、PowerPC和ARM平臺

QNX Momentics工具套件(Tool Suite):基于Eclipse的靈活集成開發(fā)環(huán)境。

(1). 該工具套件包含用戶所需的所有工具,便于迅速創(chuàng)建和優(yōu)化用于QNX Neutrino實時操作系統(tǒng)的應用程序。從板卡啟動到遠程診斷,QNX Momentics工具套件為用戶提供在整個開發(fā)周期內(nèi)節(jié)省時間的工具,而且全部在單獨、使用簡便的環(huán)境中進行。

(2). 用戶可選擇自己喜歡的編程語言、主機目標機。利用QNX Momentics工具套件,用戶可使用C、C++、嵌入式C++編程;可以在Windows或Linux主機中開發(fā)程序;并以ARM、PowerPC和x86處理器為開發(fā)目標,所有工具都取自相同的集成開發(fā)環(huán)境(IDE)。該工具套件還提供極大的靈活性,允許用戶同時混用多種編程語言和處理器架構。

(3). 該工具套件提供了大量的優(yōu)質(zhì)高效的分析工具,以加快產(chǎn)品交付所有階段的進展。該工具套件包括許多非侵入式圖形分析工具,以幫助用戶輕松隔離并呈現(xiàn)資源的使用情況、定位瓶頸并對系統(tǒng)性能進行精確調(diào)整,包括應用程序剖析、系統(tǒng)剖析和內(nèi)存分析。

(4). 該工具套件支持所有QNX Neutrino實時操作系統(tǒng)技術,包括多核技術、擴展網(wǎng)絡、閃存文件系統(tǒng)、高級圖形和透明分布處理技術等。

(5). 該工具套件中含有經(jīng)過優(yōu)化的GCC編譯器、GDB調(diào)試程序。

5.  開源代碼及開源商業(yè)模式


代碼路徑:https://github.com/vocho/openqnx


README中,有編譯的方法,但是讓我安裝一個軟件,這個就是工具鏈。而這個不開源的工具鏈需要license。我搞了一通沒成功,放棄了。這不能編譯,只開放了內(nèi)核核心代碼但是不全?。∵€不能編譯,shit!誰有可以編譯的方法可以告訴我,一起學習。下面介紹下目前QNX的商業(yè)模式


加拿大渥太華, 2007912 -- QNX軟件系統(tǒng)公司今天宣布將在一個新的混合軟件授權模式下開放QNX? Neutrino? 實時操作系統(tǒng)的源碼,革命性地創(chuàng)造了結(jié)合開源軟件和商業(yè)軟件優(yōu)勢的,新的軟件開發(fā)模式。

新的混合軟件模式:

這些變化,是QNX公司新建的混合軟件模式的一部份。以提高開發(fā)的激情,并幫助用戶達到最終盈利的目標,檢閱QNX的源代碼完全免費,但使用了QNX Neutrino的商業(yè)產(chǎn)品依然要支付授權費,同時,商業(yè)開發(fā)也需要購買QNX Momentics? 開發(fā)環(huán)境。但是,非商業(yè)的開發(fā),學校以及被授權的合作伙伴可以免費得到QNX的開發(fā)工具以及執(zhí)行環(huán)境。

用戶和社區(qū)里的開發(fā)者,還可以如參加
開源軟件項目開發(fā)一樣,參加到QNX的開發(fā)進程中來。通過一個透明的開發(fā)過程,QNX的軟件設計師將公布開發(fā)計劃,新的源碼,以及出錯修改,并對開發(fā)進程進行監(jiān)控。他們同時也通過公開的論壇,維客,以及源碼倉庫同客戶和QNX社區(qū)進行交流。

 “
通過這個新的透明式開發(fā)過程,開放源碼和開發(fā)工具,QNX將成為
商業(yè)軟件開發(fā)中的改革先鋒,”Dan Dodge,QNX軟件系統(tǒng)公司首席執(zhí)行官說,所有的商業(yè)開發(fā)者以及愛好者,都將史無前例地接觸我們的軟件中的'皇冠上的珠寶,并以此為基礎來創(chuàng)造下一代的計算機技術革新。


一般的思路是,核心的東西我不告訴你;新的賽道是核心的東西我告訴你這樣用戶才會多,先獲得市場。但是你不能商用二次賣錢,如果抄襲我的你永遠跟著我屁股后面,因為我的市場占用率已經(jīng)很高了。

更多開源原價的商業(yè)模式參考:https://www.kwm.com/cn/zh/insights/latest-thinking/how-can-enterprises-build-their-own-circle-of-friends-under-the-open-source-ecosystem.html

6.  框架文檔


http://myqnx.com/developers/docs/6.3.0SP3/momentics/bookset.html

文檔里面有框架介紹,還有各個模塊的設計框架,函數(shù)列表,挺有參考意義的,可以使用瀏覽器自動的中文翻譯,點點看看。

后記:


如果有調(diào)研某個模塊在微內(nèi)核上實現(xiàn)的需求,可以先看看框架文檔中有不,然后看看開源的代碼里面有對應的API函數(shù)不。

參考:
  1.  1. https://luhuadong.blog.csdn.net/article/details/124456247
  2.  2. https://blog.csdn.net/fengbingchun/article/details/89884857
  3.  3. https://bbs.csdn.net/topics/190018595
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
QNX簡介
QNX實時操作系統(tǒng)
構建可靠的、可升級的軟件無線電
四種實時操作系統(tǒng)的分析比較
QNX system architecture 2
IT工程師必須了解的10個操作系統(tǒng)基本概念
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服