<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • QNX操作系統及網絡設備驅動模塊

    時間:2024-10-03 13:34:15 理工畢業論文 我要投稿
    • 相關推薦

    QNX操作系統及網絡設備驅動模塊

    摘要:介紹嵌入式操作系統QNX的微內核結構、基于io-net的網絡子系統、網絡設備驅動程序的組成;給出以以太網網設備驅動程序為例的詳細說明,包括初始化、從網絡設備接收數據,向網絡設備發送數據和網絡設備信息的統計。

    QNX是業界公認的X86平臺上最好的嵌入式實時操作系統之一。它具有獨一無二的微內核實時平臺,建立在微內核和完全地址空間保護基礎之上,實時、穩定、可靠,已經完成到PowerPC、MIPS、ARM等內核的移植,成為在國內廣泛應用的嵌入式實時操作系統。本文簡單介紹QNX內核和網絡結構的特點,針對目前熱門的網絡應用環境,討論QNX網絡設備驅動程序的結構和編寫。

    1 QNX內核簡介

    QNX的微內核結構是它區別于其它操作系統的顯著特點。目前嵌入式系統中,操作系統和應用程序之間的關系大概可以歸納為圖1~圖3所示的三種情況。

    平板式內存結構,如圖1所示,所有的程序都使用同一個地址空間,不加保護;應用程序可以自由訪問所有空間,效率較高,但是任何應用程序指針錯誤都可能會導致內核崩潰。

    大內核內存結構,如圖2所示,操作系統內核和各種驅動程序、網絡協議在同一個地址空間,應用程序在單獨空間;內核模塊同處于一個保護空間,運行效率高,應用程序無法直接訪問保護空間,系統穩定性大大提高。缺點是,由于內核模塊(例如網絡驅動)處于保護空間,因此調試困難,任何驅動程序的修改都要重新編譯內核,無法做到驅動的動態加載和卸載。

    QNX的微內核結構,如圖3所示,內核獨立自處于一個被保護的地址空間;驅動程序、網絡協議和應用程序處地程序空間中。

    微內核結構的優點:①驅動程序、網絡協議、文件系統等操作系統模塊和內核相互獨立,任何模塊的故障都不會導致內核的崩潰;②驅動程序、網絡協議、文件系統和應用程序都處于程序空間,都調用相同的內核API,開發與調試和應用程序沒有區別;③操作系統功能模塊可以根據需要動態地加載或卸載,不需要編譯內核。在高可靠性要求的情況下,可以編寫監視模塊,對可靠性要求高的模塊進行監視,必要的時候重新啟動或重新加載而無須重啟系統。高可靠性的內核結構使QNX具備了高可靠性嵌入式操作系統的本質特征。

    在具有高可靠性內核的基礎上,QNX的創新設計使它同樣具有很高的效率。QNX最為引人注目的地方是,它是UNIX的同胞異構體,保持了和UNIX的高度相似性,絕大多數UNIX或LINUX應用程序可以在QNX下直接編譯生成。這意味著為數眾多的穩定成熟的UNIX、LINUX應用可以直接移植到QNX這個更加穩定高效的實時嵌入式平臺上來。

    2 QNX網絡結構

    QNZ網絡子系統由三個部分組成:網絡管理模塊(io-net)、網絡協議模塊(npm-qnet.so、npm-tcpip.so)、網絡設備驅動模塊(devn-ne2000.so)。

    模塊之間的層次關系如圖4所示。

    圖4中的每個模塊各自具有不同的功能,但是它們具有一些相同的屬性。如:網絡設備驅動、TCP/IP協議棧分別對上層io-net模塊和應用程序產生數據,兩者都可以被看作數據源;同時它們也接受上層發來的數據,又可以同時被看作數據的消費者。過濾模塊對向上的數據進行篩選,分協議進行處理;對向下的數據則進行相應的轉換,如進行網絡地址轉換NAT。轉換模塊負責不同協議幀結構的轉換,在以太網的工作環境下,它就負責對IP數據報進行以太網幀的封裝和解包。

    和QNX其它服務進程一樣,QNX的網絡子系統也在內核外部空間運行。應用程序面對的是一個統一的網絡接口,硬件相關的內容被完全包裝在網絡子系統內。

    QNX網絡子系統的三個子模塊按層次分開,io-net模塊處于中心,是QNX網絡的核心和重點,其它模塊都掛接在它上面。數據和信息的流動都必須經由io-net調度與轉發,所有其它模塊所面對的就是一個單一主體。這樣的中心交換結構,屏蔽了各個模塊間相互協調的復雜細節,在很大程序上方便了模塊的編寫工作;同時,io-net還是QNX的網絡管理中心。任何網絡協議和網絡設備驅動程序都必須向io-net注冊,由它來加載,并接受io-net的配置和管理,用戶對網絡狀態的查詢和管理也是通過io-net來實現的。

    3 QNX網絡設備驅動

    QNX網絡設備驅動模塊處于網絡硬件和io-net模塊之間。驅動模塊負責配置硬件使其正常工作,向io-net報告數據收發情況,接收和傳遞數據,接受io-net的調度和管理。QNX網絡設備驅動程序依照以上功能,分為初始化、接收發送數據、網絡設備信息統計幾個功能塊。要使網絡設備工作正常,驅動程序就要對它進行一定的寄存器配置,同時,還要向QNX網絡子系統注冊自己,表明網絡設備的存在和網絡通信能力,才能為系統和應用程序所用。在初始化工作完成以后,網絡設備就進入了工作狀態,收發數據。設備信息的統計也是由設備驅動程序來完成的。

    (1)初始化

    初始化包括兩個方面,一方面是初始化網絡設備,使其正常工作;另一個方面,是向io-net正確注冊驅動模塊,表明自己的屬性,方便上層正確操作。網絡設備的初始化工作和硬件緊密相關,這里就不一一描述。

    驅動模塊向io-net加載自己的時候,系統遵循如下工作流程:

    ①io-net搜索全局的符合io_net_dll_entry。它定義了驅動的初始化函數,io-net會直接調用這個函數。

    ②初始化函數向io-net注冊驅動和相應的函數。

    ③初始化函數告訴io-net和它的模塊自己的通信能力。

    經過以上流程以后,io-net中就建立起有關此驅動程序的數據和函數調用列表。驅動程序必須正確編寫初始化函數,并將該函數正確鏈接至io_net_dll_entry。

    【QNX操作系統及網絡設備驅動模塊】相關文章:

    新型IGBT/MOSFET驅動模塊SKHI22A/B03-19

    無驅動USB認證模塊在電子商務中的應用03-07

    基于ARM9微處理器與Linux操作系統的SD驅動開發03-07

    I2C總線在uClinux操作系統下的驅動程序設計11-22

    項目驅動式模塊化教學在《常用工具軟件》中的應用03-21

    組件機制與操作系統的實現03-18

    STN-LCD彩屏模塊03-21

    ERP中的物流模塊研究12-04

    智能網絡設備開發中的硬件設計03-20

    主站蜘蛛池模板: 精品国产美女福利到在线不卡| 国产成人亚洲精品青草天美| 日产精品久久久久久久性色| 国产精品无码久久综合网| 精品国产sm捆绑最大网免费站 | 亚洲AV无码成人精品区大在线| 久久精品国产精品国产精品污| 色妞ww精品视频7777| 完整观看高清秒播国内外精品资源| 99热成人精品免费久久| 91精品美女在线| 国自产偷精品不卡在线| 日韩精品中文字幕无码一区| 无码人妻精品一区二| 久久久久99精品成人片| 国内精品久久久久久久久电影网| 杨幂国产精品福利在线观看 | 精品国产成人国产在线观看| 亚洲AV永久无码精品一百度影院| 日韩精品无码Av一区二区| 国产精品色视频ⅹxxx | 精品久久久久久久久中文字幕| 四虎国产精品永久在线观看| 四虎国产精品成人| 国产免费伦精品一区二区三区| 91av国产精品| 亚洲色图国产精品| 9久热这里只有精品| 欧美韩国精品另类综合| 精品久久香蕉国产线看观看亚洲 | 欧美在线精品一区二区三区| 精品免费久久久久国产一区| 国产一区二区三区欧美精品| 国产手机在线精品| 国产精品欧美一区二区三区 | 国产情侣大量精品视频| 国产精品国产三级国产潘金莲| 伊人久久大香线蕉精品| 成人国产精品动漫欧美一区| 国产精品毛片无码| 国产精品主播一区二区|