日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件

  摘要:本文對(duì)嵌入式網(wǎng)絡(luò)計(jì)算機(jī)的主要結(jié)構(gòu)進(jìn)行了分析,并給出了實(shí)現(xiàn)方法。主要設(shè)計(jì)和實(shí)現(xiàn)了網(wǎng)絡(luò)計(jì)算機(jī)客戶端操作系統(tǒng)和基于的RDP客戶端。在網(wǎng)絡(luò)計(jì)算機(jī)客戶端操作系統(tǒng)設(shè)計(jì)中,主要從嵌入式分層的角度設(shè)計(jì)了網(wǎng)絡(luò)計(jì)算機(jī)的操作系統(tǒng),這種結(jié)構(gòu)層次清晰,功能劃分明確,而且容易實(shí)現(xiàn);在基于Linux的RDP客戶端研究中,主要分析了RDP協(xié)議,實(shí)現(xiàn)了RDP客戶端的功能。

  1 引言

  操作系統(tǒng)技術(shù)包含服務(wù)器和客戶機(jī)操作系統(tǒng)兩套技術(shù),目前支持瘦客戶機(jī)計(jì)算的服務(wù)器技術(shù)主要是VNC、Citrix Metaframe、 Services、 X 和Tarantella,服務(wù)器操作系統(tǒng)要解決多用戶、會(huì)話控制、狀態(tài)表示等一系列技術(shù)難點(diǎn)。網(wǎng)絡(luò)計(jì)算機(jī)設(shè)計(jì)中的一個(gè)主要工作就是瘦客戶機(jī)操作系統(tǒng)的設(shè)計(jì),在此我們把瘦客戶端操作系統(tǒng)稱為網(wǎng)絡(luò)計(jì)算機(jī)操作系統(tǒng)。本文從Linux 體系結(jié)構(gòu)的角度給出網(wǎng)絡(luò)計(jì)算機(jī)的Linux 體系結(jié)構(gòu),這樣更能方便表達(dá)設(shè)計(jì)和實(shí)現(xiàn)嵌入式Linux 網(wǎng)絡(luò)計(jì)算機(jī)操作系統(tǒng)的步驟。

  2 操作系統(tǒng)體系結(jié)構(gòu)

  本操作系統(tǒng)體系結(jié)構(gòu)如圖 1 所示:

  根據(jù)上面網(wǎng)絡(luò)計(jì)算機(jī)的嵌入式 Linux 體系結(jié)構(gòu),下面給出了要設(shè)計(jì)的網(wǎng)絡(luò)計(jì)算機(jī)操作系統(tǒng)各部分的主要硬件和軟件的選擇。硬件系統(tǒng):CPU(VTA C3 733MHzpro) 、內(nèi)存(64MB-512MB )、顯卡( 圖形內(nèi)核、32 兆DDR 幀緩存)、聲卡(2 聲道)、網(wǎng)卡(10/100 兆網(wǎng)卡、支持PXE 啟動(dòng))、顯示器(CRT 彩顯)、PS/2 接口的和鍵盤。硬件抽象層(HAL):顯卡驅(qū)動(dòng)、聲卡驅(qū)動(dòng)、存儲(chǔ)設(shè)備驅(qū)動(dòng)、網(wǎng)卡驅(qū)動(dòng)等。Linux 內(nèi)核:.4.18。應(yīng)用程序接口(API):Glibc2.4 等。圖形用戶界面層:Xwindows4.2 IceWM。應(yīng)用軟件:媒體播放器Mp1aper、瀏覽器mozila、終端RDP/ICA/PXE 等。

  3 各部分具體實(shí)現(xiàn)策略

  3.1 硬件層的實(shí)現(xiàn)

  該層主要實(shí)現(xiàn)系統(tǒng)初始化部分和網(wǎng)絡(luò)計(jì)算機(jī)硬件系統(tǒng)的驅(qū)動(dòng)部分。首先,在386 的實(shí)模式下對(duì)已經(jīng)調(diào)入內(nèi)存的操作系統(tǒng)代碼進(jìn)行檢查,通過(guò) 中斷獲取內(nèi)存容量信息,設(shè)置鍵盤反應(yīng)速度,設(shè)置顯示器的基本模式,獲取硬撇信息,檢測(cè)是否有PS/2 等操作。然后,就準(zhǔn)備讓CPU 進(jìn)入保護(hù)模式了。要先屏蔽中斷信號(hào),再次設(shè)置32位啟動(dòng)代碼的位置,調(diào)用操作系統(tǒng)指令1idt 和1gdt 被調(diào)用了,設(shè)置中斷向量表(idt)和全局描述符表(gdt)。最后們對(duì)8259 中斷控制器進(jìn)行編程,對(duì)防處理器進(jìn)行復(fù)位。.S 設(shè)置保護(hù)模式的標(biāo)志位,重新取指令以后,再用一條跳轉(zhuǎn)指令,進(jìn)入保護(hù)模式下的啟動(dòng)階段,同時(shí)把控制權(quán)交給. S 這段純32 位匯編代碼。. S 先做一些屏蔽中斷的準(zhǔn)備工作,然后,用一個(gè)默認(rèn)的表項(xiàng)把所有的256 個(gè)中斷向量填滿。這個(gè)默認(rèn)表項(xiàng)指向一個(gè)特殊的Linux 中斷服務(wù)程。因?yàn)長(zhǎng)inux 系統(tǒng)初始化完成后,就不使用 的中斷服務(wù)程序。Linux 有很完善的設(shè)備驅(qū)動(dòng)程序使用機(jī)制,該機(jī)制使特定硬件設(shè)備的中斷服務(wù)程序很容易被系統(tǒng)本身或用戶直接調(diào)用,而且,調(diào)用時(shí)所需的參數(shù)通常都要比 調(diào)用來(lái)得簡(jiǎn)單且高效。所以,BIOS的中斷向量在這里就被覆蓋了。.S 此后會(huì)檢查CPU 的類型,對(duì)協(xié)處理器進(jìn)行檢查,然后調(diào)用了_paging 這個(gè)子函數(shù)進(jìn)行頁(yè)初始化。到此,保護(hù)機(jī)制下內(nèi)存管理,中斷管理的框架已經(jīng)建好了。最后,Head.S 調(diào)用//main.c 中的start_kernel 函數(shù),把控制權(quán)交內(nèi)核。

圖2 是NC( )系統(tǒng)的整個(gè)引導(dǎo)過(guò)程。

  Linux 核心和設(shè)備驅(qū)動(dòng)程序之間必須有一個(gè)以標(biāo)準(zhǔn)方式進(jìn)行相互操作的接口。每一類設(shè)備驅(qū)動(dòng):字符設(shè)備、塊設(shè)備及網(wǎng)絡(luò)設(shè)備都提供通用接口,以便在需要時(shí)為核心提供服務(wù)。Linux動(dòng)態(tài)性很強(qiáng)。每次Linux 核心啟動(dòng)時(shí)如果遇到不同的物理設(shè)備,需要不同的物理設(shè)備驅(qū)動(dòng)程序。Linux 允許通過(guò)配置腳本,在核心重建時(shí)將設(shè)備驅(qū)動(dòng)包含在內(nèi)。設(shè)備驅(qū)動(dòng)可在必要時(shí)作為核心模塊動(dòng)態(tài)加載。

  3.2 內(nèi)核的實(shí)現(xiàn)

  在系統(tǒng)需求確定的前提下,設(shè)計(jì)網(wǎng)絡(luò)計(jì)算機(jī)嵌入式Linux 操作系統(tǒng)的首要步驟是嵌入式Linux 內(nèi)核的設(shè)計(jì)。內(nèi)核的選擇主要是根據(jù)硬件系統(tǒng)處理器體系結(jié)構(gòu)的不同,選擇適當(dāng)?shù)腖inux 內(nèi)核實(shí)現(xiàn)。構(gòu)建Linux 內(nèi)核之前先要根據(jù)目標(biāo)硬件平臺(tái)的配置來(lái)修改內(nèi)核選項(xiàng)。通常要進(jìn)行的修改是選擇合適的硬件支持,這些硬件主要是處理器、芯片組、網(wǎng)卡、聲卡、顯卡等設(shè)備;另外還需要設(shè)置的是文件系統(tǒng)、網(wǎng)絡(luò)接口等系統(tǒng)軟件選項(xiàng)的選擇,去除不需要的功能模塊。內(nèi)核編譯過(guò)程包括確定內(nèi)核依賴關(guān)系、生成內(nèi)核鏡像、生成內(nèi)核模塊幾個(gè)步驟。

  內(nèi)核是應(yīng)用程序和硬件之間橋梁,在瘦客戶機(jī)中,存儲(chǔ)設(shè)備和內(nèi)存是非常緊缺的資源,保持一個(gè)小的內(nèi)核既可以增強(qiáng)整個(gè)系統(tǒng)的性能,又能夠節(jié)省寶貴的存儲(chǔ)空間。因此需要一個(gè)精簡(jiǎn)的內(nèi)核支持瘦客戶機(jī),使得內(nèi)核能夠完備的支持瘦客戶機(jī)的硬件設(shè)備,又沒有冗余。在完成了硬件 HAL 層的工作,將各種驅(qū)動(dòng)源代碼都獲得并放到內(nèi)核的指定位置后,就可以開始編譯出自己想要的嵌入式Linux 內(nèi)核了。編譯結(jié)束后得到內(nèi)核文件大小為1M 字節(jié)左右,這個(gè)大小對(duì)于網(wǎng)絡(luò)計(jì)算機(jī)來(lái)說(shuō)是可以接受的。

  3.3 根文件系統(tǒng)的實(shí)現(xiàn)

  設(shè)計(jì)好 Linux 內(nèi)核后的工作是設(shè)計(jì)嵌入式Linux 的根文件系統(tǒng),Linux 內(nèi)核引導(dǎo)過(guò)程的最后一步工作就是掛接這個(gè)根文件系統(tǒng)。Linux 根文件系統(tǒng)的組織結(jié)構(gòu)沿襲 系統(tǒng)的傳統(tǒng)結(jié)構(gòu)。在設(shè)計(jì)嵌入式Linux 的根文件系統(tǒng)的時(shí)候,我們要做的工作依次是組織目錄結(jié)構(gòu)、開發(fā)應(yīng)用程序、選擇共享函數(shù)庫(kù)、存儲(chǔ)內(nèi)核鏡像和模塊、選擇設(shè)備文件、配置系統(tǒng)初始化過(guò)程和安裝根文件系統(tǒng)。

  瘦客戶機(jī)通常使用 作為存儲(chǔ)設(shè)備。引導(dǎo)程序、操作系統(tǒng)內(nèi)核、文件系統(tǒng)都保存在 中。因此需要文件系統(tǒng)和 驅(qū)動(dòng)程序來(lái)統(tǒng)一完成對(duì)Flash 設(shè)備的讀寫。由于Flash的容量小、成本高、以及使用壽命短的特點(diǎn)。

  3.4 應(yīng)用程序?qū)?API)層實(shí)現(xiàn)

  應(yīng)用程序?qū)又饕性S多 c 函數(shù)庫(kù)構(gòu)成。在Linux 中有很多函數(shù)庫(kù),滿足各種各樣的函數(shù)調(diào)用。我們用1dd 命令檢測(cè)出需要的函數(shù)庫(kù),然后根據(jù)系統(tǒng)存儲(chǔ)空間(因?yàn)榫W(wǎng)絡(luò)計(jì)算機(jī)嵌入式操作系統(tǒng)要求最后編譯出來(lái)的內(nèi)核大小不能太大)和網(wǎng)絡(luò)計(jì)算機(jī)需要滿足的應(yīng)用需求,將用到的函數(shù)庫(kù)放到API 層,或用靜態(tài)編譯的方法將涉及該函數(shù)庫(kù)的代碼直接編譯到應(yīng)用中,從而使其不依賴該函數(shù)庫(kù)。圖3 給出了我們用到的部分函數(shù)庫(kù)。

  4 基于Linux 的RDP 客戶端的設(shè)計(jì)與實(shí)現(xiàn)

  NC 系統(tǒng)的一大應(yīng)用是連接Windows2000 或Windows2003 終端系統(tǒng),使用Windows 的資源,讓用戶感覺就像直接在使用windows2003 一樣。由于Windows 終端協(xié)議經(jīng)過(guò)了多次升級(jí),到目前為止最新的是Rpd5.1 協(xié)議,該協(xié)議提供了很多RDP5.1 之前不具備的特性,如真彩色、本地打印、本地視頻等。為了給用戶提供一個(gè)真實(shí)的Windows 環(huán)境,使之具有多媒體等功能,需要研究RDP5.1,開發(fā)RDP5.1 的客戶端。

  4.1 RDP 程序模塊

  RDP 客戶端的設(shè)計(jì)主要分為兩大模塊,分別是RDP 程序模塊,客戶端底層設(shè)計(jì)模塊。RDP 程序模塊主要實(shí)現(xiàn)RDP 協(xié)議;客戶端底層設(shè)計(jì)模塊通過(guò)定制和剪裁Linux 系統(tǒng),讓RDP程序與網(wǎng)絡(luò)計(jì)算機(jī)硬件平臺(tái)整合到一起,使RDP 程序在網(wǎng)絡(luò)計(jì)算機(jī)設(shè)備上可以運(yùn)行。RDP 程序主要有RDP 協(xié)議模塊與GUI 模塊組成,它們之間保留了接口。RDP 協(xié)議模塊主要解析RDP 防議,與平臺(tái)無(wú)關(guān);GUI 模塊主要負(fù)責(zé)圖形顯示和消息上傳,與所選平臺(tái)也沒有關(guān)系。圖4 是RDP 程序結(jié)構(gòu)圖。

  RDP 程序執(zhí)行后,首先從配置文件中讀取服務(wù)器IP 地址,本機(jī)IP 地址等參數(shù),然后連接服務(wù)器,服務(wù)器連接成功后,建立窗口,下載登陸界面,隨后進(jìn)入窗口消息循環(huán),程序只處理鼠標(biāo)、鍵盤消息,出理上傳的RDP 數(shù)據(jù)。根據(jù)RDP 協(xié)議的層次結(jié)構(gòu)將整個(gè)模塊分為TCP 層、ISO 層、MCS 層、SEC 層、RDP 層。分別有文件tcp.c、iso.c、mcs.c、sec.c、rdp.c來(lái)實(shí)現(xiàn)。按功能劃分,可以劃分為RDP 回話連接、數(shù)據(jù)傳輸與解析、RDP 數(shù)據(jù)處理、數(shù)據(jù)的上傳和本地打印。

  4.2 客戶端底層設(shè)計(jì)模塊

  RDP 客戶端模塊由兩個(gè)獨(dú)立程序組成,Rdp1og 負(fù)責(zé)用戶界面和處理用戶配置,mw 為RdP 客戶端程序。在腳本rdp 中循環(huán)調(diào)用這兩個(gè)獨(dú)立程序,使用戶所見到的總是RDP 客戶端界面,可以從界面點(diǎn)擊圖標(biāo)啟動(dòng)客戶端程序。在啟動(dòng)腳本/etc/rc.d/rc.sys 中直接啟動(dòng)rdp腳本。啟動(dòng)流程如下圖5 所示。

  本文作者創(chuàng)新點(diǎn):本文從Linux 體系結(jié)構(gòu)的角度提出了網(wǎng)絡(luò)計(jì)算機(jī)操作系統(tǒng)層次結(jié)構(gòu)。根據(jù)提出的嵌入式Linux 網(wǎng)絡(luò)計(jì)算機(jī)操作系統(tǒng)層次結(jié)構(gòu),研究了基于嵌入式Linux 網(wǎng)絡(luò)計(jì)算機(jī)的操作系統(tǒng)的實(shí)現(xiàn)方法。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問(wèn)題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問(wèn)題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問(wèn)題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉