個(gè)開放源碼的嵌入式仿真環(huán)境——SkyEye

姓名:屈彥維

學(xué)號:16020610026

引自:http://lw.3edu.net/qrs/lw_46749.html

嵌牛導(dǎo)讀:綜述開放源碼的嵌入式仿真環(huán)境SkyEye:介紹SkyEye的背景冠王、目標(biāo)和存在的意義,對目前SkyEye本身進(jìn)行簡要的技術(shù)分析寥茫;介紹SkyEye上已經(jīng)移植成功的操作系統(tǒng)和典型應(yīng)用彰亥。講述SkyEye正在開展的工作和將來的發(fā)展計(jì)劃短纵。

嵌牛鼻子:SkyEye 仿真 μClinuxμ/OS-II Linux 嵌入式系統(tǒng)

嵌牛提問:如何創(chuàng)造個(gè)開放源碼的嵌入式仿真環(huán)境

嵌牛正文:

1 SkyEye的目標(biāo)與意義

1.1 SkyEye產(chǎn)生的背景

操作系統(tǒng)是軟件產(chǎn)業(yè)的基礎(chǔ)和龍頭杆融,能左右軟件產(chǎn)業(yè)發(fā)展的方向桑阶,是世界軟件產(chǎn)業(yè)最大的利潤來源。對于后PC時(shí)代和普適計(jì)算(pervasive computing)而言港华,嵌入式系統(tǒng)無處不在道川,其中關(guān)鍵的軟件核心技術(shù)包括嵌入式操作系統(tǒng)和網(wǎng)絡(luò)互聯(lián)中間件等。

對于想進(jìn)行嵌入式系統(tǒng)軟件開發(fā)和學(xué)習(xí)立宜,或者想研究嵌入式Linux等操作系統(tǒng)和一些底層系統(tǒng)軟件(如TCP/IP等)的研究和開發(fā)人員來說冒萄,可能存在如下幾方面的問題:①經(jīng)常苦于經(jīng)費(fèi)不足橙数,缺少足夠的硬件開發(fā)板和完善的軟件開發(fā)環(huán)境尊流;相關(guān)的書籍對一些最新軟件的分析還不夠全面,無法深研究和開發(fā)嵌入式軟件灯帮。②高層次的軟件設(shè)計(jì)和開發(fā)一般不用過多考慮底層硬件的實(shí)現(xiàn)細(xì)節(jié)崖技,如果直接處于一具體的硬件環(huán)境下逻住,在開發(fā)和研究中可能會陷入硬件的具體細(xì)節(jié)中不能自拔,而不能把精力放到高層次的軟件設(shè)計(jì)和開發(fā)上迎献。③如果硬件開發(fā)環(huán)境不太穩(wěn)定(這種情況經(jīng)常見到)瞎访,且對身體的硬件不是很了解,則可能在排除問題上花費(fèi)大量不必要的時(shí)間忿晕。

對于想了解装诡、學(xué)習(xí)一般操作系統(tǒng)的實(shí)現(xiàn)原理银受、Linux/μClinux操作系統(tǒng)或TCP/IP等系統(tǒng)級軟件的實(shí)現(xiàn)的人員践盼,目前一般采用的方法是看書和讀源代碼。這是一種靜態(tài)的學(xué)習(xí)方法宾巍,但效率較低咕幻,比較枯燥,缺少一種動態(tài)和親自實(shí)踐的感覺顶霞。要想深入分析和開發(fā)軟件肄程,就要動手編程,不能只是看看書选浑,讀讀代碼蓝厌,只有通過親手實(shí)踐才能夠掌握軟件設(shè)計(jì)的核心內(nèi)容。

上面所指出的問題和需求促使了SkyEye項(xiàng)目的誕生古徒。

1.2 SkyEye的目標(biāo)和意義

SkyEye是開源軟件(OpenSource Software)項(xiàng)目拓提,中文名字是“天目”。SkyEye的目標(biāo)是在通用的Linux和Windows平臺實(shí)現(xiàn)一個(gè)仿真集成開發(fā)環(huán)境隧膘,模擬常見的嵌入式計(jì)算機(jī)系統(tǒng)代态;可在SkyEye上運(yùn)行μClinux以及μC/OS-II等多種嵌入式操作系統(tǒng)和各種系統(tǒng)軟件(如TCP/IP、圖形子系統(tǒng)疹吃、文件子系統(tǒng)等)蹦疑,并可對它們進(jìn)行源碼級的分析和測試。SkyEye的推出具有下面三方面的意義萨驶。

①通過SkyEye仿真集成環(huán)境可以很方便地進(jìn)入嵌入式系統(tǒng)軟件學(xué)習(xí)和開發(fā)的廣闊天地中歉摧。尤其對于缺少嵌入式硬件開發(fā)環(huán)境和軟件開發(fā)環(huán)境的用戶來說,它將是一個(gè)非常有效的學(xué)習(xí)工具和開發(fā)手段腔呜,因?yàn)镾kyEye的整個(gè)軟件系統(tǒng)都是Open Source的判莉,且基于GPL協(xié)議(μC/OS-II除外)。因此育谬,如果要學(xué)習(xí)Linux操作系統(tǒng)或者進(jìn)行嵌入式系統(tǒng)開發(fā)券盅,但苦于沒有硬件支持,SkyEye仿真環(huán)境軟件是一個(gè)很好的選擇膛檀!

②如果想研究與具體硬件無關(guān)的系統(tǒng)軟件(如TCP/IP協(xié)議棧等)锰镀,采用SkyEye可以有效地提高工作效率娘侍,因?yàn)槟憧梢灾苯釉讦藽OS-II和μClinux for SkyEye上進(jìn)行開發(fā)和調(diào)試,而與具體硬件打交道的各種Driver已經(jīng)存在泳炉,且有源碼級調(diào)試環(huán)境憾筏,只需關(guān)心高層的邏輯設(shè)計(jì)和實(shí)現(xiàn)就可以了。

③SkyEye本身作為一個(gè)開放式的項(xiàng)目體系花鹅,可以劃分為多個(gè)獨(dú)立的子項(xiàng)目系統(tǒng)氧腰。通過參與SkyEye的各個(gè)子項(xiàng)目,與大家共同交流刨肃、協(xié)議古拴,可以進(jìn)一步學(xué)習(xí)、分析真友、精通Linux內(nèi)核黄痪,掌握ARM嵌入式CPU編程。

在32位嵌入式CPU領(lǐng)域中盔然,ARM系列CPU所占比例相當(dāng)大桅打,而ARM7TDMI是其中使用最廣泛的CPU之一,因此愈案,SkyEye首先選擇了ARM7TDMI作為仿真的目標(biāo)CPU挺尾。目前,SkyEye上可運(yùn)行并進(jìn)行源碼級調(diào)試的有μClinux站绪、μC/OS-II操作系統(tǒng)和LwIP(一個(gè)著名的嵌入式TCP/IP實(shí)現(xiàn))遭铺、ARM Linux等系統(tǒng)軟件。SkyEye可用于學(xué)習(xí)崇众、分析掂僵、開發(fā)這些系統(tǒng)軟件,了解ARM嵌入式CPU編程顷歌,而這一切都可在一個(gè)集成環(huán)境中完成锰蓬。如果能夠改進(jìn)SkyEye本身,則大家對ARM眯漩、8019Ethernet網(wǎng)絡(luò)芯片等硬件的了解也會更深入芹扭。

SkyEye并不能完全取代開發(fā)板等硬件的功能,但通過它可以比較容易地進(jìn)入到嵌入式軟件開發(fā)的廣闊天地中赦抖。由于SkyEye建立在GDB基礎(chǔ)之上舱卡,使用者可以方便地使用GDB提供的各種調(diào)試手段對SkyEye仿真系統(tǒng)上的軟件進(jìn)行源碼級的調(diào)試,還可以進(jìn)行各種分析队萤,如執(zhí)行點(diǎn)分析轮锥、程序執(zhí)行覆蓋度分析等。由于SkyEye提供了源代碼和相關(guān)文檔要尔,有經(jīng)驗(yàn)的用戶完全可以修改和擴(kuò)展SkyEye來滿足自已的需求舍杜。

2 SkyEye的技術(shù)分析

2.1 SkyEye總體結(jié)構(gòu)

SkyEye基于GDB/ARMulator新娜,模仿了一個(gè)完整的嵌入式系統(tǒng),目前包括CPU既绩、內(nèi)存概龄、I/O寄存器、時(shí)鐘饲握、UART私杜、網(wǎng)絡(luò)芯片、MMU救欧、Cache衰粹,將來還會仿真LCD、USB等各種硬件颜矿。在SkyEye上運(yùn)行的操作系統(tǒng)和各種系統(tǒng)軟件“意識”不到它們是在一個(gè)虛擬的計(jì)算機(jī)系統(tǒng)上運(yùn)行寄猩。

SkyEye從總體上分為四個(gè)層次嫉晶。

①用戶接口模塊:包括命令行用戶界面和圖形用戶界面骑疆,及時(shí)處理用戶的輸入命令,并把相關(guān)調(diào)試數(shù)據(jù)輸出給用戶替废。

②符號處理模塊:主要處理執(zhí)行文件的頭信息箍铭,解釋執(zhí)行文件中嵌的debuger調(diào)試信息,管理符號表椎镣,解析源代碼表達(dá)式诈火,定位源代碼中的語句位置和機(jī)器碼的位置關(guān)系等。

③目標(biāo)控制模塊:主要完成執(zhí)行控制(如執(zhí)行斷程序状答,設(shè)置中斷條件等)冷守,程序棧結(jié)構(gòu)分析,對具體目標(biāo)硬件的控制(如本地調(diào)試惊科、遠(yuǎn)程調(diào)試和仿真調(diào)試的控制)拍摇。

④目標(biāo)仿真模塊:主要是模仿計(jì)算機(jī)系統(tǒng)中的主要硬件(包括CPU、內(nèi)存和各種硬件外設(shè)等)的執(zhí)行馆截,對執(zhí)行文件的機(jī)器指令進(jìn)行解釋充活,并仿真執(zhí)行每一條機(jī)器指令,產(chǎn)生相應(yīng)的硬件響應(yīng)蜡娶。

2.2 SkyEye模擬的硬件介紹

目前混卵,SkyEye仿真的CPU包含不帶MMU的AT91X40和帶MMU的ARM720T,它們都是基于ARM7TDMI CPU內(nèi)核的窖张。SkyEye還模擬了其它硬件外設(shè)幕随,如串口、網(wǎng)絡(luò)芯片宿接、內(nèi)存赘淮、時(shí)鐘枢赔、網(wǎng)絡(luò)HUB等。SkyEye的CPU仿真主要完成對ARM指令集處理拥知、寄存器操作和CPU流水線處理等的仿真踏拜。

ARM720T具有MMU(Memory Management Unit),即存儲器管理單元低剔,是用來管理虛擬內(nèi)存系統(tǒng)的操作速梗。MMU的兩具主要功能是:

*將虛地址轉(zhuǎn)換成物理地址;

*控制存儲器存取允許襟齿,MMU關(guān)掉時(shí)姻锁,虛地址直接輸出到物理地址總線。

MMU本身有少量存儲空間存放從虛擬地址到物理地址的匹配表猜欺,此表稱作TLB(Translation Lookaside Buffers)位隶。TLB表中保存的是虛地址及其對應(yīng)的物理地址、權(quán)限开皿、域和映射類型涧黄。當(dāng)CPU對一虛擬地址進(jìn)行存取時(shí),首先搜索TLB表以查找對應(yīng)的物理地址等信息赋荆。如果沒有查到笋妥,則進(jìn)行查找Translation Table,稱為TTW(Translation Table Walk)窄潭。經(jīng)過TTW后春宣,將查到的信息保存到TLB,然后根據(jù)TLB表項(xiàng)的物理地址進(jìn)行讀寫嫉你。

MMU/Cache的仿真主要是依據(jù)ARM720T處理器的體系結(jié)構(gòu)進(jìn)行的月帝。ARM720T可以看成ARM7TDMI加上MMU/Cache模塊,主要是仿真控制MMU/Cache的寄存器結(jié)構(gòu)幽污、TLB結(jié)構(gòu)嚷辅、Cache結(jié)構(gòu)、Translation Table Walk的控制邏輯以及在此基礎(chǔ)上內(nèi)存的讀取操作油挥。

對于網(wǎng)絡(luò)部分潦蝇,SkyEye仿真的是兼容NE2000的8019as以太網(wǎng)網(wǎng)絡(luò)芯片,支持8位數(shù)據(jù)通路深寥,仿真實(shí)現(xiàn)了遠(yuǎn)程DMA信道和本地DMA信道兩個(gè)部分攘乒。本地DMA完成控制器與仿真網(wǎng)絡(luò)的數(shù)據(jù)交換,主處理器(Host)收發(fā)數(shù)據(jù)只需對遠(yuǎn)程DMA操作惋鹅。當(dāng)主處理器要向以太網(wǎng)絡(luò)發(fā)送數(shù)據(jù)時(shí)则酝,先將一幀(frame)數(shù)據(jù)經(jīng)過遠(yuǎn)程DMA信道,送到以太網(wǎng)絡(luò)控制器中發(fā)送緩存(Ring Buffer),然后發(fā)出傳送命令沽讹。以太網(wǎng)絡(luò)控制器在送出前一幀的數(shù)據(jù)后般卑,繼布完成此幀的發(fā)送。以太網(wǎng)絡(luò)控制器接收到的數(shù)據(jù)通過MAC比較后爽雄,由FIFO存到接收緩沖區(qū)蝠检,收滿1幀后,以中斷或緩存器標(biāo)志的方式通知主處理器挚瘟。

為了有效支持網(wǎng)絡(luò)仿真叹谁,SkyEye還設(shè)計(jì)了一個(gè)虛擬HUB-vnet,可以在一臺Host主機(jī)上支持多個(gè)在SkyEye上運(yùn)行的OS實(shí)例進(jìn)行網(wǎng)絡(luò)的通信互聯(lián)乘盖,從而更有助于針對網(wǎng)絡(luò)方面的開發(fā)和研究焰檩。

3 SkyEye上已經(jīng)移植成功的OS

3.1 μClinux

μClinux是應(yīng)用于嵌入式設(shè)備的一個(gè)Linux版本,是主要針對不帶MMU的CPU而設(shè)計(jì)的Linux系統(tǒng)订框。ΜClinux系統(tǒng)對于內(nèi)存的訪問地址都是實(shí)際的物理地址析苫。操作系統(tǒng)對內(nèi)存空間沒有保護(hù)(這實(shí)際上是很多嵌入式系統(tǒng)的特點(diǎn)),各個(gè)進(jìn)程實(shí)際上共享一個(gè)運(yùn)行空間(沒有獨(dú)立的地址轉(zhuǎn)換表)穿扳。目前衩侥,SkyEye上可以運(yùn)行μClinux的2003年最新版本。

3.2 μC/OS-II

SkyEye作為一個(gè)基于Atmel AT91X40開發(fā)板的仿真環(huán)境纵揍,在它上面可以移植各種適合地嵌入式開發(fā)應(yīng)用的操作系統(tǒng)顿乒,將μC/OS-II移植琶SkyEye上是我們對此做的又一次嘗試议街。ΜC/OS-II是一個(gè)簡單泽谨、高效的嵌入式實(shí)時(shí)操作系統(tǒng)內(nèi)核。自從1992年以來特漩,已經(jīng)被應(yīng)用到各種嵌入式系統(tǒng)中吧雹。目前,它可以支持x86涂身、ARM雄卷、PowerPC、MIPS等眾多體系結(jié)構(gòu)蛤售,并有上百個(gè)商業(yè)應(yīng)用式系統(tǒng)中丁鹉。目前,它可以支持x86悴能、ARM揣钦、PowerPC、MIPS等眾多體系結(jié)構(gòu)漠酿,并有上百個(gè)商業(yè)應(yīng)用實(shí)例冯凹,其穩(wěn)定性和可用性是經(jīng)過實(shí)踐驗(yàn)證的。同時(shí)炒嘲,它的源代碼公開宇姚,任何人都可以從www.ucos-ii.com的網(wǎng)站上獲得全部源碼以及其在各種體系結(jié)構(gòu)平臺上的移植范例匈庭。無論是通常學(xué)習(xí)μC/OS-II來了解實(shí)時(shí)操作系統(tǒng)的構(gòu)造,還是直接使用它來針對具體應(yīng)用進(jìn)行開發(fā)浑劳,都是非常方便和可行的阱持。目前,SkyEye支持的μC/OS-II內(nèi)核為2.5.1版魔熏。

3.3 ARM Linux

ARM Linux屬于Linux標(biāo)準(zhǔn)發(fā)行內(nèi)核中的一個(gè)分支紊选,支持MMU的ARM系列CPU,如ARM720T道逗、ARM920T兵罢、Intel StrongARM等。我們目前在SkyEye上仿真的CPU型號為CPU內(nèi)核是ARM Linux內(nèi)核選擇的本系結(jié)構(gòu)為CLPS711x/EP72lx滓窍,它支持ARM20T卖词、UART串口等硬件,都是SkyEye目前仿真的硬件吏夯。目前SkyEye已經(jīng)成功運(yùn)行了版本為2.4.18的ARM Linux此蜈。有關(guān)ARM Linux的更多信息請?jiān)L問http://www.arm.linux.org.uk/。

4 SkyEye目前支持的網(wǎng)絡(luò)協(xié)議棧

4.1 μCLinux上的TCP/IP

μClinux上面有完整的TCP/IP協(xié)議棧噪生,但缺少對SkyEye的網(wǎng)絡(luò)仿真芯片(仿真兼容NE2000的8019as)的驅(qū)動程序裆赵。我們實(shí)現(xiàn)的驅(qū)動程序主要包括了初始化、中斷處理跺嗽、接收數(shù)據(jù)包的處理战授、發(fā)送數(shù)據(jù)包的處理等工作,再加上SkyEye的虛擬HUB-vet的協(xié)議桨嫁,使μClinux on SkyEye的多個(gè)實(shí)例之間植兰、實(shí)例與主機(jī)之間可以進(jìn)行TCP/IP通信。

4.2 μC/OS-II上的LwIP

μC/OS-II本身沒有TCP/IP協(xié)議棧璃吧,目前的一些第三方TCP/IP支持都是完全商業(yè)化的楣导,很少給出源代碼,影響了μC/OS-II的研究和推廣畜挨。通過把開放源代碼的TCP/IP協(xié)議棧LwIP移植到μC/OS-Ii上來筒繁,就獲得了一套可免費(fèi)研究、學(xué)習(xí)的嵌入式網(wǎng)絡(luò)軟件平臺巴元。其系統(tǒng)示意圖如圖1所示毡咏。

LwIP是瑞士計(jì)算機(jī)科學(xué)院(Swedish Institute of Computer Science)的Adam Dunkels等開發(fā)的一套用于嵌入式系統(tǒng)的開放源代碼TCP/IP協(xié)議棧。LwIP的含義是Light Weight(輕型)IP協(xié)議务冕。LwIP可以移植到操作系統(tǒng)上血当,也可以在無操作系統(tǒng)的情況下獨(dú)立運(yùn)行。我們目前使用的是LwIP的最新穩(wěn)定版V0.5.3。

LwIP協(xié)議棧在設(shè)計(jì)時(shí)就考慮到了將來的移植問題臊旭,因此把所有與硬件落恼、OS、編譯器相關(guān)的部分獨(dú)立出來离熏,放在/src/arch目錄下佳谦。因此,LwIP在μC/OS-II上的實(shí)現(xiàn)就是修改這個(gè)目錄下的文件滋戳,其它的文件一般不應(yīng)該修改钻蔑。

我們在SkyEye中所仿真的網(wǎng)絡(luò)芯片是NE2000,所以目前實(shí)現(xiàn)的網(wǎng)絡(luò)設(shè)備驅(qū)動是針對NE2000的奸鸯,其它類型的網(wǎng)絡(luò)芯片驅(qū)動可以在LwIP的網(wǎng)站上找到∵湫Γ現(xiàn)在LwIP已經(jīng)順利運(yùn)行在μC/OS-II上了,目前可以從Host主機(jī)和SkyEye上運(yùn)行的μC/OS-II+LwIP順利進(jìn)行TCP/IP的通信娄涩。

4.3 更多的TCP/IP協(xié)議棧

除了LwIP之外窗怒,還有很多開源的嵌入式TCP/IP協(xié)議棧。它們各有各的特點(diǎn)蓄拣,有些功能較全面扬虚,有些占用資源出奇的少,能適合不同場合的需要球恤,而且多接觸一些不同的思路辜昵,對協(xié)議和編碼能有更好的理解。其中的代表有tinyTCP咽斧、ucIP堪置、uIP等,它們的基本思路應(yīng)該都是一致的收厨。SkyEye小組希望能有列多對TCP/IP協(xié)議棧感興趣的人參與進(jìn)來晋柱,特別是ucIP,實(shí)際上它是專門為μC/OS-II設(shè)計(jì)的诵叁。

5 SkyEye上已經(jīng)實(shí)現(xiàn)的簡單應(yīng)用

5.1 LwIP上的Echo服務(wù)器

做完LwIP的移植修改工作以后,就可以在μC/OS-II中初始化LwIP钦椭,并創(chuàng)建TCP或UDP任務(wù)進(jìn)行測試了拧额。值得注意的是:LwIP的初始化必須在μC/OS-II完全啟動之后也就是在任務(wù)中進(jìn)行,因?yàn)樗某跏蓟玫搅诵盘柫康扰cOS相關(guān)的操作彪腔。

LwIP提供了兩種API侥锦,供用戶使用這個(gè)協(xié)議棧。

第一種是BSD API德挣。這種API非常像BSD標(biāo)準(zhǔn)UNIX中的socket API恭垦,所以對其這樣命名。它跟普通的socket API一樣,是基于open-read-write-close模型的番挺。它提供了一種標(biāo)準(zhǔn)的方法來使用LwIP協(xié)議棧唠帝。但這種API效率較低,消耗資源較多玄柏,因此不推薦使用襟衰。

第二種稱為RAW API。這種API接口實(shí)際上是直接使用了LwIP協(xié)議棧中的回調(diào)函數(shù)(call back functions)粪摘,從而使應(yīng)用程序和協(xié)議棧代碼能夠更好地集成在一起瀑晒,運(yùn)行同一個(gè)線程即任務(wù)中。RAW API相對于普通BSD API來說徘意,速度更快苔悦,消耗內(nèi)存資源更少;唯一的缺點(diǎn)是編程復(fù)雜椎咧,對程序員的要求高间坐。考慮到我們是在嵌入式設(shè)備中工作邑退,這樣的缺點(diǎn)是可以接受的竹宋。事實(shí)上,BSD API就是用RAW API來實(shí)現(xiàn)的地技。

利用Berkley API實(shí)現(xiàn)的tcpecho_thread是一個(gè)TCP Echo服務(wù)器蜈七,監(jiān)聽7號端口,這實(shí)際上是實(shí)現(xiàn)了RFC中最簡單Echo協(xié)議:收到什么莫矗,就往回發(fā)同樣的內(nèi)容飒硅。編譯運(yùn)行后,用ping IP地址命令可以得到ICMP reply響應(yīng)作谚。用telnet IP地址7(登錄7號端口)命令可以看到Echo Server的回顯效果三娩。說明ARP、ICMP妹懒、IP雀监、TCP協(xié)議都已正確運(yùn)行。

5.2μC/OS-II只提供了操作系統(tǒng)內(nèi)核眨唬,用戶要自己添加文件處理会前、人機(jī)界面、網(wǎng)絡(luò)接口等重要部分匾竿。大部分人認(rèn)識OS都是從這里開始的瓦宜。

由于SkyEye下的仿真串口UART已經(jīng)實(shí)現(xiàn)了中斷方式的接收(實(shí)際是從鍵盤接收輸入)和輸出(實(shí)際上是輸出到終端屏幕),所以實(shí)現(xiàn)一個(gè)類似Bash的簡化版Shell并不困難岭妖。其本質(zhì)思想就是:Shell作為一個(gè)μC/OS-II下的任務(wù)临庇,工作于內(nèi)核之外反璃,占用一個(gè)任務(wù)號。它接收用戶輸入的字符假夺,存儲到緩沖區(qū)淮蜈,并回顯到屏幕上,以回車鍵為用戶輸入的結(jié)束信號侄泽,隨后解析用戶輸入的命令名稱礁芦、參數(shù),調(diào)用相應(yīng)的命令函數(shù)悼尾。一直到這個(gè)命令函數(shù)運(yùn)行返回柿扣,才繼續(xù)Shell的人機(jī)交互界面。

我們目前在μC/OS-II下實(shí)現(xiàn)的Shell被命名為Genie Shell闺魏。它實(shí)現(xiàn)了最基本的命令輸入未状、解析參數(shù)、調(diào)用命令函數(shù)功能析桥,以及兩條示例性的命令司草。這個(gè)Shell的特色是采用了一些面向?qū)ο蟮乃悸穪韺?shí)現(xiàn)Shell的各種命令。Genie Shell把每個(gè)命令看成一個(gè)對象泡仗,對象的屬性是命令名埋虹,而對象的方法就是命令的執(zhí)行函數(shù)本身。用戶輸入命令及參數(shù)后娩怎,將參數(shù)傳遞給對象的方法并執(zhí)行搔课。要Shell中增加一條命令,就是增加一個(gè)對象截亦,并實(shí)現(xiàn)這個(gè)對象的方法爬泥,以利于今后做進(jìn)一步的擴(kuò)充。

5.3μClinux上的應(yīng)用程序

目前μClinux-dist-20030305已經(jīng)可以在SkyEye上運(yùn)行崩瓤。其中的sash(shell)袍啡、ping、ifconfig却桶、telnet境输,telnet server、ftp肾扰、ftp server畴嘶、boa(http server)、mount with nfs support等主要的應(yīng)用程序都可以成功地運(yùn)行在SkyEye中集晚,而且不需要對應(yīng)用程序進(jìn)行任何修改。

6 SkyEye正在開展的工作

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末区匣,一起剝皮案震驚了整個(gè)濱河市偷拔,隨后出現(xiàn)的幾起案子蒋院,更是在濱河造成了極大的恐慌,老刑警劉巖莲绰,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件欺旧,死亡現(xiàn)場離奇詭異,居然都是意外死亡蛤签,警方通過查閱死者的電腦和手機(jī)辞友,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來震肮,“玉大人称龙,你說我怎么就攤上這事〈辽危” “怎么了鲫尊?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長沦偎。 經(jīng)常有香客問我疫向,道長,這世上最難降的妖魔是什么豪嚎? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任搔驼,我火速辦了婚禮,結(jié)果婚禮上侈询,老公的妹妹穿的比我還像新娘舌涨。我一直安慰自己,他們只是感情好妄荔,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布泼菌。 她就那樣靜靜地躺著,像睡著了一般啦租。 火紅的嫁衣襯著肌膚如雪哗伯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天篷角,我揣著相機(jī)與錄音焊刹,去河邊找鬼。 笑死恳蹲,一個(gè)胖子當(dāng)著我的面吹牛虐块,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播嘉蕾,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼贺奠,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了错忱?” 一聲冷哼從身側(cè)響起儡率,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤挂据,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后儿普,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體崎逃,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年眉孩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了个绍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,991評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡浪汪,死狀恐怖巴柿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吟宦,我是刑警寧澤篮洁,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站殃姓,受9級特大地震影響袁波,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蜗侈,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一篷牌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧踏幻,春花似錦枷颊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至隔缀,卻和暖如春题造,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背猾瘸。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工界赔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人牵触。 一個(gè)月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓淮悼,卻偏偏與公主長得像,于是被迫代替她去往敵國和親揽思。 傳聞我的和親對象是個(gè)殘疾皇子袜腥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容