《ERP軟件Ⅰ》實(shí)驗(yàn)報(bào)告-(財(cái)務(wù)管理)_第1頁
《ERP軟件Ⅰ》實(shí)驗(yàn)報(bào)告-(財(cái)務(wù)管理)_第2頁
《ERP軟件Ⅰ》實(shí)驗(yàn)報(bào)告-(財(cái)務(wù)管理)_第3頁
《ERP軟件Ⅰ》實(shí)驗(yàn)報(bào)告-(財(cái)務(wù)管理)_第4頁
《ERP軟件Ⅰ》實(shí)驗(yàn)報(bào)告-(財(cái)務(wù)管理)_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第27頁 共27頁 實(shí)驗(yàn)報(bào)告課程名稱 ERP軟件 實(shí)驗(yàn)課所在班 北校區(qū)401 班級(jí)與班級(jí)代碼 3班 專 業(yè) 財(cái)務(wù)管理 指導(dǎo)教師: 陳玉珍 學(xué) 號(hào): 10250202326 姓 名: 李嶸昕 提交日期: 2012年11月14日 廣東商學(xué)院教務(wù)處 制姓名 實(shí)驗(yàn)報(bào)告成績 評(píng)語: 指導(dǎo)教師(簽名) 年 月 日說明:指導(dǎo)教師評(píng)分后,交經(jīng)濟(jì)與管理實(shí)驗(yàn)教學(xué)中心辦公室保存。ERPI軟件實(shí)驗(yàn)報(bào)告用友 ERP 財(cái)務(wù)管理系統(tǒng)教程以一個(gè)企業(yè)單位的經(jīng)濟(jì)業(yè)務(wù)為原型,重點(diǎn)介紹了信息環(huán)境下各項(xiàng)業(yè)務(wù)的處理方法和處理流程,并提供了實(shí)驗(yàn)準(zhǔn)備賬套和結(jié)果賬套,每個(gè)實(shí)驗(yàn)既可以環(huán)環(huán)相扣,也可以獨(dú)立運(yùn)作,適應(yīng)了不同層次的學(xué)習(xí)需要。ERP財(cái)務(wù)

2、管理軟件系統(tǒng)主要涵括了系統(tǒng)管理和基礎(chǔ)設(shè)置與最重要和最基礎(chǔ)的總賬、報(bào)表、薪資管理、固定資產(chǎn)、應(yīng)收款管理和應(yīng)付款管理等幾個(gè)子系統(tǒng)的基本功能。其中,UFO報(bào)表系統(tǒng)既可以編制對(duì)外報(bào)表,又可以編制各種內(nèi)部報(bào)表。主要任務(wù)是設(shè)計(jì)報(bào)表的格式和編制公式,從總賬系統(tǒng)或從其他業(yè)務(wù)系統(tǒng)中取得有關(guān)會(huì)計(jì)信息,自動(dòng)編制各種會(huì)計(jì)報(bào)表,對(duì)報(bào)表進(jìn)行審核、匯總, 生成各種分析圖,并按預(yù)算格式輸出各種會(huì)計(jì)報(bào)表。而應(yīng)收款管理系統(tǒng)則主要實(shí)現(xiàn)企業(yè)與客戶之間業(yè)務(wù)往來賬款的核算與管理,在應(yīng)收賬款管理系統(tǒng)中,以銷售發(fā)票、費(fèi)用單、其他應(yīng)收單等原始為依據(jù),記錄銷售業(yè)務(wù)及其他業(yè)務(wù)所 形成的往來款項(xiàng),處理應(yīng)收款項(xiàng)的收回、壞賬、轉(zhuǎn)賬等情況,提供票據(jù)處理功

3、能,實(shí)現(xiàn)對(duì)應(yīng)收款的管理。 實(shí)驗(yàn)?zāi)康模罕緦W(xué)期我們主要通過實(shí)驗(yàn)掌握用友ERP的財(cái)務(wù)管理系統(tǒng)基本操作,熟悉總賬系統(tǒng)、薪資系統(tǒng)固定資產(chǎn)系統(tǒng)以及應(yīng)收應(yīng)付系統(tǒng)的操作。通過實(shí)驗(yàn)學(xué)習(xí)了ERP軟件將對(duì)我畢業(yè)以后的社會(huì)就業(yè)有很大的幫助。ERP不只是讓人覺得深?yuàn)W的幾個(gè)字母,它對(duì)企業(yè)的經(jīng)營管理能產(chǎn)生巨大的影響。ERP代表著新時(shí)代的企業(yè)管理模式,它的出現(xiàn)再次證明科學(xué)知識(shí)在信息社會(huì)的重要性。一個(gè)企業(yè)的成敗不止要依靠激情,勇氣和機(jī)遇,更需要的是科學(xué)的管理方式和信息的整合與共享。一直一來我們財(cái)經(jīng)管理類的學(xué)生在學(xué)習(xí)中很少有機(jī)會(huì)接觸到企業(yè)的真實(shí)運(yùn)作,而ERP課程的開設(shè)正是學(xué)習(xí)鍛煉的最好時(shí)機(jī)。ERP系統(tǒng)的財(cái)務(wù)管理系統(tǒng)與ERP系統(tǒng)的

4、其他系統(tǒng)融合在一起,財(cái)務(wù)管理子系統(tǒng)又集財(cái)務(wù)會(huì)計(jì)、管理會(huì)計(jì)、成本會(huì)計(jì)于一體。這種系統(tǒng)的整合,以及其系統(tǒng)的信息供給,更有利于財(cái)務(wù)做前瞻性分析與預(yù)測(cè),也有利于企業(yè)的經(jīng)營與管理的高效。關(guān)于企業(yè)信息化方面的研究和利用己經(jīng)逐步深入,許多企業(yè)在企業(yè)信息化的過程中獲得了極大的收益。管理信息系統(tǒng)對(duì)企業(yè)的管理經(jīng)營和企業(yè)競爭很有優(yōu)勢(shì)。二、實(shí)驗(yàn)內(nèi)容:總賬系統(tǒng):(一)、系統(tǒng)初始化1、總賬系統(tǒng)基礎(chǔ)檔案設(shè)置項(xiàng)目檔案、指定出納科目、現(xiàn)金流量科目等2、設(shè)置總賬系統(tǒng)參數(shù)憑證參數(shù)設(shè)置、賬簿參數(shù)設(shè)置、其他設(shè)置3、總賬系統(tǒng)初始數(shù)據(jù)錄入將數(shù)據(jù)移入計(jì)算機(jī)信息系統(tǒng);使核算工作能夠繼續(xù),數(shù)據(jù)能夠銜接。初始數(shù)據(jù)必須試算平衡,否則,只能輸入本期憑

5、證,但是不能記賬。(二)、日常業(yè)務(wù)處理1、憑證處理(1)憑證處理的關(guān)鍵步驟憑證輸入、憑證審核、憑證記賬(2)憑證來源手工錄入、憑證模板、機(jī)制憑證、其他系統(tǒng)傳入(3)憑證修改審核前、審核后、記賬后、結(jié)賬后(4)憑證審核出納簽字、審核人簽字、會(huì)計(jì)主管簽字(5)憑證記賬審核無誤的記賬憑證2、出納處理現(xiàn)金日記賬銀行存款日記賬銀行對(duì)賬:輸入銀行對(duì)賬單、對(duì)賬、銀行存款余額調(diào)節(jié)表3、會(huì)計(jì)賬簿查詢各種賬簿總分類賬簿各種明細(xì)分類賬簿和輔助賬簿日記賬簿(出納)實(shí)現(xiàn)賬證一體化查詢期末處理1、自動(dòng)轉(zhuǎn)賬2、結(jié)轉(zhuǎn)損益3、全部機(jī)制憑證審核記賬對(duì)賬5、期末結(jié)賬報(bào)表系統(tǒng):(一)、新建UFO報(bào)表(二)、設(shè)計(jì)報(bào)表格式(三)、定義計(jì)

6、算公式(四)、報(bào)表數(shù)據(jù)處理(五)、報(bào)表設(shè)計(jì)(六)、輸出報(bào)表固定資產(chǎn)管理系統(tǒng):(一)、初始設(shè)置建立固定資產(chǎn)子賬套;部門、類別設(shè)置,使用狀況設(shè)置;增減方式設(shè)置;折舊方法定義;卡片項(xiàng)目定義等。(二)、卡片管理(三)、折舊管理自動(dòng)計(jì)提折舊并形成折舊清單和折舊分配表,按分配表自動(dòng)制作憑證并傳遞到總賬系統(tǒng)。(四)、月末對(duì)賬結(jié)賬月末根據(jù)系統(tǒng)初始設(shè)置的賬務(wù)系統(tǒng)接口,自動(dòng)與賬務(wù)系統(tǒng)進(jìn)行對(duì)賬,并根據(jù)對(duì)帳結(jié)果和初始設(shè)置決定是否結(jié)賬。應(yīng)收款管理系統(tǒng):(一)、系統(tǒng)初始化1、選項(xiàng)設(shè)置2、初始設(shè)置3、單據(jù)設(shè)計(jì)(1)科目設(shè)置(2)壞賬準(zhǔn)備設(shè)置(3)賬齡區(qū)間設(shè)置 4、余額錄入(二)、日常業(yè)務(wù)處理1、應(yīng)收單據(jù)(1)錄入(2)審核

7、2、收款單據(jù)(1)錄入(2)審核3、票據(jù)管理4、轉(zhuǎn)賬處理5、壞賬處理6、生成憑證應(yīng)付款管理系統(tǒng):(一)、系統(tǒng)初始化1、選項(xiàng)設(shè)置2、初始設(shè)置3、單據(jù)設(shè)計(jì)4、余額錄入(二)、日常業(yè)務(wù)處理1、應(yīng)付單據(jù)(1)錄入(2)審核2、付款單據(jù)(1)錄入(2)審核3、票據(jù)管理4、轉(zhuǎn)賬處理6、生成憑證三、實(shí)驗(yàn)步驟:(一)、系統(tǒng)初始化(二)、總賬系統(tǒng)(三)、UFO報(bào)表系統(tǒng)(因?qū)W習(xí)需要,把報(bào)表系統(tǒng)的操作提前)(四)、薪資管理系統(tǒng)(五)、固定資產(chǎn)管理系統(tǒng)(六)、應(yīng)收款管理系統(tǒng)(七)、應(yīng)付款管理系統(tǒng)系統(tǒng)之間的關(guān)系如圖所示:應(yīng)收款管理系統(tǒng)薪資管理系統(tǒng)應(yīng)收款管理系統(tǒng)薪資管理系統(tǒng)總賬系統(tǒng)UFO報(bào)表系統(tǒng)總賬系統(tǒng)UFO報(bào)表系統(tǒng)固定

8、資產(chǎn)管理系統(tǒng)應(yīng)付款管理系統(tǒng)固定資產(chǎn)管理系統(tǒng)應(yīng)付款管理系統(tǒng)(一)總賬系統(tǒng)與其他系統(tǒng)的關(guān)系總賬系統(tǒng)是財(cái)務(wù)管理系統(tǒng)的一個(gè)基本子系統(tǒng),它概括地反映企業(yè)供產(chǎn)銷等全部經(jīng)濟(jì)業(yè)務(wù)的綜合信息,在財(cái)務(wù)管理中處于中心地位。(二)薪資管理系統(tǒng)與其他系統(tǒng)的關(guān)系薪資管理系統(tǒng)總賬系統(tǒng)、成本管理、報(bào)表管理(三)固定資產(chǎn)管理系統(tǒng)與其他系統(tǒng)的關(guān)系固定資產(chǎn)管理系統(tǒng)總賬系統(tǒng)、成本管理(折舊)、報(bào)表管理(四)應(yīng)收款系統(tǒng)與其他系統(tǒng)的關(guān)系銷售系統(tǒng)應(yīng)收系統(tǒng)總賬系統(tǒng)(五)應(yīng)付賬款系統(tǒng)與其他系統(tǒng)的關(guān)系采購系統(tǒng)應(yīng)付系統(tǒng)總賬系統(tǒng)(六)報(bào)表系統(tǒng)與其他系統(tǒng)的主要關(guān)系其他系統(tǒng)總賬系統(tǒng)報(bào)表系統(tǒng)四、實(shí)驗(yàn)成果:總賬系統(tǒng):利用會(huì)計(jì)科目體系,輸入和處理各種記賬憑證

9、,完成記賬、對(duì)賬、結(jié)賬工作,輸出各種賬簿。薪資管理系統(tǒng):建立工資核算賬套和確定工資政策、建立工資項(xiàng)目、設(shè)置工資項(xiàng)目計(jì)算公式、計(jì)算職工工資(應(yīng)發(fā)、實(shí)發(fā)、個(gè)人所得稅)、計(jì)提職工福利費(fèi)、工會(huì)經(jīng)費(fèi)和職工教育培訓(xùn)費(fèi)費(fèi)、輸出工資賬表。固定資產(chǎn)系統(tǒng):建立固定資產(chǎn)核算賬套、基礎(chǔ)設(shè)置、固定資產(chǎn)增減變動(dòng)處理、計(jì)提固定資產(chǎn)折舊、固定資產(chǎn)賬表應(yīng)收款管理系統(tǒng):實(shí)現(xiàn)本企業(yè)與供應(yīng)商之間業(yè)務(wù)往來賬款的核算與管理。以采購發(fā)票、費(fèi)用單、其他應(yīng)付單等原始單據(jù)為依據(jù),記錄采購業(yè)務(wù)及其他業(yè)務(wù)所形成的往來款項(xiàng)、處理應(yīng)付款項(xiàng)的支付、轉(zhuǎn)賬等情況、進(jìn)行票據(jù)處理,實(shí)現(xiàn)對(duì)應(yīng)付票據(jù)的管理。應(yīng)付款管理系統(tǒng):實(shí)現(xiàn)企業(yè)與供應(yīng)商之間業(yè)務(wù)往來賬款的核算與管理

10、。以采購發(fā)票、費(fèi)用單、其他應(yīng)付單等原始單據(jù)為依據(jù),記錄采購業(yè)務(wù)及其他業(yè)務(wù)所形成的往來款項(xiàng)。處理應(yīng)付款項(xiàng)的支付、轉(zhuǎn)賬等情況。進(jìn)行票據(jù)處理,實(shí)現(xiàn)對(duì)應(yīng)付票據(jù)的管理。UFO報(bào)表系統(tǒng):對(duì)報(bào)表進(jìn)行了制作和管理。五、收獲與體會(huì)在學(xué)習(xí)使用ERP的時(shí)候我遇到了不少問題。第一,在做綜合實(shí)驗(yàn)之前我并不了解帳套時(shí)間的設(shè)置對(duì)于使用ERP財(cái)務(wù)管理系統(tǒng)的重要性,沒按教材設(shè)置時(shí)間讓我在后面遇到了不少麻煩,因此后來我在做綜合實(shí)驗(yàn)的時(shí)候每一步都謹(jǐn)遵時(shí)間沒設(shè)好的教訓(xùn),按照教材來設(shè)置時(shí)間。第二,做第三章時(shí)在結(jié)賬前由于沒有導(dǎo)出帳套,以致我不能繼續(xù)完成后面的實(shí)驗(yàn),因此我詢問老師后進(jìn)行了一次反結(jié)賬,使實(shí)驗(yàn)?zāi)軌蚶^續(xù)進(jìn)行。第三,我在做應(yīng)付款系

11、統(tǒng)的實(shí)驗(yàn)時(shí)因?yàn)楹雎粤藨?yīng)付款系統(tǒng)的啟用日期必須和總賬系統(tǒng)一致,所以導(dǎo)致應(yīng)付款系統(tǒng)的對(duì)帳功能不可用,因此我只好重新引入帳套再做一遍,同時(shí)我也明白到系統(tǒng)啟用日期一致的重要性。第四,在使用薪資管理系統(tǒng)時(shí),我沒有注意到工資項(xiàng)目設(shè)置時(shí)增項(xiàng)減項(xiàng)的區(qū)別,導(dǎo)致在輸入公式時(shí)遇到阻礙,后來我想重新設(shè)置增減項(xiàng),卻發(fā)現(xiàn)已經(jīng)不能選擇了。經(jīng)過摸索,我找到的解決方法是現(xiàn)關(guān)閉工資類別,再去修改工資項(xiàng)目的設(shè)置。第五,我還遇到過憑仗不能審核的情況,系統(tǒng)提示該憑證為應(yīng)付系統(tǒng)控制的憑證,我當(dāng)時(shí)也是百思不得其解,為什么我不能生成憑證呢?后來摸索后發(fā)現(xiàn)只要打開應(yīng)收款管理系統(tǒng)問題便可解決。ERP是將企業(yè)所有資源進(jìn)行整合集成管理,簡單的說是將

12、企業(yè)的三大流,物流,資金流,信息流進(jìn)行全面一體化管理的管理信息系統(tǒng),他不僅可以用于生產(chǎn)企業(yè)管理,而且許多其他類型的企業(yè)也可導(dǎo)入 ERP系統(tǒng)進(jìn)行資源計(jì)劃和管理。ERP系統(tǒng)具有集成性,先進(jìn)性,統(tǒng)一性,完整性和開發(fā)性。我們學(xué)習(xí)的重點(diǎn)是財(cái)務(wù)管理子系統(tǒng),通過綜合實(shí)驗(yàn),我對(duì)所學(xué)的知識(shí)有了進(jìn)一步的了解。在實(shí)驗(yàn)的過程中,出現(xiàn)了一些問題,不過最后都得以解決。然而通過這些錯(cuò)誤,使我對(duì)這些知識(shí)點(diǎn)更加印象深刻。ERP是一門十分有用的學(xué)科,通過對(duì)其認(rèn)真學(xué)習(xí),可以學(xué)習(xí)不少先進(jìn)的管理思想。ERP是一門綜合性的學(xué)科,通過對(duì)其學(xué)習(xí)我感覺是對(duì)有些科目的一些回顧和綜合,像會(huì)計(jì)學(xué)、管理學(xué)等。之所以對(duì)ERP的操作會(huì)遇到這樣或那樣的關(guān)卡

13、,最大的問題在于缺乏經(jīng)驗(yàn)。通過對(duì)ERP的學(xué)習(xí)尤其是上機(jī)實(shí)驗(yàn)我更發(fā)覺了自己的不足之處,動(dòng)手操作能力比較弱,雖然理論上頭頭是道,可真正做到電腦跟前時(shí),頭腦反應(yīng)速度似乎很慢很慢,即便對(duì)里面的相關(guān)知識(shí)點(diǎn)都有相當(dāng)?shù)牧私猓僮髌饋砀杏X也是力不從心,這可能是與自己平時(shí)不注意鍛煉動(dòng)手能力有著直接的聯(lián)系,另外經(jīng)驗(yàn)不足也是一個(gè)原因。 通過對(duì) ERP 系統(tǒng)的學(xué)習(xí),我已經(jīng)對(duì)其管理理念與具體操作流程有了一定的了解。附錄資料:不需要的可以自行刪除 busybox詳解制作根文件系統(tǒng)詳解制作根文件系統(tǒng) 一、FHS(Filesystem Hierarchy Standard)標(biāo)準(zhǔn)介紹當(dāng)我們?cè)趌inux下輸入ls / 的時(shí)候,見

14、到的目錄結(jié)構(gòu)以及這些目錄下的內(nèi)容都大同小異,這是因?yàn)樗械膌inux發(fā)行版在對(duì)根文件系統(tǒng)布局上都遵循FHS標(biāo)準(zhǔn)的建議規(guī)定。該標(biāo)準(zhǔn)規(guī)定了根目錄下各個(gè)子目錄的名稱及其存放的內(nèi)容:目錄名存放的內(nèi)容/bin必備的用戶命令,例如ls、cp等/sbin必備的系統(tǒng)管理員命令,例如ifconfig、reboot等/dev設(shè)備文件,例如mtdblock0、tty1等/etc系統(tǒng)配置文件,包括啟動(dòng)文件,例如inittab等/lib必要的鏈接庫,例如C鏈接庫、內(nèi)核模塊/home普通用戶主目錄/rootroot用戶主目錄/usr/bin非必備的用戶程序,例如find、du等/usr/sbin非必備的管理員程序,例如c

15、hroot、inetd等/usr/lib庫文件/var守護(hù)程序和工具程序所存放的可變,例如日志文件/proc用來提供內(nèi)核與進(jìn)程信息的虛擬文件系統(tǒng),由內(nèi)核自動(dòng)生成目錄下的內(nèi)容/sys用來提供內(nèi)核與設(shè)備信息的虛擬文件系統(tǒng),由內(nèi)核自動(dòng)生成目錄下的內(nèi)容/mnt文件系統(tǒng)掛接點(diǎn),用于臨時(shí)安裝文件系統(tǒng)/tmp臨時(shí)性的文件,重啟后將自動(dòng)清除制作根文件系統(tǒng)就是要建立以上的目錄,并在其中建立完整目錄內(nèi)容。其過程大體包括:編譯安裝busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目錄 利用交叉編譯工具鏈,構(gòu)建/lib目錄 手工構(gòu)建/etc目錄 手工構(gòu)建最簡化的/dev目錄 創(chuàng)建其它空目錄

16、 配置系統(tǒng)自動(dòng)生成/proc目錄 利用udev構(gòu)建完整的/dev目錄 制作根文件系統(tǒng)的jffs2映像文件 下面就來詳細(xì)介紹這個(gè)過程。二、編譯安裝busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目錄這些目錄下存儲(chǔ)的主要是常用命令的二進(jìn)制文件。如果要自己編寫這幾百個(gè)常用命令的源程序,my god, 這簡直是一個(gè)噩夢(mèng)!好在我們有嵌入式Linux系統(tǒng)的瑞士軍刀busybox,事情就簡單很多。1、從 HYPERLINK / / 下載busybox-1.7.0.tar.bz22、tar xjvf busybox-1.7.0.tar.bz2解包3、修改Makefile文件175

17、 ARCH ?= arm176 CROSS_COMPILE ?= arm-linux- 4、make menuconfig配置busyboxbusybox配置主要分兩部分。第一部分是Busybox Settings,主要編譯和安裝busybox的一些選項(xiàng)。這里主要需要配置:1)、Build Options - Build BusyBox as a static binary (no shared libs),表示編譯busybox時(shí),是否靜態(tài)鏈接C庫。我們選擇動(dòng)態(tài)鏈接C庫。2)、Installation Options - Applets links (as soft-links) - (X)

18、 as soft-links,表示安裝busybox時(shí),將各個(gè)命令安裝為指向busybox的軟鏈接還是硬鏈接。我們選擇軟鏈接。3)、Installation Options - (/work/nfs_root/fs_mini3) BusyBox installation prefix,表示busybox的安裝位置。我們選擇/work/nfs_root/fs_mini34)Busybox Library Tuning。保留Command line editing以支持命令行編輯;保留History size以支持記憶歷史命令;選中Tab completion和Username completio

19、n以支持命令自動(dòng)補(bǔ)全 第二部分是Applets,他將busybox的支持的幾百個(gè)命令分門別類。我們只要在各個(gè)門類下選擇想要的命令即可。這里我們基本保持默認(rèn)設(shè)置。1)選中Networking Utilities - httpd下的Enable -u option,以啟用http服務(wù)器的功能allows the server to run as a specific user5、編譯busyboxmake6、安裝busyboxmake install安裝完成后,可以看到在/work/nfs_root/fs_mini3目錄下生成了binsbinusr/binusr/sbin目錄,其下包含了我們常用的

20、命令,這些命令都是指向bin/busybox的軟鏈接,而busybox本身的大小不到800K:dennisdennis-desktop:/work/nfs_root/fs_mini3$ lsbin linuxrc sbin usrdennisdennis-desktop:/work/nfs_root/fs_mini3$ ls -l bintotal 740lrwxrwxrwx 1 dennis dennis 7 2010-04-03 23:57 addgroup - busyboxlrwxrwxrwx 1 dennis dennis 7 2010-04-03 23:57 adduser - b

21、usyboxlrwxrwxrwx 1 dennis dennis 7 2010-04-03 23:57 ash - busybox-rwxr-xr-x 1 dennis dennis 749632 2010-04-03 23:57 busyboxlrwxrwxrwx 1 dennis dennis 7 2010-04-03 23:57 cat busybox 而普通PC機(jī)上的ls命令就有差不多80K的大?。?dennisdennis-desktop:/work/nfs_root/fs_mini3$ ls -l /bin/ls-rwxr-xr-x 1 root root 78004 2007-0

22、9-29 20:51 /bin/ls busybox以它嬌小的身軀容納了數(shù)以百計(jì)的命令代碼,實(shí)在是讓人佩服不已,其不愧嵌入式系統(tǒng)瑞士軍刀之美譽(yù)。據(jù)說,busybox的作者身患絕癥,這更讓人欽佩GNU開源軟件的作者們。 三、利用交叉編譯工具鏈,構(gòu)建/lib目錄 光有應(yīng)用程序(命令)是不夠的,因?yàn)閼?yīng)用程序本身需要使用C庫的庫函數(shù),因此還必需制作for ARM的C庫,并將其放置于/lib目錄。my god,要自己寫C庫的源代碼嗎?不用!還記得交叉編譯工具鏈的3個(gè)組成部分嗎?交叉編譯器、for ARM的C庫和二進(jìn)制工具。哈哈,for ARM的C庫是現(xiàn)成的,我們只需要拷貝過來就可以了。遺憾的是:整個(gè)C庫

23、目錄下的文件總大小有26M。而我們根文件系統(tǒng)所在分區(qū)不過區(qū)區(qū)16M而已,根本放不下。怎么辦呢? dennisdennis-desktop:/work/nfs_root/fs_mini3$ du -s -si /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib26M /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib 需要C庫目錄下所有的文件嗎?no,absolutely no! 讓我們來分析一下glibc庫目錄下內(nèi)容的組成。該目錄下的子目錄和文件共分8類: 目標(biāo)文件,如crtn.o,用于gcc鏈接可執(zhí)行文件

24、 libtool庫文件(.la),在鏈接庫文件時(shí)這些文件會(huì)被用到,比如他們列出了當(dāng)前庫文件所依賴的其它庫文件,程序運(yùn)行時(shí)無需這些文件 gconv目錄,里面是各種鏈接腳本,在編譯應(yīng)用程序時(shí),他們用于指定程序的運(yùn)行地址,各段的位置等 靜態(tài)庫文件(.a),例如libm.a,libc.a 動(dòng)態(tài)庫文件 (.so、.so.0-9*) 動(dòng)態(tài)鏈接庫加載器ld-2.3.6.so、ld-linux.so.2 其它目錄及文件很顯然,第1、2、3、4、7類文件和目錄是不需要拷貝的。由于動(dòng)態(tài)鏈接的應(yīng)用程序本身并不含有它所調(diào)用的C庫函數(shù)的代碼,因此執(zhí)行時(shí)需要?jiǎng)討B(tài)鏈接庫加載器來為它加載相應(yīng)的C庫文件,所以第6類文件是需要拷

25、貝的。除此之外,第5類文件當(dāng)然要拷貝。但第5類文件的大小也相當(dāng)大。dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ du -c -si *.so* 7.2M total 需要全部拷貝嗎?非也,非也!其實(shí),需要哪些庫完全取決于要運(yùn)行的應(yīng)用程序使用了哪些庫函數(shù)。如果我們只制作最簡單的系統(tǒng),那么我們只需要運(yùn)行busybox這一個(gè)應(yīng)用程序即可。通過執(zhí)行 dennisdennis-desktop:/work/nfs_root/fs_mini3$ arm-linux-readelf -a bin/busybox |

26、grep Shared0 x00000001 (NEEDED) Shared library: libcrypt.so.10 x00000001 (NEEDED) Shared library: libm.so.60 x00000001 (NEEDED) Shared library: libc.so.6 可知:busybox只用到了3個(gè)庫:通用C庫(libc)、數(shù)學(xué)庫(libm)、加密庫(libcrypt),因此我們只需要拷貝這3個(gè)庫的庫文件即可。但是每個(gè)庫都有4個(gè)文件,4個(gè)文件都要拷貝嗎?當(dāng)然不是。 dennisdennis-desktop:/work/tools/gcc-3.4.5-gl

27、ibc-2.3.6/arm-linux/lib$ ls -l libcrypt.-*-rwxr-xr-x 1 dennis dennis 30700 2008-01-22 05:32 libcrypt-2.3.6.so-rw-r-r- 1 dennis dennis 23118 2008-01-22 05:32 libcrypt.alrwxrwxrwx 1 dennis dennis 13 2008-12-22 15:38 libcrypt.so - libcrypt.so.1lrwxrwxrwx 1 dennis dennis 17 2008-12-22 15:38 libcrypt.so.

28、1 - libcrypt-2.3.6.sodennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ ls -l libm.-*-rwxr-xr-x 1 dennis dennis 779096 2008-01-22 05:31 libm-2.3.6.so-rw-r-r- 1 dennis dennis 1134282 2008-01-22 05:32 libm.alrwxrwxrwx 1 dennis dennis 9 2008-12-22 15:38 libm.so - libm.so.6lrwxrwxrwx

29、1 dennis dennis 13 2008-12-22 15:38 libm.so.6 - libm-2.3.6.sodennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ ls -l libc.-*-rwxr-xr-x 1 dennis dennis 1435660 2008-01-22 05:48 libc-2.3.6.so-rw-r-r- 1 dennis dennis 2768280 2008-01-22 05:31 libc.a-rw-r-r- 1 dennis dennis 195 2008-0

30、1-22 05:34 libc.solrwxrwxrwx 1 dennis dennis 13 2008-12-22 15:38 libc.so.6 - libc-2.3.6.so 4個(gè)文件中的.a文件是靜態(tài)庫文件,是不需要拷貝的。另外3個(gè)文件是: 實(shí)際的共享鏈接庫:libLIBRARY_NAME-GLIBC_VERSION.so。當(dāng)然需要拷貝。 主修訂版本的符號(hào)鏈接,指向?qū)嶋H的共享鏈接庫:libLIBRARY_NAME.so.MAJOR_REVISION_VERSION,程序一旦鏈接了特定的鏈接庫,將會(huì)參用該符號(hào)鏈接。程序啟動(dòng)時(shí),加載器在加載程序前,會(huì)檢索該文件。所以需要拷貝。 與版本無關(guān)的

31、符號(hào)鏈接,指向主修訂版本的符號(hào)連接(libc.so是唯一的例外,他是一個(gè)鏈接命令行:libLIBRARY_NAME.so,是為編譯程序時(shí)提供一個(gè)通用條目)。這些文件在程序被編譯時(shí)會(huì)被用到,但在程序運(yùn)行時(shí)不會(huì)被用到,所以不必拷貝它。關(guān)于共享庫的2個(gè)符號(hào)鏈接的作用的特別說明:當(dāng)我們使用gcc hello.c -o hello -lm編譯程序時(shí),gcc會(huì)根據(jù)-lm的指示,加頭(lib)添尾(.so)得到libm.so,從而沿著與版本無關(guān)的符號(hào)鏈接(libm.so - libm.so.6)找到libm.so.6并記錄在案(hello的ELF頭中),表示hello需要使用libm.so.6這個(gè)庫文件所代

32、表的數(shù)學(xué)庫中的庫函數(shù)。而當(dāng)hello被執(zhí)行的時(shí)候,動(dòng)態(tài)鏈接庫加載器會(huì)從hello的ELF頭中找到libm.so.6這個(gè)記錄,然后沿著主修訂版本的符號(hào)鏈接(libm.so.6 - libm-2.3.6.so)找到實(shí)際的共享鏈接庫libm-2.3.6.so,從而將其與hello作動(dòng)態(tài)鏈接??梢姡c版本無關(guān)的符號(hào)鏈接是供編譯器使用的,主修訂版本的符號(hào)鏈接是供動(dòng)態(tài)鏈接庫加載器使用的,而實(shí)際的共享鏈接庫則是供應(yīng)用程序使用的。通過以上分析,我們只需要拷貝3個(gè)庫(每個(gè)庫各1個(gè)主修訂版本的符號(hào)鏈接和1個(gè)實(shí)際的共享鏈接庫)以及動(dòng)態(tài)鏈接庫加載器(1個(gè)符號(hào)鏈接和1個(gè)實(shí)體文件)。步驟如下:dennisdennis-d

33、esktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ mkdir /work/nfs_root/fs_mini3/lib dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp libcrypt-* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp -l libcrypt.so.* /work/nfs

34、_root/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp libm-* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp -l libm.so.* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-lin

35、ux/lib$ cp libc-* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp -l libc.so.* /work/nfs_root/fs_mini3/lib dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp -l ld-* /work/nfs_root/fs_mini3/lib 四、手工構(gòu)建/etc目錄 /etc目錄存放的是系統(tǒng)程序的主配置文

36、件,因此需要哪些配置文件取決于要運(yùn)行哪些系統(tǒng)程序。即使最小的系統(tǒng)也一定會(huì)運(yùn)行1號(hào)用戶進(jìn)程init,所以我們至少要手工編寫init的主配置文件inittab。busybox的inittab文件的語法、語義與傳統(tǒng)的SYSV的inittab有所不同。 inittab文件中每個(gè)條目用來定義一個(gè)需要init啟動(dòng)的子進(jìn)程,并確定它的啟動(dòng)方式,格式為:。例如:ttySAC0:askfirst:-/bin/sh 表示子進(jìn)程要使用的控制臺(tái),若省略則使用與init進(jìn)程一樣的控制臺(tái) 表示運(yùn)行級(jí)別,busybox init程序這個(gè)字段沒有意義 表示init進(jìn)程如何控制這個(gè)子進(jìn)程 sysinit:系統(tǒng)啟動(dòng)后最先執(zhí)行,只

37、執(zhí)行一次,init進(jìn)程等待它結(jié)束后才繼續(xù)執(zhí)行其它動(dòng)作 wait:系統(tǒng)執(zhí)行完sysinit條目后執(zhí)行,只執(zhí)行一次,init進(jìn)程等待它結(jié)束后才繼續(xù)執(zhí)行其它動(dòng)作 once:系統(tǒng)執(zhí)行完wait條目后執(zhí)行,只執(zhí)行一次,init進(jìn)程不等待它結(jié)束 respawn:啟動(dòng)完once進(jìn)程后,init進(jìn)程監(jiān)測(cè)發(fā)現(xiàn)子進(jìn)程退出時(shí),重新啟動(dòng)它 askfirst:啟動(dòng)完respawn進(jìn)程后,與respawn類似,不過init進(jìn)程先輸出” Please press Enter to activate this console“,等用戶輸入回車后才啟動(dòng)子進(jìn)程 shutdown:當(dāng)系統(tǒng)關(guān)機(jī)時(shí) restart:Busybox中配置

38、了CONFIG_FEATURE_USE_INITAB,并且init進(jìn)程接收到SIGUP信號(hào)時(shí)執(zhí)行,先重新讀取、解析/etc/inittab文件,再執(zhí)行restart程序 ctrlaltdel:按下ctrl+alt+del鍵時(shí)執(zhí)行,不過在串口控制臺(tái)中無法輸入它 表示進(jìn)程對(duì)應(yīng)的二進(jìn)制文件。如果前面有-號(hào),表示該程序是“可以與用戶進(jìn)行交互的”我們制作最簡單的/etc/inittab文件,其內(nèi)容如下::sysinit:/etc/init.d/rcS:askfirst:-/bin/sh:ctrlaltdel:/sbin/reboot:shutdown:/bin/umount -a r 制作最簡單的腳本程

39、序文件/etc/init.d/rcS,其內(nèi)容如下: #!/bin/shifconfig eth0 7修改shell腳本文件/etc/init.d/rcS的權(quán)限,以使其可被執(zhí)行:# chmod a+x /etc/init.d/rcS五、手工構(gòu)建最簡化的/dev目錄 在linux機(jī)器上,執(zhí)行l(wèi)s /dev可看到幾百個(gè)設(shè)備文件,我需要手工創(chuàng)建它們嗎?maybe,我只需要手工創(chuàng)建幾個(gè)設(shè)備文件!我怎么知道我應(yīng)該創(chuàng)建哪幾個(gè)設(shè)備文件呢?管它呢,先看看開發(fā)板上可愛的linux的反應(yīng)再說。 啟動(dòng)Linux操作系統(tǒng),顯示: VFS: Mounted root (nfs filesystem).Freeing in

40、it memory: 112KWarning: unable to open an initial console. 這說明,內(nèi)核已經(jīng)成功掛載根文件系統(tǒng),但卻未能成功啟動(dòng)第1個(gè)用戶進(jìn)程init。通過錯(cuò)誤消息“unable to open an initial console”搜索內(nèi)核源代碼,找到init/main.c文件。748 static int noinline init_post(void)749 750 free_initmem();751 unlock_kernel();752 mark_rodata_ro();753 system_state = SYSTEM_RUNNING;7

41、54 numa_default_policy();755 756 if (sys_open(const char _user *) /dev/console, O_RDWR, 0) 0)757 printk(KERN_WARNING Warning: unable to open an initial console.n);758 759 (void) sys_dup(0);760 (void) sys_dup(0);761 762 if (ramdisk_execute_command) 763 run_init_process(ramdisk_execute_command);764 pr

42、intk(KERN_WARNING Failed to execute %sn,765 ramdisk_execute_command);766 767 768 /*769 * We try each of these until one succeeds.770 *771 * The Bourne shell can be used instead of init if we are772 * trying to recover a really broken machine.773 */774 if (execute_command) 775 run_init_process(execut

43、e_command);776 printk(KERN_WARNING Failed to execute %s. Attempting 777 defaults.n, execute_command);778 779 run_init_process(/sbin/init);780 run_init_process(/etc/init);781 run_init_process(/bin/init);782 run_init_process(/bin/sh);783 784 panic(No init found. Try passing init= option to kernel.);78

44、5 顯然,內(nèi)核錯(cuò)誤是由175行不能打開/dev/console所致。通過查看已經(jīng)安裝好的linux機(jī)器的/dev/console設(shè)備文件,可知其是字符設(shè)備文件,主設(shè)備號(hào)為5,次設(shè)備號(hào)為1: dennisdennis-desktop:/work/nfs_root/fs_mini3/etc$ ls -l /dev/consolecrw 1 root root 5, 1 2010-04-08 08:40 /dev/console 因此,我們使用下面的命令創(chuàng)建它: HYPERLINK mailto:dennisdennis-desktop:/work/nfs_root/fs_mini3/dev$ de

45、nnisdennis-desktop:/work/nfs_root/fs_mini3/dev$ sudo mknod console c 5 1 還需要?jiǎng)?chuàng)建其它設(shè)備文件嗎?只有天知道!再看看linux的反應(yīng)。 VFS: Mounted root (nfs filesystem).Freeing init memory: 112Kinit: cant open /dev/null: No such file or directory 這次我們有經(jīng)驗(yàn)了,如法炮制,創(chuàng)建/dev/null設(shè)備文件:dennisdennis-desktop:/work/nfs_root/fs_mini3/dev$ su

46、do mknod null c 1 3 再次重啟開發(fā)板上的linux,顯示 VFS: Mounted root (nfs filesystem).Freeing init memory: 112Kinit started: BusyBox v1.7.0 (2010-04-03 23:53:55 CST)starting pid 229, tty : /etc/init.d/rcS Please press Enter to activate this console.starting pid 231, tty : /bin/sh# 哈哈,我們成功了,終于可以K歌去了。六、創(chuàng)建其它空目錄K完歌回

47、來,繼續(xù)戰(zhàn)斗。dennisdennis-desktop:/work/nfs_root/fs_mini3$ mkdir home root proc sys tmp mnt var再次重啟動(dòng)開發(fā)板上的linux。咦,似乎有些問題。VFS: Mounted root (nfs filesystem).Freeing init memory: 112Kinit started: BusyBox v1.7.0 (2010-04-03 23:53:55 CST)starting pid 229, tty : /etc/init.d/rcS Please press Enter to activate this console.starting pid 231, tty : /bin/sh# ps PID Uid VSZ Stat Command# ps竟然看不到任何進(jìn)程的存在!讓我想想。對(duì)了,ps的機(jī)制是通過查看/proc中的內(nèi)容來獲得進(jìn)程信息的。那么,目前/proc里有哪些內(nèi)容呢?# ls /proc# 竟然空空如野!這可如何是好?七、配置系統(tǒng)自動(dòng)生成/proc目錄其實(shí)/proc是用來提供內(nèi)核與進(jìn)程信息的虛擬文件系統(tǒng),由內(nèi)核自動(dòng)生成目錄下的內(nèi)容。不過需要我們?cè)O(shè)置一下,將/etc/init.d/rcS修改為:#!/bin/shifconfig eth0 7moun

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論