QNX(QNX或QNX)是一個(gè)面向商業(yè)類Unix實(shí)時(shí)作業(yè)系統(tǒng)的操作系統(tǒng),主要針對(duì)嵌入式系統(tǒng)市場(chǎng)。它最初由Gordon Bell和Dan Dodge于1980年創(chuàng)立,最初名為QUNIX(Quick UNIX),后來(lái)改名為QNX軟件系統(tǒng)公司。QNX是最早商業(yè)上成功的微內(nèi)核操作系統(tǒng)之一。 截至2022年,QNX被廣泛應(yīng)用于各種設(shè)備,包括汽車、醫(yī)療設(shè)備、程序邏輯控制器、機(jī)器人、火車等。2010年代后,隨著汽車智能化加速,QNX在車用市場(chǎng)的占有率不斷提高,達(dá)到75%。
系統(tǒng)簡(jiǎn)介
QNX是一種商用的遵從POSIX規(guī)范的類Unix實(shí)時(shí)操作系統(tǒng),目標(biāo)市場(chǎng)主要是面向嵌入式系統(tǒng)。它可能是最成功的微內(nèi)核操作系統(tǒng)之一。
QNX是一種商用的類Unix實(shí)時(shí)操作系統(tǒng),遵從POSⅨ規(guī)范,目標(biāo)市場(chǎng)主要是嵌入式系統(tǒng)。QNX成立于1980年,是加拿大一家知名的嵌入式系統(tǒng)開(kāi)發(fā)商。
QNX的應(yīng)用范圍極廣,包含了:控制保時(shí)捷的音樂(lè)和媒體功能、核電站和美國(guó)陸軍無(wú)人駕駛Crusher坦克的控制系統(tǒng),還有RIM公司的BlackBerry PlayBook平板電腦。
2004年10月27日,QNX 軟件系統(tǒng)宣布它已經(jīng)接受來(lái)自音響設(shè)備制造商 Harman 國(guó)際工業(yè)公司(紐約證券交易所: HAR)的購(gòu)買(mǎi)提議. 作為Harman 的最新子公司高級(jí)商標(biāo)的國(guó)際家庭,包括 Harman Kardon,JBL 和Becker,QNX 現(xiàn)在將會(huì)加速它的生長(zhǎng),向?yàn)橄冗M(jìn)的嵌入式運(yùn)用,變成優(yōu)先的操作系統(tǒng)。哈曼集團(tuán)以1.38億美元的現(xiàn)金收購(gòu)了QNX,但也因此承擔(dān)了1.38億美元的債務(wù)。
2010年04月14日,黑莓手機(jī)(BlackBerry)制造商RIM(Research In Motion Ltd.,RIM)將收購(gòu)哈曼國(guó)際工業(yè)集團(tuán)(Harman International Industries Inc.,HAR)旗下的QNX軟件公司,以獲取其車載無(wú)線連接技術(shù)。QNX這個(gè)原本的渥太華公司,在被美國(guó)哈曼國(guó)際 Harman 在買(mǎi)走6年后,又重返加拿大。QNX主要開(kāi)發(fā)汽車,通訊設(shè)備所使用的操作系統(tǒng),哈曼國(guó)際的主業(yè)則是汽車音像和娛樂(lè)設(shè)備。此次交易將使得RIM,QNX和哈曼工業(yè)在智能手機(jī)和車載音頻娛樂(lè)系統(tǒng)之間找到合作空間。
QNX被RIM并購(gòu)的消息傳出,才讓這個(gè)在中國(guó)的認(rèn)知度并不高的“默默無(wú)聞”的操作系統(tǒng)廠商被大家所熟知。但在汽車領(lǐng)域,QNX早已是最大的操作系統(tǒng)供應(yīng)商。據(jù)不完全資料顯示,QNX在車用市場(chǎng)占有率達(dá)到75%,目前全球有超過(guò)230種車型使用QNX系統(tǒng),包括哈曼貝克、美國(guó)德?tīng)柛9?/a>、大陸、通用電裝、愛(ài)信等知名汽車電子平臺(tái)都是在QNX系統(tǒng)上搭建的。幾乎全球所有的主要汽車品牌包括謳歌、阿爾法·羅密歐、奧迪、寶馬、別克、凱迪拉克、雪弗蘭、克萊斯勒汽車公司、梅賽德斯-奔馳集團(tuán)、道奇、菲亞特、福特、通用汽車、本田、悍馬、現(xiàn)代、英菲尼迪、捷豹、JEEP、藍(lán)旗亞、馬自達(dá)、奔馳、迷你寶馬、三菱、日產(chǎn)汽車公司、歐寶、龐迪克、保時(shí)捷、薩博集團(tuán)、土星、雙龍汽車、豐田汽車和大眾汽車等目前都采用了基于QNX技術(shù)的系統(tǒng)。
除汽車領(lǐng)域之外,QNX的最大客戶訂單來(lái)源于思科,其中高端路由設(shè)備幾乎全部采用QNX操作系統(tǒng),因此,網(wǎng)絡(luò)通信也成為了QNX第二大應(yīng)用領(lǐng)域。此外,QNX與通用電氣、阿爾斯通、西門(mén)子股份公司、洛克希德·馬丁公司和美國(guó)航空航天局等公司都有著緊密合作,在軌道交通、醫(yī)療器械、智能電網(wǎng)及航空航天中,都發(fā)揮著積極作用。
基本特征
* QNX是一個(gè)分布式、嵌入式、可規(guī)模擴(kuò)展的硬實(shí)時(shí)操作系統(tǒng)。它遵循POSⅨ.1 (程序接口)和POSⅨ.2 (Shell和工具)、部分遵循POSⅨ.1b(實(shí)時(shí)擴(kuò)展)。它誕生于1980年,距今已38年的歷史。
體系結(jié)構(gòu)
* QNX是一個(gè)微內(nèi)核實(shí)時(shí)操作系統(tǒng),其核心僅提供4種服務(wù):進(jìn)程調(diào)度、進(jìn)程間通信、底層網(wǎng)絡(luò)通信和中斷處理,其進(jìn)程在獨(dú)立的地址空間運(yùn)行。所有其它OS服務(wù),都實(shí)現(xiàn)為協(xié)作的用戶進(jìn)程,因此QNX核心非常小巧(QNX4.x大約為12Kb)而且運(yùn)行速度極快。
調(diào)度策略
QNX 提供POSⅨ.1b標(biāo)準(zhǔn)進(jìn)程調(diào)度:
* 255個(gè)進(jìn)程優(yōu)先級(jí);
* 搶占式的、基于優(yōu)先級(jí)的正文切換;
* 可選調(diào)度策略:FIFO、輪轉(zhuǎn)策略、適應(yīng)性策略。
結(jié)構(gòu)
QNX是業(yè)界公認(rèn)的X86平臺(tái)上最好的嵌入式實(shí)時(shí)操作系統(tǒng)之一。它具有獨(dú)一無(wú)二的微內(nèi)核實(shí)時(shí)平臺(tái),建立在微內(nèi)核和完全地址空間保護(hù)基礎(chǔ)之上,實(shí)時(shí)、穩(wěn)定、可靠,已經(jīng)完成到PowerPC、MIPS、ARM等內(nèi)核的移植,成為在國(guó)內(nèi)廣泛應(yīng)用的嵌入式實(shí)時(shí)操作系統(tǒng)。雖然QNX本身并不屬于unix,但由于其提供了POSIX的支持,使得多數(shù)傳統(tǒng)UNIX程序在微量修改(甚至不需修改)后即可在QNX上面編譯與運(yùn)行。
內(nèi)核簡(jiǎn)介
QNX的微內(nèi)核結(jié)構(gòu)是它區(qū)別于其它操作系統(tǒng)的顯著特點(diǎn)。
平板式內(nèi)存結(jié)構(gòu),如圖1所示,所有的程序都使用同一個(gè)地址空間,不加保護(hù);應(yīng)用程序可以自由訪問(wèn)所有空間,效率較高,但是任何應(yīng)用程序指針錯(cuò)誤都可能會(huì)導(dǎo)致內(nèi)核崩潰。
大內(nèi)核內(nèi)存結(jié)構(gòu),如圖2所示,操作系統(tǒng)內(nèi)核和各種驅(qū)動(dòng)程序、網(wǎng)絡(luò)協(xié)議在同一個(gè)地址空間,應(yīng)用程序在單獨(dú)空間;內(nèi)核模塊同處于一個(gè)保護(hù)空間,運(yùn)行效率高,應(yīng)用程序無(wú)法直接訪問(wèn)保護(hù)空間,系統(tǒng)穩(wěn)定性大大提高。缺點(diǎn)是,由于內(nèi)核模塊(例如網(wǎng)絡(luò)驅(qū)動(dòng))處于保護(hù)空間,因此調(diào)試?yán)щy,任何驅(qū)動(dòng)程序的修改都要重新編譯內(nèi)核,無(wú)法做到驅(qū)動(dòng)的動(dòng)態(tài)加載和卸載。
QNX的微內(nèi)核結(jié)構(gòu),內(nèi)核獨(dú)立自處于一個(gè)被保護(hù)的地址空間;驅(qū)動(dòng)程序、網(wǎng)絡(luò)協(xié)議和應(yīng)用程序處于程序空間中。
微內(nèi)核結(jié)構(gòu)的優(yōu)點(diǎn):①驅(qū)動(dòng)程序、網(wǎng)絡(luò)協(xié)議、文件系統(tǒng)等操作系統(tǒng)模塊和內(nèi)核相互獨(dú)立,任何模塊的故障都不會(huì)導(dǎo)致內(nèi)核的崩潰;②驅(qū)動(dòng)程序、網(wǎng)絡(luò)協(xié)議、文件系統(tǒng)和應(yīng)用程序都處于程序空間,都調(diào)用相同的內(nèi)核API,開(kāi)發(fā)與調(diào)試和應(yīng)用程序沒(méi)有區(qū)別;③操作系統(tǒng)功能模塊可以根據(jù)需要?jiǎng)討B(tài)地加載或卸載,不需要編譯內(nèi)核。在高可靠性要求的情況下,可以編寫(xiě)監(jiān)視模塊,對(duì)可靠性要求高的模塊進(jìn)行監(jiān)視,必要的時(shí)候重新啟動(dòng)或重新加載而無(wú)須重啟系統(tǒng)。高可靠性的內(nèi)核結(jié)構(gòu)使QNX具備了高可靠性嵌入式操作系統(tǒng)的本質(zhì)特征。
在具有高可靠性內(nèi)核的基礎(chǔ)上,QNX的創(chuàng)新設(shè)計(jì)使它同樣具有很高的效率。QNX最為引人注目的地方是,它是UNⅨ的同胞異構(gòu)體,保持了和UNⅨ的高度相似性,絕大多數(shù)UNⅨ或LINUX應(yīng)用程序可以在QNX下直接編譯生成。這意味著為數(shù)眾多的穩(wěn)定成熟的UNⅨ、Linux應(yīng)用可以直接移植到QNX這個(gè)更加穩(wěn)定高效的實(shí)時(shí)嵌入式平臺(tái)上來(lái)。
網(wǎng)絡(luò)結(jié)構(gòu)
QNX網(wǎng)絡(luò)子系統(tǒng)由三個(gè)部分組成:網(wǎng)絡(luò)管理模塊(io-net)、網(wǎng)絡(luò)協(xié)議模塊、網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)模塊。
每個(gè)模塊各自具有不同的功能,但是它們具有一些相同的屬性。如:網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)、TCP/IP協(xié)議棧分別對(duì)上層io-net模塊和應(yīng)用程序產(chǎn)生數(shù)據(jù),兩者都可以被看作數(shù)據(jù)源;同時(shí)它們也接受上層發(fā)來(lái)的數(shù)據(jù),又可以同時(shí)被看作數(shù)據(jù)的消費(fèi)者。過(guò)濾模塊對(duì)向上的數(shù)據(jù)進(jìn)行篩選,分協(xié)議進(jìn)行處理;對(duì)向下的數(shù)據(jù)則進(jìn)行相應(yīng)的轉(zhuǎn)換,如進(jìn)行網(wǎng)絡(luò)地址轉(zhuǎn)換NAT。轉(zhuǎn)換模塊負(fù)責(zé)不同協(xié)議幀結(jié)構(gòu)的轉(zhuǎn)換,在以太網(wǎng)的工作環(huán)境下,它就負(fù)責(zé)對(duì)IP數(shù)據(jù)報(bào)進(jìn)行以太網(wǎng)幀的封裝和解包。
和QNX其它服務(wù)進(jìn)程一樣,QNX的網(wǎng)絡(luò)子系統(tǒng)也在內(nèi)核外部空間運(yùn)行。應(yīng)用程序面對(duì)的是一個(gè)統(tǒng)一的網(wǎng)絡(luò)接口,硬件相關(guān)的內(nèi)容被完全包裝在網(wǎng)絡(luò)子系統(tǒng)內(nèi)。
QNX網(wǎng)絡(luò)子系統(tǒng)的三個(gè)子模塊按層次分開(kāi),io-net模塊處于中心,是QNX網(wǎng)絡(luò)的核心和重點(diǎn),其它模塊都掛接在它上面。數(shù)據(jù)和信息的流動(dòng)都必須經(jīng)由io-net調(diào)度與轉(zhuǎn)發(fā),所有其它模塊所面對(duì)的就是一個(gè)單一主體。這樣的中心交換結(jié)構(gòu),屏蔽了各個(gè)模塊間相互協(xié)調(diào)的復(fù)雜細(xì)節(jié),在很大程序上方便了模塊的編寫(xiě)工作;同時(shí),io-net還是QNX的網(wǎng)絡(luò)管理中心。任何網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序都必須向io-net注冊(cè),由它來(lái)加載,并接受io-net的配置和管理,用戶對(duì)網(wǎng)絡(luò)狀態(tài)的查詢和管理也是通過(guò)io-net來(lái)實(shí)現(xiàn)的。
網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)
QNX網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)模塊處于網(wǎng)絡(luò)硬件和io-net模塊之間。驅(qū)動(dòng)模塊負(fù)責(zé)配置硬件使其正常工作,向io-net報(bào)告數(shù)據(jù)收發(fā)情況,接收和傳遞數(shù)據(jù),接受io-net的調(diào)度和管理。QNX網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序依照以上功能,分為初始化、接收發(fā)送數(shù)據(jù)、網(wǎng)絡(luò)設(shè)備信息統(tǒng)計(jì)幾個(gè)功能塊。要使網(wǎng)絡(luò)設(shè)備工作正常,驅(qū)動(dòng)程序就要對(duì)它進(jìn)行一定的寄存器配置,同時(shí),還要向QNX網(wǎng)絡(luò)子系統(tǒng)注冊(cè)自己,表明網(wǎng)絡(luò)設(shè)備的存在和網(wǎng)絡(luò)通信能力,才能為系統(tǒng)和應(yīng)用程序所用。在初始化工作完成以后,網(wǎng)絡(luò)設(shè)備就進(jìn)入了工作狀態(tài),收發(fā)數(shù)據(jù)。設(shè)備信息的統(tǒng)計(jì)也是由設(shè)備驅(qū)動(dòng)程序來(lái)完成的。
⑴初始化
初始化包括兩個(gè)方面,一方面是初始化網(wǎng)絡(luò)設(shè)備,使其正常工作;另一個(gè)方面,是向io-net正確注冊(cè)驅(qū)動(dòng)模塊,表明自己的屬性,方便上層正確操作。網(wǎng)絡(luò)設(shè)備的初始化工作和硬件緊密相關(guān),這里就不一一描述。
驅(qū)動(dòng)模塊向io-net加載自己的時(shí)候,系統(tǒng)遵循如下工作流程:
①io-net搜索全局的符合io_net_dll_entry。它定義了驅(qū)動(dòng)的初始化函數(shù),io-net會(huì)直接調(diào)用這個(gè)函數(shù)。
②初始化函數(shù)向io-net注冊(cè)驅(qū)動(dòng)和相應(yīng)的函數(shù)。
③初始化函數(shù)告訴io-net和它的模塊自己的通信能力。
經(jīng)過(guò)以上流程以后,io-net中就建立起有關(guān)此驅(qū)動(dòng)程序的數(shù)據(jù)和函數(shù)調(diào)用列表。驅(qū)動(dòng)程序必須正確編寫(xiě)初始化函數(shù),并將該函數(shù)正確鏈接至io_net_dll_entry。
⑵從網(wǎng)絡(luò)設(shè)備接收數(shù)據(jù)
當(dāng)有包到達(dá)網(wǎng)絡(luò)設(shè)備的時(shí)候,網(wǎng)絡(luò)設(shè)備就會(huì)用某種方式通知驅(qū)動(dòng)程序(例如中斷),此時(shí),驅(qū)動(dòng)程序就要采取某種策略來(lái)處理到來(lái)的幀或數(shù)據(jù)。通常驅(qū)動(dòng)程序這時(shí)候需要做以下工作:
①通過(guò)DMA將包取回來(lái);
②做相應(yīng)的必要處理,如通知網(wǎng)絡(luò)設(shè)備釋放當(dāng)前幀的緩存,配置寄存器讓網(wǎng)絡(luò)設(shè)備等待下一幀到來(lái)等;
③通過(guò)調(diào)用io-net的tx_up_start()函數(shù)把包傳遞給上層模塊。
當(dāng)上層所有的模塊都完成對(duì)這個(gè)包的處理以后,io-net調(diào)用我們驅(qū)動(dòng)中的tx_done()函數(shù),它來(lái)做最后的處理工作。
tx_up_start()函數(shù)是設(shè)備驅(qū)動(dòng)中比較關(guān)鍵的函數(shù),下面簡(jiǎn)要部分一下這個(gè)函數(shù)的入口參數(shù)。
npkt_t*(*tx_up_start)(int registrant_hdl,
nptk_t *npkt,
int off,
int framelen_sub,
uint16_t cell,
uint 16_t endpoint,
uint16_t iface,
void *done_hdl)
其中:int registrant_hdl--本驅(qū)動(dòng)在io-net中的句柄,注冊(cè)時(shí)由io-net生成;
nptk_t *npkt --需要處理的包的指針;
int off--底層協(xié)議包頭長(zhǎng)度,如以太網(wǎng)幀頭部長(zhǎng)度;
int framelen_sub--尾部填充的長(zhǎng)度,對(duì)于以太網(wǎng)這個(gè)值為零;
uint16_t cell、uint16_t endpoint--endpoint和cell是io-net在注冊(cè)的時(shí)候分配的用來(lái)區(qū)別不同的驅(qū)動(dòng);
uint16_t iface--接口號(hào),可以讓同一個(gè)驅(qū)動(dòng)負(fù)現(xiàn)多個(gè)相同硬件;
void *done_hdl--該指針指向tx_done()函數(shù)需要的額外數(shù)據(jù)。
⑶向網(wǎng)絡(luò)設(shè)備發(fā)送數(shù)據(jù)
當(dāng)上層模塊需要硬件傳送包的時(shí)候,會(huì)調(diào)用io-net管理器的rx_down()函數(shù)。
int(*rx_down)(npkt_t*npkt,
void *func_hdl)
rx_down函數(shù)入口參數(shù)中,npkt是指向需要傳送的數(shù)據(jù)的結(jié)構(gòu)指針,func_hdl是相應(yīng)驅(qū)動(dòng)模塊在io-net中的句柄。其中npt結(jié)構(gòu)包含許多成員,其中的重要成員如:
cell、endpoint、iface 需要處理該包的硬件標(biāo)識(shí)
buffers 指向包的指針
tot_iov 包含數(shù)據(jù)包的所有I/O矢量
Framelen 所有數(shù)據(jù)的長(zhǎng)度,以字節(jié)為單位
驅(qū)動(dòng)模塊在接收到io-net的調(diào)用后,就要配置網(wǎng)絡(luò)設(shè)備,讓它完成數(shù)據(jù)的發(fā)送工作。網(wǎng)絡(luò)設(shè)備發(fā)送數(shù)據(jù)所需要的信息都會(huì)在相應(yīng)的數(shù)據(jù)結(jié)構(gòu)中,如net_buf_t結(jié)構(gòu)中保存了等待傳送的數(shù)據(jù)包的鏈接列表,配置DMA所需的物理地址在net_iov_t中等。驅(qū)動(dòng)模塊要等待硬件完成這些包的傳送,并調(diào)用io-net的tx)done()函數(shù)通知上層模塊驅(qū)動(dòng)程序已經(jīng)完成了數(shù)據(jù)的發(fā)送。
網(wǎng)絡(luò)設(shè)備信息的統(tǒng)計(jì)
應(yīng)用程序或者用戶可以通過(guò)網(wǎng)絡(luò)信息接口nicinfo工具來(lái)了解網(wǎng)絡(luò)工作狀態(tài)。信息的查詢都是通過(guò)io-net來(lái)進(jìn)行的。驅(qū)動(dòng)程序必須維護(hù)相應(yīng)的狀態(tài)數(shù)據(jù),方便io-net的查詢。網(wǎng)絡(luò)設(shè)備有一些共同的狀態(tài)屬性,如收到和發(fā)出的包的個(gè)數(shù)、發(fā)送錯(cuò)誤的包的個(gè)數(shù)等,不同的網(wǎng)絡(luò)設(shè)備還會(huì)具有不同的屬性和狀態(tài),這些都可以在驅(qū)動(dòng)程序中用數(shù)據(jù)結(jié)構(gòu)詳細(xì)列明。
需要維護(hù)的數(shù)據(jù)結(jié)構(gòu)中,主要的是Nic_t,它包括四個(gè)子結(jié)構(gòu);
CustNicStats--網(wǎng)絡(luò)信息入口;
EthernesStats_t--以太網(wǎng)狀態(tài);
GenStats_t--常用統(tǒng)計(jì)信息;
NetStats_t--網(wǎng)絡(luò)信息(包含常用統(tǒng)計(jì)信息)。
以上是驅(qū)動(dòng)程序需要維護(hù)的數(shù)據(jù)。當(dāng)用戶或應(yīng)用程序要查詢這些信息的時(shí)候,它們就通過(guò)Nicinfo工具對(duì)/dev/io-net/en0調(diào)用devctl()函數(shù)來(lái)取得網(wǎng)絡(luò)信息。信息的取得是必須通過(guò)io-net來(lái)完成的,io-net對(duì)信息的查詢則是通過(guò)調(diào)用io_net_register_funs_t結(jié)構(gòu)中所指向的函數(shù)來(lái)取得信息的。例:
#include
int generic_eth_devctl(void *hdl,int dcmd,void *data,size_tsize,int *ret)
{
Nic_t *nic=(Nic_t *)hdl;
int status;
status=EOK;
switch(dcmd){
case DCMD_IO_NET_NICINFO;
memcpy(data,nic,min(size,sizeof(Nic_t)));
break;
default:
status=ENOTSUP;
break;
}
return(status);
}
結(jié)束語(yǔ)
網(wǎng)絡(luò)設(shè)備的驅(qū)動(dòng)是網(wǎng)絡(luò)系統(tǒng)的最低層和最基礎(chǔ)的模塊,是如今嵌入式開(kāi)發(fā)中首先要解決的問(wèn)題之一。由于QNX具有微內(nèi)核的特點(diǎn),其網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序的開(kāi)發(fā)不需要內(nèi)核調(diào)試,更適合初學(xué)者掌握。本文對(duì)QNX操作系統(tǒng)及網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序的介紹,可以幫助讀者對(duì)相關(guān)內(nèi)容作初步了解。
系統(tǒng)服務(wù)
QNX的系統(tǒng)服務(wù): * 多種File Explorer,包括各種文件系統(tǒng)和設(shè)備管理,支持多個(gè)文件系統(tǒng)同時(shí)運(yùn)行,包括提供完全POSⅨ.1及UNⅨ語(yǔ)法的POSⅨ文件系統(tǒng),支持多種閃存設(shè)備的嵌入式文件系統(tǒng),支持對(duì)多種文件服務(wù)器(如Windows NT/95、LAN Manager等)的透明訪問(wèn)的SMB文件系統(tǒng)、DOS文件系統(tǒng)、CD-ROM文件系統(tǒng)等。
* 設(shè)備管理。在進(jìn)程和終端設(shè)備間提供大吞吐量、低開(kāi)銷接口服務(wù)。
* 圖形/窗口支持。包括QNX Windows、X Window System for QNX、對(duì)MS Windows NT/95和X Window系統(tǒng)的遠(yuǎn)程圖形連接。
* TCP/IP for QNX。
* 高性能、容錯(cuò)型QNX網(wǎng)絡(luò)——FLEET,使得所有連入網(wǎng)絡(luò)的計(jì)算機(jī)變成一個(gè)邏輯上的超級(jí)計(jì)算機(jī)。
* 透明的分布式處理。FLEET網(wǎng)絡(luò)處理與消息傳遞和進(jìn)程管理原語(yǔ)的集成,將本地和網(wǎng)絡(luò)IPC統(tǒng)一起來(lái),使得網(wǎng)絡(luò)對(duì)IPC而言是透明的。
開(kāi)放性
QNX的開(kāi)放性:
* QNX的POSⅨ兼容性和其提供的UNⅨ特色的編譯器、調(diào)試器、X Window和TCP/IP都是UNⅨ程序員所熟悉的。
* 支持多種CPU:AMD ElanSC300/310/400/410、Am386 DE/SE、Cyrix MediaGX、x86處理器(386以上)、Pentium系列、意法半導(dǎo)體 的STPC。
* 多種總線:CompactPCI、EISA、ISA 、MPE (RadiSys)、STD、STD 32、PC/104、PC/104-Plus、PCI、PCMCIA、VESA、VME。
* 各種外設(shè):多種SCSI設(shè)備、IDE/EIDE驅(qū)動(dòng)器、10M/100M以太網(wǎng)卡、Token Ring網(wǎng)卡、FDDI接口卡、多種PCMCIA設(shè)備、閃存、聲卡等等。
用戶評(píng)價(jià)
華麗的圖形界面和快捷的運(yùn)行速度
QNX有一個(gè)非常華麗的圖形界面,并且號(hào)稱運(yùn)行速度比Windows或Linux更快。不用不知道,一用你會(huì)忘不掉:P
壟斷的微軟Windows操作系統(tǒng)和自由的Linux操作系統(tǒng)都是很多朋友熟知的計(jì)算機(jī)主要的操作系統(tǒng)。但是您聽(tīng)說(shuō)過(guò)QNX計(jì)算機(jī)操作系統(tǒng)嗎?如果我告訴您QNX操作系統(tǒng)運(yùn)行的速度比Windows或Linux還快,而且用戶界面也十分華麗,您相信嗎?
別以為QNX是剛剛誕生的計(jì)算機(jī)操作系統(tǒng),它早就在20年前就誕生了,但是QNX作為一種專業(yè)的操作系統(tǒng),至今它還未能進(jìn)入普通用戶的計(jì)算機(jī)為我們服務(wù)。其中的原因無(wú)疑是很復(fù)雜的。
有趣的發(fā)音
QNX的發(fā)音也十分有趣,大家知道Linux用漢語(yǔ)發(fā)音就是“里訥克斯”,而QNX的發(fā)音就是“cue-nix”:)。如果您使用的是Pentium處理器系列的計(jì)算機(jī),那么在這臺(tái)計(jì)算機(jī)的硬盤(pán)上安裝QNX操作系統(tǒng)是很容易的事情,QNX可以在Windows下安裝,它和Linux一樣,是一種類UNⅨ的操作系統(tǒng)。另人驚異的是QNX也是免費(fèi)的操作系統(tǒng),可以直接到QNX的網(wǎng)站上下載這個(gè)原版操作系統(tǒng)。當(dāng)然,購(gòu)買(mǎi)一張QNX的CD-ROM也是很方便的。一張QNX的安裝盤(pán)CD-ROM售價(jià)為30美元。在QNX的主頁(yè)上有很詳細(xì)的介紹和資料,還有關(guān)于QNX的新聞及應(yīng)用軟件可供用戶閱讀下載。
可以和Windows切換
有了QNX,您計(jì)算機(jī)里的操作系統(tǒng)不只是Windows獨(dú)霸了,QNX完全可以取代霸道的Windows平臺(tái)。很多初學(xué)計(jì)算機(jī)的朋友因?yàn)榻佑|最多的是Windows平臺(tái),以至于他們誤認(rèn)為Windows 98就是“OS”的唯一選擇。現(xiàn)在不同了,使用QNX同樣也能很好的管理計(jì)算機(jī)了。
簡(jiǎn)單的說(shuō),操作系統(tǒng)就是給計(jì)算機(jī)一個(gè)靈活的大腦,一個(gè)強(qiáng)健的心臟和突出的個(gè)性。沒(méi)有操作系統(tǒng),計(jì)算機(jī)什么也做不了,只能是一堆廢物。
軟件公司
QNX是由一家位于加拿大的QNX軟件系統(tǒng)公司(簡(jiǎn)稱QSSL)推出的。該公司位于渥太華(加拿大城市)的市郊。最近從該公司傳來(lái)好消息說(shuō),該公司已經(jīng)面向普通用戶推出了可以免費(fèi)使用、非商業(yè)用的個(gè)人用戶版本的QNX實(shí)時(shí)平臺(tái)或稱作QNX RTP,最小的在Windows下安裝文件只有24MB。當(dāng)這個(gè)版本正式向公眾推出的時(shí)候,大約有400000人次從網(wǎng)上下載了這個(gè)QNX RTP版本。這大大出乎了意料,沒(méi)有想到竟然有這么多人對(duì)這個(gè)操作系統(tǒng)感興趣。因?yàn)楹芏嗳嗽谝郧案揪蜎](méi)有聽(tīng)說(shuō)過(guò)世界上還有這么一個(gè)免費(fèi)的QNX操作系統(tǒng)。
該公司已被RIM(Research In Motion)收購(gòu)。
配置要求
現(xiàn)在要在這么一臺(tái)電腦上試裝這個(gè)QNX操作系統(tǒng)。電腦的硬件配置為233 MHZ AMD K6 處理器,96MB內(nèi)存,ATI All-in-Wonder Pro顯示卡,Sound Blaster AWE 32 聲卡,兩個(gè)硬盤(pán)驅(qū)動(dòng)器和兩個(gè)CD-ROM驅(qū)動(dòng)器,一個(gè)SCSI硬盤(pán)和一塊標(biāo)準(zhǔn)的網(wǎng)卡。
安裝
在安裝的過(guò)程中除了遇到一個(gè)小故障之外,一切還算順利。那塊SCSI卡沒(méi)有能被QNX自動(dòng)配置。查閱QSSL公司的資料,該公司說(shuō)他們正在努力的修正這個(gè)SCSI的問(wèn)題。
操作
如果您是一位有經(jīng)驗(yàn)的Linux用戶,那么QNX會(huì)使您很快就能上手。雖然它和Linux有很大的區(qū)別。QNX RTP使用的命令和操作是和Linux的許多“shell”命令是兼容的。更令人滿意的是QNX的文件分級(jí)目錄(組織,文件名和目錄)和Linux幾乎是一樣的??梢哉f(shuō)QNX RTP和舊的Linux是十分相象的。這對(duì)許多喜歡Linux,對(duì)Linux有一定實(shí)際操作經(jīng)驗(yàn)的用戶來(lái)說(shuō)無(wú)疑是一個(gè)福音。QNX在他們手里很快就能玩轉(zhuǎn)。
但QNX和Linux最大的不同就是QNX的圖形用戶界面設(shè)計(jì)的十分漂亮。盡管Linux使用的是經(jīng)久世故的X Window系統(tǒng),但是和QNX的稱為“Photon”的圖形用戶界面相比還是顯得Linux略勝一籌。
系統(tǒng)優(yōu)點(diǎn)
QNX RTP的圖形用戶界面-Photon MicroGUI非???/p>
QNX的Photon MicroGUI窗口系統(tǒng)是最“酷”的GUI(圖形用戶界面)。安裝QNX后,你就會(huì)發(fā)現(xiàn)QNX的默認(rèn)桌面背景“炫”得讓你暈倒,得讓人給你叫個(gè)醫(yī)生來(lái)。
另外要提到的是,QNX RTP 的運(yùn)行速度是那樣的快,是否所有的用戶都能夠接受?沒(méi)有錯(cuò),在同樣的電腦硬件配置情況下,QNX確實(shí)運(yùn)行速度要比其他的Windows系統(tǒng)要快得多。在使用鼠標(biāo)和窗口的操作界面下,QNX的運(yùn)行速度確實(shí)是讓人滿意的。給人以一種“豪爽”的感覺(jué)。
以上關(guān)于QNX的優(yōu)點(diǎn)介紹得讓你立刻想鼓掌,狠不得馬上下載一個(gè)QNX試一試,但是有些問(wèn)題是要說(shuō)清楚的。QNX盡管是非常好的一個(gè)操作系統(tǒng)。但是你平時(shí)主要工作如果需要處理電子表格,管理金融等等,那么QNX可能不太適合你。因?yàn)槟茉赒NX下運(yùn)行的應(yīng)用軟件并不多。這也是制約QNX發(fā)展的一個(gè)重要原因了。
但是也不必太擔(dān)心軟件不夠用的問(wèn)題,起碼QNX能讓你進(jìn)行很多基本的操作。你可以用QNX來(lái)計(jì)算數(shù)據(jù),播放CD音樂(lè),使用電子郵件程序,進(jìn)行文字處理工作,簡(jiǎn)單的圖象瀏覽,還有一些Linux上已經(jīng)除去的屏幕保護(hù)程序,桌面背景轉(zhuǎn)換,軟件的安裝管理功能等等。甚至你還可以在QNX上添加專用版本的Real Player軟件,喜歡玩游戲的朋友還可以安裝Quake這個(gè)著名的游戲。所有在QNX上玩過(guò)Quake的朋友都說(shuō)Quake在QNX上的運(yùn)行速度比任何操作系統(tǒng)都要快。這確實(shí)是一個(gè)對(duì)游戲迷來(lái)說(shuō)是非常好的消息。
所有優(yōu)點(diǎn)
好了,現(xiàn)在我們來(lái)總結(jié)一下QNX的所有優(yōu)點(diǎn):
速度極快:QNX的運(yùn)行速度非??欤渌牟僮飨到y(tǒng)沒(méi)有辦法和它相比。
系統(tǒng)非常安全:QNX上沒(méi)有計(jì)算機(jī)病毒,這是和Linux一樣的,所以QNX RTP不存在被病毒破壞資料的危險(xiǎn),只有在微軟Windows系統(tǒng)中才會(huì)有被病毒感染的噩夢(mèng)。另外,QNX的用戶管理相當(dāng)出色,它絕對(duì)不會(huì)讓一個(gè)沒(méi)有輸入正確密碼的人闖入計(jì)算機(jī)系統(tǒng)中。
QNX有一個(gè)最好的網(wǎng)頁(yè)瀏覽器:QNX里的網(wǎng)頁(yè)瀏覽器叫做“Voyager”,瀏覽網(wǎng)頁(yè)的速度快得象火箭。和Voyager相比,微軟的IE和網(wǎng)景的NC瀏覽器簡(jiǎn)直就是一輛破舊的老爺車。但是這個(gè)Voyager瀏覽器目前還有些BUG,QSSL公司的軟件工程師正在改進(jìn)它。
QNX的最大不同:QNX完全不像Windows,那是一件好事情。它是免費(fèi)的操作系統(tǒng),可以在網(wǎng)上下載安裝使用。它的使用和操作也十分的容易。
參考資料 >