新聞中心
隨著物聯(lián)網(wǎng)技術(shù)的逐步普及,嵌入式設(shè)備的應(yīng)用場景越來越廣泛。然而,嵌入式設(shè)備常常面臨一個問題:如何在硬件資源有限的情況下,實現(xiàn)更為友好的操作界面?而uclinux圖形界面的出現(xiàn),則為這一問題提供了一種解決方案。

十載的德惠網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都全網(wǎng)營銷的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整德惠建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)公司從事“德惠網(wǎng)站設(shè)計”,“德惠網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實執(zhí)行。
一、uclinux圖形界面概述
uclinux圖形界面,是一種在uclinux系統(tǒng)上運行的圖形用戶界面。與傳統(tǒng)的圖形界面不同的是,uclinux圖形界面的設(shè)計考慮了嵌入式設(shè)備硬件資源有限的特點,因此可以實現(xiàn)在嵌入式設(shè)備上更為流暢和高效的操作體驗。
與此同時,uclinux圖形界面還擁有可擴展性和可定制化的特點,可以方便地進(jìn)行定制和開發(fā),滿足不同場景下的需求。這意味著,uclinux圖形界面可以更好地適應(yīng)不同的嵌入式設(shè)備,為用戶帶來更加便捷的操作體驗。
二、uclinux圖形界面的優(yōu)勢
1.流暢且高效
相較于傳統(tǒng)的圖形界面,uclinux圖形界面可以更好地適應(yīng)嵌入式設(shè)備的資源限制。它可以確保在資源較少的情況下,仍能保持流暢、高效的操作體驗。這對于那些追求更高用戶體驗的設(shè)備來說,尤為重要。
2.可擴展性
uclinux圖形界面還具有可擴展性的特點。用戶可以根據(jù)自己的需求,自由地添加和定制不同的擴展功能。這種自由度和定制化程度,是傳統(tǒng)圖形界面所沒有的。
3.可定制化
uclinux圖形界面還可以根據(jù)用戶的實際需求進(jìn)行定制化設(shè)計。這意味著可以根據(jù)不同的場景,定制不同的操作界面。例如,在醫(yī)療設(shè)備中,可以為醫(yī)生和患者建立不同的操作界面,以滿足不同的需求。
三、uclinux圖形界面的應(yīng)用案例
1.智能家居
智能家居作為物聯(lián)網(wǎng)的重要應(yīng)用領(lǐng)域之一,嵌入式設(shè)備在其中有著廣泛應(yīng)用。通過uclinux圖形界面的應(yīng)用,用戶可以在家中通過手機、平板等設(shè)備對家中的智能設(shè)備進(jìn)行操作和控制。并且,由于uclinux圖形界面的流暢和高效,用戶可以即時完成各種操作,提升了用戶的使用體驗。
2.工業(yè)設(shè)備
在工廠生產(chǎn)中,大量的嵌入式設(shè)備用于控制和監(jiān)測生產(chǎn)流程。通過uclinux圖形界面的應(yīng)用,工人們可以更加直觀地了解生產(chǎn)過程,方便實時監(jiān)測和控制。并且,由于uclinux圖形界面的可定制化特性,可以為每個工人自定義不同的操作界面,使得操作更為便捷。
3.醫(yī)療設(shè)備
在醫(yī)療設(shè)備中,對嵌入式設(shè)備的要求非常高。通過uclinux圖形界面的應(yīng)用,醫(yī)生和患者可以通過不同的界面,滿足各自的需求。例如,醫(yī)生可以在操作界面中查看病人的生命體征等數(shù)據(jù),而患者可以通過操作界面自主地調(diào)整藥物的劑量和設(shè)置。
四、結(jié)語
隨著物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,嵌入式設(shè)備已經(jīng)成為了人們?nèi)粘I畹闹匾M成部分。在這種情況下,如何在硬件資源有限的情況下,實現(xiàn)更加友好的操作界面,成為了一個亟待解決的問題。而uclinux圖形界面則為這一問題提供了一種有效的解決方案,通過其流暢、高效、可擴展、可定制化的特性,可以幫助嵌入式設(shè)備更好地適應(yīng)不同場景下的需求,為用戶帶來更便捷的操作體驗。
相關(guān)問題拓展閱讀:
- LINUX系統(tǒng)介紹
- 嵌入式Linux是uclinux嗎?能用qt嗎?
- 如何配置uClinux.內(nèi)核使其支持jffs格式的文件系統(tǒng)
LINUX系統(tǒng)介紹
嵌入式Linux系統(tǒng)的設(shè)計與應(yīng)用
摘要:隨著嵌入式Linux系統(tǒng)的迅速發(fā)展,嵌入式Linux已發(fā)展成為嵌入式操作系統(tǒng)的一個重要分支。本文介紹了嵌入式Linux的設(shè)計和幾種流行的嵌入式Linux系統(tǒng)。
關(guān)鍵詞:嵌入式Linux
一、引言
嵌入式系統(tǒng)(Embedded Systems)是根據(jù)應(yīng)用的要求,將操作系統(tǒng)和功能軟件集成于計算機硬件系統(tǒng)之好行中,從而實現(xiàn)軟件與硬件一體化的計算機系統(tǒng)。嵌入式系統(tǒng)出現(xiàn)于60年代晚期,它最初被用于控制機電交換機,如今已被廣泛的應(yīng)用于工業(yè)制造、過程控制、通訊、儀器、儀表、汽車、船舶、航空、航天、軍事裝備、消費類產(chǎn)品等眾多領(lǐng)域。嵌入式系統(tǒng)在數(shù)量上遠(yuǎn)遠(yuǎn)超友嘩嘩過了各種通用計算機系統(tǒng):計算機系統(tǒng)核心CPU,每年在全球范圍內(nèi)的產(chǎn)量大概在二十億顆左右,其中超過80%應(yīng)用于各類專用性很強的嵌入式系統(tǒng)。
一般的說,凡是帶有微處理器的專用軟硬件系統(tǒng)都可以稱為嵌入式系統(tǒng)。和通用的計算平臺相比,嵌入式系統(tǒng)往往具有功能單一、體積小、功耗低、可靠性高、剪裁性好、軟硬件集成度高、計算能力相對較低等特點。多年來,嵌入式設(shè)備中沒有操作系統(tǒng),其主要原因有二:首先,諸如洗衣機、微波爐、電冰箱這樣的設(shè)備僅僅需要一道簡單的控制程序,以管理數(shù)量有限的按鈕和指示燈,沒有使用操作系統(tǒng)的必要;其次,它往往只具有有限的硬件資源,不足以支持一個操作系統(tǒng)。
然而,隨著硬件的發(fā)展,嵌入式系統(tǒng)變得越來越復(fù)雜,最初的控制程序中逐步的加入了許多功能,而這些功能中有很多可以由操作系統(tǒng)提供。于是,在70年蘆裂代末期出現(xiàn)了嵌入式操作系統(tǒng)(Embedded Operating Systems),它的出現(xiàn)大大簡化了應(yīng)用程序設(shè)計,并可以有效的保障軟件質(zhì)量和縮短開發(fā)周期。簡單的ES一般并不使用操作系統(tǒng),只包含一些控制流程,但是隨著嵌入式操作系統(tǒng)在復(fù)雜性上的增長,簡單的流程控制就不能滿足系統(tǒng)的要求,這是就必須考慮使用操作系統(tǒng)做系統(tǒng)軟件。因此,嵌入式操作系統(tǒng)就應(yīng)運而生。
隨著EOS的廣泛應(yīng)用,業(yè)界已推出一些應(yīng)用比較成功的EOS產(chǎn)品。歸納起來EOS應(yīng)該具有以下幾個特點:小巧、實時性、可裝卸、固化代碼、弱交互性、強穩(wěn)定性和統(tǒng)一的接口。目前使用最多的EOS產(chǎn)品包括有:Vxwork、QNX、PalmOS、WindowsCE、pSOS、Hopen OS(國內(nèi)凱思集團公司自主研制開發(fā))等。其中,Vxwork使用最為廣泛、市場占有率更高,其突出特點是實時性強(采用優(yōu)先級搶占和輪轉(zhuǎn)調(diào)度等機制),除此之外,其可靠性和可剪裁性也相當(dāng)不錯。QNX是一種伸縮性極佳的系統(tǒng),其核心加上實時POSIX環(huán)境和一個完整的窗口系統(tǒng)還不到一兆。相比之下,Microsoft WinCE的核心體積龐大,實時性能也差強人意,但由于Windows系列友好的用戶界面和為程序員所熟悉的API,并捆綁IE、Office等應(yīng)用程序,正逐漸獲得更大的市場份額。而與這些商業(yè)化的操作系統(tǒng)相比,Linux已經(jīng)越來越受到人們的注意。
二、嵌入式Linux概述
Linux是一個成熟而穩(wěn)定的網(wǎng)絡(luò)操作系統(tǒng)。將Linux植入嵌入式設(shè)備具有眾多的優(yōu)點。首先,Linux的源代碼是開放的,任何人都可以獲取并修改,用之開發(fā)自己的產(chǎn)品。其次,Lirmx是可以定制的,其系統(tǒng)內(nèi)核最小只有約134kB。一個帶有中文系統(tǒng)和圖形用戶界面的核心程序也可以做到不足1MB,并且同樣穩(wěn)定。另外,它和多數(shù)Unix系統(tǒng)兼容,應(yīng)用程序的開發(fā)和移植相當(dāng)容易。同時,由于具有良好的可移植性,人們已成功使Linux運行于數(shù)百種硬件平臺之上。
然而,Linux并非專門為實時性應(yīng)用而設(shè)計,因此如果想在對實時性要求較高的嵌入式系統(tǒng)中運行Linux,就必須為之添加實時軟件模塊。這些模塊運行的內(nèi)核空間正是操作系統(tǒng)實現(xiàn)進(jìn)程調(diào)度、中斷處理和程序執(zhí)行的部分,因此錯誤的代碼可能會破壞操作系統(tǒng),進(jìn)而影響整個系統(tǒng)的可靠性和穩(wěn)定性。Linux的眾多優(yōu)點還是使它在嵌入式領(lǐng)域獲得了廣泛的應(yīng)用,并出現(xiàn)了數(shù)量可觀的嵌入式Linux系統(tǒng)。其中有代表性的包括:uClinux、ETLinux、ThinLinux、LOAF等。ETLinux通常用于在小型工業(yè)計算機,尤其是PC/104模塊。ThinLinux面向?qū)S玫恼障鄼C服務(wù)器、X-10控制器、MP3播放器和其它類似的嵌入式應(yīng)用。LOAF是Linux On A Floppy的縮略語,它運行在386平臺上。
三、Linux作為嵌入式操作系統(tǒng)的優(yōu)勢
Linux作為嵌入式操作系統(tǒng)的優(yōu)勢主要有以下幾點:
1、 可應(yīng)用于多種硬件平臺。Linux已經(jīng)被移植到多種硬件平臺,這對于經(jīng)費,時間受限制的研究與開發(fā)項目是很有吸引力的。原型可以在標(biāo)準(zhǔn)平臺上開發(fā)后移植到具體的硬件上,加快了軟件與硬件的開發(fā)過程。Linux采用一個統(tǒng)一的框架對硬件進(jìn)行管理,從一個硬件平臺到另一個硬件平臺的改動與上層應(yīng)用無關(guān)。Linux可以隨意地配置,不需要任何的許可證或商家的合作關(guān)系,源代碼可以免費得到。這使得采用Linux作為操作系統(tǒng)不會遇到任何關(guān)于版權(quán)的糾紛。毫無疑問,這會節(jié)省大量的開發(fā)費用。本身內(nèi)置網(wǎng)絡(luò)支持,而目前嵌入式系統(tǒng)對網(wǎng)絡(luò)支持要求越來越高。Linux的高度模塊化使添加部件非常容易。
2、 Linux是一個和Unix相似、以內(nèi)核為基礎(chǔ)的、具有完全的內(nèi)存訪問控制,支持大量硬件(包括X86,Alpha、ARM和Motorola等現(xiàn)有的大部分芯片)等特性的一種通用操作系統(tǒng)。其程序源碼全部公開,任何人可以修改并在GUN通用公共許可證(GNU General Public License)下發(fā)行。這樣,開發(fā)人員可以對操作系統(tǒng)進(jìn)行定制,適應(yīng)其特殊需要。
3、 Linux帶有Unix用戶熟悉的完善的開發(fā)工具,幾乎所有的Unix系統(tǒng)的應(yīng)用軟件都已移植到了Linux上。Linux還提供了強大的網(wǎng)絡(luò)功能,有多種可選擇窗口管理器(X Windows)。其強大的語言編譯器GCC,C++等也可以很容易得到,不但成熟完善,而且使用方便。
四、嵌入式Linux的建立
完整的嵌入式Linux解決方案應(yīng)包括嵌入式Linux操作系統(tǒng)內(nèi)核、運行環(huán)境、圖形化界面和應(yīng)用軟件等。由于嵌入式設(shè)備的特殊要求,嵌入式Linux解決方案中的內(nèi)核、環(huán)境、GUI等都與標(biāo)準(zhǔn)Linux有很大不同,其主要挑戰(zhàn)是如何在狹小的FLASH、ROM和內(nèi)存中實現(xiàn)高質(zhì)量的任務(wù)實時調(diào)度、圖形化顯示、網(wǎng)絡(luò)通信等功能。
1、 精簡內(nèi)核
Linux內(nèi)核有自己的結(jié)構(gòu)體系,其中進(jìn)程管理、內(nèi)存管理和文件系統(tǒng)是其最基本的3個子系統(tǒng)。圖1簡單表示了它的框架。用戶進(jìn)程可直接通過系統(tǒng)調(diào)用或者函數(shù)庫來訪問內(nèi)核資源。正因為Linux內(nèi)核具有這樣的結(jié)構(gòu),因此修改內(nèi)核時必須注意各個子系統(tǒng)之間的協(xié)調(diào)。
嵌入式Linux內(nèi)核一般由標(biāo)準(zhǔn)Linux內(nèi)核裁剪而來。用戶可根據(jù)需求配置系統(tǒng),剔除不需的服務(wù)功能、文件系統(tǒng)和設(shè)備驅(qū)動。經(jīng)過裁剪、壓縮后的系統(tǒng)內(nèi)核一般只有300k左右,十分適合嵌入式設(shè)備。同標(biāo)準(zhǔn)Linux不同的是嵌入式Linux必須要實現(xiàn)從FLASH或ROM的啟動。標(biāo)準(zhǔn)Linux啟動代碼實現(xiàn)了系統(tǒng)初始化和從軟盤、硬盤O盤區(qū)引導(dǎo)內(nèi)核。嵌入式Linux一般保存在FLASH或ROM中,標(biāo)準(zhǔn)LILO無法引導(dǎo)。在支持直接從FLASH設(shè)備引導(dǎo)的系統(tǒng)中,如華恒公司的uClinux,引導(dǎo)程序主要完成對硬件系統(tǒng)的初始化工作和操作系統(tǒng)的解壓、移位工作。在不支持直接從FLASH引導(dǎo)的系統(tǒng)中,F(xiàn)LASH設(shè)備只能作為非引導(dǎo)磁盤使用。此時,可采用先從硬盤或軟盤加載一個小操作系統(tǒng),如嵌入式DOS,然后再執(zhí)行”Loadlin”加載程序從FLASH引導(dǎo)嵌入式Linux。
對標(biāo)準(zhǔn)Linux的修改主要是虛擬內(nèi)存和調(diào)度程序部分的改動。因為標(biāo)準(zhǔn)Linux系統(tǒng)使用虛擬內(nèi)存管理的目的是為了能同時運行多個進(jìn)程,但是這樣每個待運行的進(jìn)程所能分配的CPU時間片就受限制,資源的使用效率就低。這樣對于實時性要求較高的嵌入式系統(tǒng)來說,實時任務(wù)往往要求CPU具有很高的突發(fā)處理能力,即在有些時候需要極高的處理效率,因此需要屏蔽內(nèi)核的虛擬內(nèi)存管理機制。對于無硬盤設(shè)備的嵌入式系統(tǒng),不必采用虛存管理。強實時需求的嵌入式應(yīng)用可以通過修改任務(wù)調(diào)度模塊實現(xiàn),主要是在內(nèi)核和設(shè)備驅(qū)動程序中加入了許多切換點。在該點處,系統(tǒng)檢測是否存在未處理的緊急中斷,有則剝奪內(nèi)核的運行,及時處理中斷。實現(xiàn)實時的一個較好的方法是在標(biāo)準(zhǔn)的Linux內(nèi)核上增加一個實時內(nèi)核,標(biāo)準(zhǔn)Linux內(nèi)核作為一個任務(wù)運行于實時內(nèi)核上,強實時性任務(wù)也直接運行在實時內(nèi)核上,如RT-Linux等。
文件系統(tǒng)是嵌入式Linux操作系統(tǒng)必不可少的。但標(biāo)準(zhǔn)Linux支持大量的文件系統(tǒng),因此除了滿足系統(tǒng)的正常運行需要而保留一種外,其它的全部可以刪除,利用原有的設(shè)置選項可以移除。一般嵌入式設(shè)備文件系統(tǒng)主要使用RamDisk技術(shù)和網(wǎng)絡(luò)文件系統(tǒng)技術(shù)。RamDisk可駐留于Flash,運行時加載到內(nèi)存中。
2、 精簡運行環(huán)境
Linux通常的運行環(huán)境指用戶運行任何應(yīng)用的基礎(chǔ)設(shè)施,主要包括函數(shù)庫和基本命令集等。標(biāo)準(zhǔn)Linux系統(tǒng)同時向用戶提供了靜態(tài)和動態(tài)函數(shù)庫。靜態(tài)函數(shù)庫在生成應(yīng)用時直接鏈接到用戶應(yīng)用中。動態(tài)庫在應(yīng)用運行時才鏈接。由于嵌入式系統(tǒng)應(yīng)用一般都是在開發(fā)平臺上預(yù)先生成的,因此嵌入式系統(tǒng)只需向應(yīng)用提供動態(tài)函數(shù)庫。Linux應(yīng)用運行所需的函數(shù)庫主要有C庫、數(shù)學(xué)庫、線程庫、加密庫、網(wǎng)絡(luò)通信庫等。其中最基本的是C語言的運行庫glib。這個庫主要完成基本的輸入輸出,內(nèi)存訪問,文件處理。一個標(biāo)準(zhǔn)的glib庫大約要1200kB存儲空間,考慮到嵌入式Linux內(nèi)核往往很小,這種運行庫實在太大,我們做了一些精簡的工作,方法有兩種:(1)、使用靜態(tài)連接的方法,完全不使用運行庫動態(tài)連接;(2)、對這個庫的函數(shù)進(jìn)行精簡。
在一個桌面系統(tǒng)上,使用動態(tài)連接可以帶來許多好處。使用動態(tài)連接庫,可以讓應(yīng)用程序跟函數(shù)庫的更新、升級分離,便于維護(hù),可以讓同時運行的多個程序共享一段代碼。但是,在嵌入式系統(tǒng)中,很少有多個程序并行的可能,程序的維護(hù),尤其是庫函數(shù)的維護(hù)更新是不常見的。這時,使用靜態(tài)連接的優(yōu)勢就極為明顯。因為靜態(tài)連接可以只將庫中用到的部分連接進(jìn)程序。在應(yīng)用程序較少(小于5)的情況下,靜態(tài)連接可以達(dá)到較好的結(jié)果。為了便于將來擴充的需要,我們也采用第二種方法,針對我們的需要,對庫函數(shù)的內(nèi)容進(jìn)行精簡,只保留一些基本功能,還有一種方法是采用其它的C語言運行庫。但是這些庫對兼容性影響很大。
基本命令集同樣是運行用戶應(yīng)用的基礎(chǔ),主要包括初始化進(jìn)程init,終端獲取getty、Shell和基本命令等。嵌入式系統(tǒng)的啟動過程可能與標(biāo)準(zhǔn)Linux不同,例如跳過登錄過程直接啟動GUI等。這就要求修改init,getty等。標(biāo)準(zhǔn)Linux命令集同樣由于體積問題無法直接應(yīng)用于嵌入式環(huán)境。目前,小命令集的解決方法主要有集成方法和匯編方法兩種。集成方法采用集成公共部分減少命令集整體體積,用C實現(xiàn),有較好的平臺移植性;匯編方法則采用匯編編程減少每個命令的體積.這樣可使體積很小但其平臺移植性較差。
3、 嵌入式Linux下的GUI
GUI在嵌入式系統(tǒng)或者實時系統(tǒng)中的地位越來越重要,比如PDA、DVD播放機、WAP手機等,都需要一個完整.漂亮的圖形用戶界面。這些系統(tǒng)對GUI的基本要求包括:(1)、輕型、占用資源少;(2)、高性能;(3)、高可靠性;(4)、可配置。這些也成為評價嵌入式系統(tǒng)的重要指標(biāo)。目前,嵌入式Linux上的GUI主要有winCE、Micro Window、緊縮的X Window、MiniGUI(國內(nèi)做得較好的自由軟件之一)。標(biāo)準(zhǔn)Linux的Xfree86由于體積龐大,運行環(huán)境要求高,無法運行于嵌入式環(huán)境。嵌入式GUI主要通過削減功能,降低性能來實現(xiàn)體積小和占用資源少。目前嵌入式Linux上的GUI環(huán)境主要有兩類:X類和win32類。X類GUI分為服務(wù)方和客戶方兩方。服務(wù)器方提供鼠標(biāo)、鍵盤處理和顯示功能,客戶方是用戶應(yīng)用,服務(wù)方和客戶方通過socket接口和X協(xié)議通信。采用該方式十分有利于遠(yuǎn)程網(wǎng)絡(luò)圖形化服務(wù),客戶方和服務(wù)方可通過網(wǎng)絡(luò)實現(xiàn)X協(xié)議和圖形顯示。典型的X類GUI有Micro Window、緊縮的X Window等。win32類的GUI不存在客戶方和服務(wù)方,每個任務(wù)都自成一體,任何任務(wù)間的切換、事件分發(fā)由專門的管理任務(wù)負(fù)責(zé)。如wiCE、MiniGUI就是類似于win32類的GUI。
五、當(dāng)前流行的幾種嵌入式Linux系統(tǒng)
除了智能數(shù)字終端領(lǐng)域以外,Linux在移動計算平臺、智能工業(yè)控制、金融業(yè)終端系統(tǒng),甚至軍事領(lǐng)域都有著廣泛的應(yīng)用前景。這些Linux被統(tǒng)稱為”嵌入式Linux”。
1、RT-Linux
這是由美國墨西哥理工學(xué)院開發(fā)的嵌入式Linux操作系統(tǒng)。到目前為止,RT-Linux已經(jīng)成功地應(yīng)用于航天飛機的空間數(shù)據(jù)采集、科學(xué)儀器測控和電影特技圖像處理等廣泛領(lǐng)域。RT-Linux開發(fā)者并沒有針對實時操作系統(tǒng)的特性而重寫Linux的內(nèi)核,因為這樣做的工作量非常大,而且要保證兼容性也非常困難。為此,RT-Linux提出了精巧的內(nèi)核,并把標(biāo)準(zhǔn)的Linux核心作為實時核心的一個進(jìn)程,同用戶的實時進(jìn)程一起調(diào)度。這樣對Linux內(nèi)核的改動非常小,并且充分利用了Linux下現(xiàn)有的豐富的軟件資源。
2、uClinux
uCLinux是Lineo公司的主打產(chǎn)品,同時也是開放源碼的嵌入式Linux的典范之作。uCLinux主要是針對目標(biāo)處理器沒有存儲管理單元MMU(Memory Management Unit) 的嵌入式系統(tǒng)而設(shè)計的。它已經(jīng)被成功地移植到了很多平臺上。由于沒有MMU,其多任務(wù)的實現(xiàn)需要一定技巧。uCLinux是一種優(yōu)秀的嵌入式Linux版本,是micro-Conrol-Linux的縮寫。它秉承了標(biāo)準(zhǔn)Linux的優(yōu)良特性,經(jīng)過各方面的小型化改造,形成了一個高度優(yōu)化的、代碼緊湊的嵌入式Linux。雖然它的體積很小,卻仍然保留了Linux的大多數(shù)的優(yōu)點:穩(wěn)定、良好的移植性、優(yōu)秀的網(wǎng)絡(luò)功能、對各種文件系統(tǒng)完備的支持和標(biāo)準(zhǔn)豐富的API。它專為嵌入式系統(tǒng)做了許多小型化的工作,目前已支持多款CPU。其編譯后目標(biāo)文件可控制在幾百KB數(shù)量級,并已經(jīng)被成功地移植到很多平臺上。
3、Embedix
Embedix是由嵌入式Linux行業(yè)主要廠商之一Luneo推出的,是根據(jù)嵌入式應(yīng)用系統(tǒng)的特點重新設(shè)計的Linux發(fā)行版本。Embedix提供了超過25種的Linux系統(tǒng)服務(wù),包括Web服務(wù)器等。系統(tǒng)需要最小8MB內(nèi)存,3MB ROM或快速閃存。Embedix基于Linux 2.2內(nèi)核,并已經(jīng)成功地移植到了Intel x86和PowerPC處理器系列上。像其它的Linux版本一樣,Embedix可以免費獲得。Luneo還發(fā)布了另一個重要的軟件產(chǎn)品,它可以讓在Windows CE上運行的程序能夠在Embedix上運行。Luneo還將計劃推出Embedix的開發(fā)調(diào)試工具包、基于圖形界面的瀏覽器等。可以說,Embedix是一種完整的嵌入式Linux解決方案。
4、Xlinux
XLinux是由美國網(wǎng)虎公司推出,主要開發(fā)者是陳盈豪。他在加盟網(wǎng)虎幾個月后便開發(fā)出了基于XLinux的、號稱是世界上最小的嵌入式Linux系統(tǒng),內(nèi)核只有143KB,而且還在不斷減小。XLinux核心采用了”超字元集”專利技術(shù),讓Linux核心不僅可能與標(biāo)準(zhǔn)字符集相容,還含蓋了1 2個國家和地區(qū)的字符集。因此,XLinux在推廣Linux的國際應(yīng)用方面有獨特的優(yōu)勢。
5、PoketLinux
由Agenda公司采用、作為其新產(chǎn)品”VRDA”的嵌入式Linux操作系統(tǒng)。它可以提供跨操作系統(tǒng)構(gòu)造統(tǒng)一的、標(biāo)準(zhǔn)化的和開放的信息通信基礎(chǔ)結(jié)構(gòu),在此結(jié)構(gòu)上實現(xiàn)端到端方案的完整平臺。PoketLinux資源框架開放,使普通的軟件結(jié)構(gòu)可以為所有用戶提供一致的服務(wù)。PoketLinux平臺使用戶的視線從設(shè)備、平臺和網(wǎng)絡(luò)上移開,由此引發(fā)了信息技術(shù)新時代的產(chǎn)生。在PoketLinux中,稱之為用戶化信息交換(CIE),也就是提供和訪問為每個用戶需求而定制的”主題”信息的能力,而不管正在使用的設(shè)備是什么。
6、MidoriLinux
由Traneta公司推出的MidoriLinux操作系統(tǒng)代碼開放,在GUN普通公共許可(GPL)下發(fā)布,可以在http://midori.tranet上立即獲得。該公司有個名為”MidoriLinux計劃”?!盡idoriLinux”這個名字來源于日本的”綠色”—Midori,用來反映其Linux操作系統(tǒng)的環(huán)保外觀。
7、紅旗嵌入式Linux
由北京中科院紅旗軟件公司推出的嵌入式Linux是國內(nèi)做得較好的一款嵌入式操作系統(tǒng)。目前,中科院計算所自行開發(fā)的開放源碼的嵌入式操作系統(tǒng)—Easy Embedded OS(EEOS)也已經(jīng)開始進(jìn)入實用階段了。該款嵌入式操作系統(tǒng)重點支持p-Java。系統(tǒng)目標(biāo)一方面是小型化,另一方面能重用Linux的驅(qū)動和其它模塊。由于有中科院計算所的強大科研力量做后盾,EEOS有望發(fā)展成為功能完善、穩(wěn)定、可靠的國產(chǎn)嵌入式操作系統(tǒng)平臺。
六、結(jié)束語
由于Linux是一個內(nèi)核源代碼開放、具備一整套工具鏈、有強大的網(wǎng)絡(luò)支持及成本低廉的操作系統(tǒng),因此嵌入式Linux自誕生起就秉承了這眾多獨特優(yōu)勢,這使它正在并越來越多地受到人們的關(guān)注。據(jù)Even Data數(shù)據(jù)顯示,期望使用嵌入式Linux的用戶從2023年的11%增到2023年27%,而同期Vxwork只是從16%到18%,Win CE從9%到14%。另外,在嵌入式Linux的各種應(yīng)用市場中,通信(語音和數(shù)據(jù))名列之一,2023年的銷售額是1300萬美元,而2023年預(yù)計將達(dá)到1.26億美元,可以預(yù)見,嵌入式Linux將在未來的通信用嵌入式操作系統(tǒng)中占據(jù)強有力的地位
Linux是目前十分火爆的操作系統(tǒng)。它是由芬蘭赫爾辛基大學(xué)的一個大學(xué)生Linus B. Torvolds在1991年首次編寫的。標(biāo)志性圖標(biāo)是一個可愛的小企鵝。
Linux是一種類Unix系統(tǒng),Linus當(dāng)時編寫它的目的是為了替代一種名叫Minix的操作系統(tǒng)。Minix是由一個名叫Andrew Tannebaum的計算機教授編寫的,當(dāng)時由于Unix是一個商業(yè)軟件,其源代碼是不能拿來進(jìn)行教學(xué)的,Andrew教授就自己編寫了一個系統(tǒng)用于教學(xué)。最
初的Minix用一張軟盤就能裝下,麻雀雖小、五臟俱全,Minix具有一般操作系統(tǒng)的特征,它同時兼容Unix系統(tǒng)。
Linux是一個免費的操作系統(tǒng),用戶可以免費獲得其源代碼,并能夠隨意修改。它是在共用許可證GPL(General Public License)保護(hù)下的自由軟件,也有好幾種版本,如Red Hat Linux、Slackware,以及國內(nèi)的Xteam Linux等。
Linux具有許多Unix系統(tǒng)的功能和特點,能夠兼容Unix,但無需支付Unix高額的費用。比如一個Unix程序員在單位可以在Unix系統(tǒng)上進(jìn)行工作,回到家里在Linux系統(tǒng)上也能完成同樣的工作,而不必重新購買Unix。要知道Unix的價格比常見的Windows要高出若干倍,和Linux的低廉更是相距甚遠(yuǎn)。
Linux的應(yīng)用也十分廣泛。Sony最新的PS2游戲機就采用了Linux作為系統(tǒng)軟件,使PS2搖身一變,成為了一臺Linux工作站。著名的電影《泰坦尼克號》的數(shù)字技術(shù)合成工作就是利用100多臺Linux服務(wù)器來完成的。
2023年8月17日,Linux發(fā)布了最新的Linux 2.4.9版,它也已經(jīng)十歲了。
Linux的優(yōu)點
Linux的流行是因為它具有許多誘人之處。
1、完全免費
Linux是一款免費的操作系統(tǒng),用戶可以通過網(wǎng)絡(luò)或其他途徑免費獲得,并可以任意修改其源代碼。這是其他的操作系統(tǒng)所做不到的。正是由于這一點,來自全世界的無數(shù)程序員參與了Linux的修改、編寫工作,程序員可以根據(jù)自己的興趣和靈感對其進(jìn)行改變。這讓Linux吸收了無數(shù)程序員的精華,不斷壯大。
2、完全兼容POSIX 1.0標(biāo)準(zhǔn)
這使得可以在Linux下通過相應(yīng)的模擬器運行常見的DOS、Windows的程序。這為用戶從Windows轉(zhuǎn)到Linux奠定了基礎(chǔ)。許多用戶在考慮使用Linux時,就想到以前在Windows下常見的程序是否能正常運行,這一點就消除了他們的疑慮。
3、多用戶、多任務(wù)
Linux支持多用戶,各個用戶對于自己的文件設(shè)備有自己特殊的權(quán)利,保證了各用戶之間互不影響。多任務(wù)則是現(xiàn)在電腦最主要的一個特點,Linux可以使多個程序同時并獨立地運行。
4、良好的界面
Linux同時具有字符界面和圖形界面。在字符界面用戶可以通過鍵盤輸入相應(yīng)的指令來進(jìn)行操作。它同時也提供了類似Windows圖形界面的X-Windows系統(tǒng),用戶可以使用鼠標(biāo)對其進(jìn)行操作。在X-Windows環(huán)境中就和在Windows中相似,可以說是一個Linux版的Windows。
5、豐富的網(wǎng)絡(luò)功能
互聯(lián)網(wǎng)是在Unix的基礎(chǔ)上繁榮起來的,Linux的網(wǎng)絡(luò)功能當(dāng)然不會遜色。它的網(wǎng)絡(luò)功能和其內(nèi)核緊密相連,在這方面Linux要優(yōu)于其他操作系統(tǒng)。在Linux中,用戶可以輕松實現(xiàn)網(wǎng)頁瀏覽、文件傳輸、遠(yuǎn)程登陸等網(wǎng)絡(luò)工作。并且可以作為服務(wù)器提供WWW、FTP、E-Mail等服務(wù)。
6、可靠的安全、穩(wěn)定性能
Linux采取了許多安全技術(shù)措施,其中有對讀、寫進(jìn)行權(quán)限控制、審計跟蹤、核心授權(quán)等技術(shù),這些都為安全提供了保障。Linux由于需要應(yīng)用到網(wǎng)絡(luò)服務(wù)器,這對穩(wěn)定性也有比較高的要求,實際上Linux在這方面也十分出色。
7、支持多種平臺
Linux可以運行在多種硬件平臺上,如具有x86、680×0、SPARC、Alpha等處理器的平臺。此外Linux還是一種嵌入式操作系統(tǒng),可以運行在掌上電腦、機頂盒或游戲機上。2023年1月份發(fā)布的Linux 2.4版內(nèi)核已經(jīng)能夠完全支持Intel 64位芯片架構(gòu)。同時Linux也支持多處理器技術(shù)。多個處理器同時工作,使系統(tǒng)性能大大提高。
Linux的不足
由于在現(xiàn)在的個人電腦操作系統(tǒng)行業(yè)中,微軟的Windows系統(tǒng)仍然占有大部分的份額,絕大多數(shù)的軟件公司都支持Windows。這使得Windows上的應(yīng)用軟件應(yīng)有盡有,而其他的操作系統(tǒng)就要少一些。許多用戶在換操作系統(tǒng)的時候都會考慮以前的軟件能否繼續(xù)使用,換了操作系統(tǒng)后是否會不方便。雖然Linux具有DOS、Windows模擬器,可以運行一些Windows程序,但Windows系統(tǒng)極其復(fù)雜,模擬器所模擬的運行環(huán)境不可能完全與真實的Windows環(huán)境一模一樣,這就使得一些軟件無法正常運行。
許多硬件設(shè)備面對Linux的驅(qū)動程序也不足,不少硬件廠商是在推出Windows版本的驅(qū)動程序后才編寫Linux版的。但一些大硬件廠商在這方面做得還不錯,他們的Linux版驅(qū)動程序一般都推出得比較及時。
軟件支持的不足是Linux更大的缺憾,但隨著Linux的發(fā)展,越來越多的軟件廠商會支持Linux,它應(yīng)用的范圍也越來越廣。這只小企鵝的前景是十分光明的。
嵌入式Linux是uclinux嗎?能用qt嗎?
uclinux是嵌入式linux的一種,嵌入式linux還包括rtlinux等
QT可以銷模用在嵌入式linux下,rtlinux下虧返緩有現(xiàn)成的,uclinux下需要世螞移植
嵌高數(shù)入式Linux-QT零基礎(chǔ)視謹(jǐn)襪頻教程祥念激
如何配置uClinux.內(nèi)核使其支持jffs格式的文件系統(tǒng)
目前flash的文件系統(tǒng)比較多,用的比較多的就是JFFS2文件系統(tǒng)?;贜OR flash上的JFFS2文件系統(tǒng)可以說算是比較成熟了,支持NAND flash的JFFS2也已經(jīng)發(fā)布了。源代碼可以到
上面下載。但是在我的測試過程中,在nand flash上掛接的JFFS2文件系統(tǒng)很不穩(wěn)定,經(jīng)常有CRC錯誤產(chǎn)生。特別是進(jìn)行寫操作的時候,每次復(fù)位都會產(chǎn)生CRC錯誤,可以說支持NAND flash的JFFS2文件系統(tǒng)目前還不成熟。而YAFFS文件系統(tǒng)則是專門針對NAND flash的,源代碼可以到
上下載。在測試過程中穩(wěn)定性能比JFFS2文件系統(tǒng)要穩(wěn)定的多,而且mount分區(qū)的時間也比JFFS2文件系統(tǒng)少的多。用JFFS2 mount一個2m的文件系統(tǒng)大約需要1s。下面分別介紹在uclinux下面使用JFFS2和YAFFS文件系統(tǒng)。
1、JFFS2
到
上面下載最新的MTD和JFFS2壓縮包。壓縮包里面還有有關(guān)的內(nèi)核補丁和一辯寬些MTD的相關(guān)工具。主要的補丁就是ilookup- 2.4.23.patch,因為最新的MTD驅(qū)動中要用到一個ilookup()函數(shù)。打完補丁、更新了MTD驅(qū)動和JFFS2文件系統(tǒng)之后就開始寫自己 nand flash驅(qū)動了。如果不想把JFFS2作為根文件系統(tǒng)的話,還需要修改MTD_BLOCK_MAJOR。驅(qū)動可以參考里面的例子,最簡單的就是參考 spia.c。
寫驅(qū)動主要工作是定義flash分區(qū)結(jié)構(gòu)、定義flash讀寫地址、寫控頌灶春制flash的**_hwcontrol()函數(shù)。具體的操作要看所用的nand flash的芯片資料。相對NOR flash來說驅(qū)動要簡單多了。:)
改完之后再配置
Memory Technology Devices(MTD)下
CONFIG_MTD=Y
CONFIG_MTD_DEBUG=Y
CONFIG_MTD_DEBUG_VERBOSE=3
CONFIG_MTD_PARTITIONS=Y
CONFIG_MTD_CHAR=Y
CONFIG_MTD_BLOCK=Y
NAND Flash Device Drivers下
CONFIG_MTD_NAND=Y
定義自己的驅(qū)動文件
File systems下
CONFIG_JFFS2_FS=Y
CONFIG_JFFS2_FS_DEBUG=2
CONFIG_JFFS2_FS_NAND=y /*這個是新加的*/
在uClinux v1.3.4 Configuration下
Flash Tools下
CONFIG_USER_MTDUTILS=Y
CONFIG_USER_MTDUTILS_ERASE=Y
CONFIG_USER_MTDUTILS_ERASEALL=Y
CONFIG_USER_MTDUTILS_MKFSJFFS2=Y
最后就是辛苦了野耐調(diào)試工作了。:(MTD驅(qū)動調(diào)試完之后,就可以在上面掛接JFFS2文件系統(tǒng)了。參看flash分區(qū)情況:cat /proc/mtd,擦除分區(qū):eraseall /dev/mtd*.例如把之一個分區(qū)mount到/mnt目錄下面:
先:eraseall /dev/mtd0
然后:mount -t jffs2 /dev/mtdblock0 /mnt
2、YAFFS
YAFFS意義為’yet another flash file system’,也是一個開源的文件系統(tǒng)。YAFFS是目前為止唯一一個專門為NAND flash設(shè)計的文件系統(tǒng),具有很好的可移植性,能夠在linux,uclinux,和wince
下面運行。
在
上下載源代碼。壓縮包里面也包含YAFFS的說明文檔。YAFFS文件系統(tǒng)的源文件就devextras.h,yaffs_ecc.c, yaffs_ecc.h,yaffs_guts.c,yaffs_guts.h,yaffs_mtdif.h,yaffs_mtdif.c和 yportenv.h
另外需要配置的宏:CONFIG_YAFFS_FS 和CONFIG_YAFFS_MTD_ENABLED,就是配置在mtd上面掛接YAFFS,其它還有一些輔助配置需要時也可以配置。
在fs目錄下面建一個yaffs目錄,把以上說的文件考里面去,新建一個makefile:
O_TARGET := yaffs.o
obj-y := yaffs_fs.o yaffs_guts.o yaffs_mtdif.o yaffs_ecc.o
obj-m := $(O_TARGET)
include $(TOPDIR)/Rules.make
接下來就是改fs目錄下面config.in和makefile,在配置YAFFS的時候,把YAFFS連接進(jìn)去。
如果像前面一樣已經(jīng)把NAND MTD驅(qū)動調(diào)好了,加YAFFS就很簡單了。因為YAFFS是自己做ECC校驗的,所以要把MTD驅(qū)動里面的ECC去掉。在驅(qū)動里面改成this->eccmode = NAND_ECC_NONE就可以了。
另外YAFFS是用mkyaffs來擦除flash,所以在mtd-utils中加上mkyaffs.c,一起編譯進(jìn)去。
最后就是編譯了,呵呵。中間會有一些警告沒有關(guān)系的,就是寫沒有用的變量和函數(shù),不過話說回來YAFFS的代碼寫的確實不太規(guī)范。當(dāng)然它的性能確實沒話說。有興趣的可以試一下。
uclinux圖形界面的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于uclinux圖形界面,uclinux圖形界面:實現(xiàn)嵌入式設(shè)備更友好的操作界面,LINUX系統(tǒng)介紹,嵌入式Linux是uclinux嗎?能用qt嗎?,如何配置uClinux.內(nèi)核使其支持jffs格式的文件系統(tǒng)的信息別忘了在本站進(jìn)行查找喔。
成都創(chuàng)新互聯(lián)建站主營:成都網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、網(wǎng)站改版的網(wǎng)站建設(shè)公司,提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、成都網(wǎng)站推廣、成都網(wǎng)站優(yōu)化seo、響應(yīng)式移動網(wǎng)站開發(fā)制作等網(wǎng)站服務(wù)。
分享題目:uclinux圖形界面:實現(xiàn)嵌入式設(shè)備更友好的操作界面(uclinux圖形界面)
轉(zhuǎn)載注明:http://fisionsoft.com.cn/article/cocgjoi.html


咨詢
建站咨詢
