摘 要:提出一種能夠進(jìn)行Solaris系統(tǒng)操作的模擬軟件,該軟件應(yīng)用于對空管自動(dòng)化的技術(shù)維護(hù)上機(jī)練習(xí),通過模擬Solaris系統(tǒng)的文件管理及相關(guān)操作命令,以C語言進(jìn)行編寫,實(shí)現(xiàn)了windows管理平臺下的Solaris系統(tǒng)模擬。
關(guān)鍵詞:Solaris系統(tǒng);空管自動(dòng)化技術(shù)維護(hù);文件管理;C語言
1 概述
當(dāng)前,空中交通管理自動(dòng)化系統(tǒng)由于系統(tǒng)的穩(wěn)定性要求及相關(guān)規(guī)定,多數(shù)采用LIUNX/UNIX/SOLARIS等系統(tǒng),此類系統(tǒng)作為工業(yè)應(yīng)用計(jì)算機(jī)操作系統(tǒng),并無日常使用,因此操作人員對其的了解多數(shù)停留在簡單命令操作的表層設(shè)計(jì)上,對文件系統(tǒng)的實(shí)現(xiàn)更是了解甚少。而對于空管技術(shù)保障人員來說,提高自身技術(shù)技能更好服務(wù)空管運(yùn)營是空管安全保障的關(guān)鍵之一。因此,近年來各地空管分局站投入了大量人力物力進(jìn)行各種技術(shù)培訓(xùn),力爭提高自身的技術(shù)水平。而對于當(dāng)前而言,缺乏一種能夠從底層介紹實(shí)現(xiàn)以上系統(tǒng)的模擬器以實(shí)現(xiàn)操作人員對其系統(tǒng)管理及相關(guān)命令的理解。文章從實(shí)際出發(fā),通過空管telephonics自動(dòng)化系統(tǒng)應(yīng)用的Solaris系統(tǒng)的模擬設(shè)計(jì),為技術(shù)保障人員提供一種系統(tǒng)理解的手段與平臺,與此同時(shí)也為相關(guān)其他UNIX系統(tǒng)、LINUX系統(tǒng)的模擬設(shè)計(jì)提供一種參考。
2 總體設(shè)計(jì)思想
作為以文件管理為根本的Solaris系統(tǒng),文件的管理是操作系統(tǒng)的核心,它實(shí)現(xiàn)了操作系統(tǒng)對計(jì)算機(jī)系統(tǒng)的軟件資源管理,在實(shí)際空管自動(dòng)化中則體現(xiàn)對telephonics系統(tǒng)軟件的操作。因此熟悉掌握Solaris系統(tǒng)必須先熟悉其文件的管理及文件系統(tǒng)的設(shè)計(jì),因此設(shè)計(jì)的核心在于系統(tǒng)的文件管理,具體實(shí)現(xiàn)如下:
首先假定模擬的Solaris文件系統(tǒng)可利用的內(nèi)存空間為1M,并將其分為512塊,每一塊為512個(gè)字節(jié),對于分好的512塊便是文件系統(tǒng)可使用的塊數(shù)。在系統(tǒng)中,文件系統(tǒng)的分配以塊分配為標(biāo)準(zhǔn),并實(shí)現(xiàn)于位示圖方法管理。在具體實(shí)現(xiàn)中,系統(tǒng)首先建立512個(gè)塊,按照上述理解進(jìn)行設(shè)計(jì),每個(gè)塊又擁有自己的標(biāo)志塊號,對于文件與目錄擁有自身的I節(jié)點(diǎn),在軟件設(shè)計(jì)上實(shí)現(xiàn)了I節(jié)點(diǎn)表。再之,通過二進(jìn)制文件對位圖區(qū)、節(jié)點(diǎn)I、數(shù)據(jù)塊每一個(gè)必要元素進(jìn)行映射。如若操作有改變上述元素則對其進(jìn)行改變并刷新輸出相應(yīng)數(shù)據(jù),并與此同時(shí)在下一次啟動(dòng)時(shí)快速導(dǎo)入數(shù)據(jù),具體實(shí)現(xiàn)的架構(gòu)如圖1所示。
圖1 系統(tǒng)總體設(shè)計(jì)圖
3 具體實(shí)現(xiàn)
3.1 實(shí)現(xiàn)的功能部分
對于系統(tǒng)的實(shí)現(xiàn),必須具備空管自動(dòng)化日常操作常見的命令,包括cd/pwd/ls/mkdir/rmdir等等。由于篇幅關(guān)系,在功能實(shí)現(xiàn)上,以創(chuàng)建、刪除文件。在創(chuàng)建文件上,首先按照文件路徑的各分量檢索各級目錄,搜索相關(guān)文件,如若其存在則釋放占用空間,使其成為一個(gè)空文件。如若全部搜索成功(除了最后一個(gè))則在最后找到的文件所在目錄增加一個(gè)磁盤I節(jié)點(diǎn),并將節(jié)點(diǎn)添加入新目錄中。同理,對于刪除文件,系統(tǒng)首先設(shè)置全局變量num用于統(tǒng)計(jì)I節(jié)點(diǎn)數(shù)量,在搜索過程中,假定num=1,并且沒有其他用戶在使用該文件,則釋放文件占用空間,并釋放對應(yīng)的I節(jié)點(diǎn)和目錄項(xiàng);如果num>1則將其減一,并立即收回,同時(shí)對I節(jié)點(diǎn)也對應(yīng)減一操作;如果num=0則釋放I節(jié)點(diǎn)及磁盤塊。
總體設(shè)計(jì)上,系統(tǒng)定義了幾大模塊,實(shí)現(xiàn)模塊化管理與設(shè)計(jì)。首先,作為格式化(初始化)文件系統(tǒng),模塊init()用于文件硬盤的格式化,當(dāng)程序啟動(dòng)時(shí)模塊將其中所有的數(shù)據(jù),包括用戶及用戶下的文件系統(tǒng)全部還原為初始狀態(tài),從頭開始建立文件系統(tǒng)。當(dāng)然,在執(zhí)行過程中應(yīng)首先判斷文件系統(tǒng)是否建立,如若已建立則在內(nèi)存中申請內(nèi)存空間并將磁盤上的文件讀入內(nèi)存;其次,用戶登錄模塊用于用戶名密碼的匹對,對于一個(gè)只有6個(gè)用戶的模擬系統(tǒng)來說,系統(tǒng)的用戶名與密碼保存在程序之中,這與實(shí)際系統(tǒng)有一定的差別。真正的Solaris的密碼存在于固定路徑的文件之中;再之,command()模塊用于用戶命令解析和直系,若數(shù)據(jù)被修改或新建立,系統(tǒng)將保存主存I節(jié)點(diǎn)和數(shù)據(jù)的內(nèi)容到內(nèi)存的文件系統(tǒng),并與此同時(shí)寫回磁盤,保存修改。
3.2 執(zhí)行代碼示例
在代碼的具體實(shí)現(xiàn)中,程序的核心思想是一切皆是文件,如果是目錄,Block中存儲(chǔ)的是目錄下文件和目錄的fcb。如果是文件,Block中存儲(chǔ)的是文件的內(nèi)容。
4 結(jié)束語
文章提出一種適用于空管自動(dòng)化操作系統(tǒng)的Solaris的模擬系統(tǒng),該系統(tǒng)通過模擬Solaris系統(tǒng)的文件管理與命令操作,通過C語言在windows平臺下實(shí)現(xiàn)。系統(tǒng)可以滿足空管一線技術(shù)保障對于Solaris系統(tǒng)的培訓(xùn),提高相關(guān)認(rèn)識及技術(shù)水平。
參考文獻(xiàn)
[1]吳志攀,杜華英.模擬UNIX文件系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)[J].惠州學(xué)院學(xué)報(bào)(自然科學(xué)版),2003(6).
[2]王俠,高勝哲.Linux的文件系統(tǒng)[J].遼寧稅務(wù)高等??茖W(xué)校學(xué)報(bào),2005(2).
[3]陳肖.Linux的文件系統(tǒng)和文件[J].微電腦世界,2004(23).
作者簡介:唐筱丹(1988,12-),女,湖北武漢,中國民用航空中南地區(qū)空中交通管理局湖北分局助理工程師,武漢大學(xué)碩士研究生,研究方向?yàn)橛?jì)算機(jī)軟件工程。endprint