版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第9章嵌入式Linux根文件系統(tǒng)9.1文件系統(tǒng)9.2Linux文件系統(tǒng)9.3嵌入式閃存文件系統(tǒng)9.4構(gòu)建嵌入式Linux根文件系統(tǒng)原理9.5構(gòu)建嵌入式Linux根文件系統(tǒng)實例——
CramFS根文件系統(tǒng)構(gòu)建(博創(chuàng)2410)本章小結(jié)
9.1文件系統(tǒng)
9.1.1文件系統(tǒng)簡介
理論上說一個嵌入式設(shè)備如果內(nèi)核能夠運行起來,且不需要運行用戶進(jìn)程的話,是不需要文件系統(tǒng)的,文件系統(tǒng)簡單的說就是一種目錄結(jié)構(gòu)。由于Linux操作系統(tǒng)的設(shè)備在系統(tǒng)中是以文件的形式存在,將這些文件進(jìn)行分類管理以及提供和內(nèi)核交互的接口,就形成一定的目錄結(jié)構(gòu)也就是文件系統(tǒng)。文件系統(tǒng)是為用戶反映系統(tǒng)的一種形式,為用戶提供一個檢測控制系統(tǒng)的接口。9.1.2文件和目錄
1.文件和目錄概述
1)文件
絕大多數(shù)操作系統(tǒng)(從DOS到Windows,從Unix到Linux)中都有文件的概念。簡單的講文件就是一組相關(guān)紀(jì)錄的集合。Linux中文件是無結(jié)構(gòu)的字符流,即文件中的任兩個字節(jié)是完全獨立的。具體的信息要放到相應(yīng)的環(huán)境中才能理解。
2)目錄
文件多了就會發(fā)生混亂,因此目錄就出現(xiàn)了。目錄就是存放一組文件的“夾子”,Windows中的“文件夾”就是這個概念。目錄就是一組相關(guān)文件的集合,我們通常都通過目錄來管理文件。目錄和文件一樣也有自己的名字。而一個目錄下面除了可以存放文件之外,還可以存放目錄,稱為這個目錄的子目錄。這個子目錄之下還可以有它自己的子目錄,依此類推從而形成一個樹狀目錄結(jié)構(gòu)。
3)路徑
使用任何操作系統(tǒng)的用戶應(yīng)該都對這個概念較熟悉。打個比方,某個文件就好像是在一個寫字樓中的一間辦公室內(nèi)的一把椅子,當(dāng)然還有其他很多椅子也在這個辦公室里。現(xiàn)在要把它找出來坐在上面辦公,那么只知道這個椅子是什么樣的還不行,還需要知道如何到達(dá)那里。文件名就是這把椅子,而路徑就是用來說明如何找到該椅子的。
4)文件目錄命名規(guī)則
和DOS相比,Linux文件命名相當(dāng)寬松。Linux文件名可以由字母、數(shù)字和一些標(biāo)點符號組成。文件名中不能包含有空格和下列的字符:
!@#$%^&*()"\/|;<>2.文件類型
Linux文件系統(tǒng)中包括以下類型的文件:
(1)文本文件。
(2)二進(jìn)制文件。
(3)目錄文件。
(4)連接文件。
(5)設(shè)備文件。
(6)管道文件。9.1.3文件權(quán)限
1.文件權(quán)限的概念
與Unix一樣,Linux系統(tǒng)也是多用戶系統(tǒng)。這樣就產(chǎn)生了一個用戶的文件會不會暴露在另一個用戶面前的問題。為了保護(hù)用戶的私人文件不被其他用戶所侵犯,就出現(xiàn)了文件權(quán)限的概念。這種文件權(quán)限的概念允許文件和目錄歸一個特定的用戶所擁有。用戶權(quán)限除了對他所擁有的文件或目錄進(jìn)行存取或其他操作,也包括限制其他用戶在這些文件上的存取和操作。
2.文件權(quán)限的構(gòu)成
文件的權(quán)限有三種:讀、寫和執(zhí)行。讀權(quán)限允許用戶閱讀文件的內(nèi)容,對目錄來說,允許用戶列出目錄中的內(nèi)容;寫權(quán)限允許用戶寫和修改文件,對目錄來說,寫權(quán)限允許用戶在這個目錄中建立新文件或刪除文件;執(zhí)行權(quán)限允許用戶運行文件,對目錄來說,執(zhí)行權(quán)限允許用戶進(jìn)入和退出該目錄。
3.文件權(quán)限的依賴性
要特別注意的是,用戶對文件所擁有的權(quán)限依賴于他對文件所屬的目錄所擁有的權(quán)限。雖然一個文件的權(quán)限為“-rwxrwxrwx”,但其他用戶也只有在對該文件所屬目錄擁有讀寫和執(zhí)行權(quán)限時,才能夠?qū)υ撐募M(jìn)行讀、寫和執(zhí)行。
4.改變文件權(quán)限
在系統(tǒng)應(yīng)用中有時需要讓其他用戶使用某個他本來不能使用的文件的時候,就需要改變文件的權(quán)限。在Linux中,使用chmod命令來進(jìn)行有關(guān)權(quán)限的設(shè)置。但只有當(dāng)文件的擁有者對某個文件有寫的權(quán)限時,他才能夠改變該文件的權(quán)限(超級用戶對所有文件進(jìn)行權(quán)限設(shè)置)。chmod的命令格式主要有兩種,下面是直接設(shè)置文件權(quán)限的第一種格式:
chmod[-R]modefilename1filename2...9.1.4文件鏈接
1.硬鏈接
Linux系統(tǒng)是通過使用文件的i節(jié)點號來標(biāo)識文件的,i節(jié)點號是文件系統(tǒng)中文件的唯一標(biāo)識符。目錄實際上是i節(jié)點號和其相應(yīng)文件名的一個列表。目錄中的每一個文件都是一個與特定的i節(jié)點的鏈接。硬鏈接就是為文件另取一個文件名并將它與原來的i節(jié)點鏈接??梢允褂?n命令來為一個文件建立多個鏈接。
2.符號鏈接
符號鏈接與硬鏈接不同,它是另一種類型的鏈接。符號鏈接允許用戶為文件另取一個名字,但卻不將其與i節(jié)點相鏈接。
可以用1n-s命令建立一個文件的符號鏈接。使用命令:
1n-sgyg01.gifnyp01.gif9.1.5文件系統(tǒng)
操作系統(tǒng)中負(fù)責(zé)管理和存儲文件信息的軟件機(jī)構(gòu)稱為文件管理系統(tǒng),簡稱文件系統(tǒng)。文件系統(tǒng)由三部分組成:
①與文件管理有關(guān)的軟件;
②被管理的文件;
③實施文件管理所需的數(shù)據(jù)結(jié)構(gòu)。
9.2Linux文件系統(tǒng)
9.2.1Linux文件系統(tǒng)概述
Linux中用戶能看到的文件空間是一個單樹狀結(jié)構(gòu)的,該樹的根在頂部,稱為根目錄(root),用“/”表示。文件空間中的各種目錄和文件從樹根向下分支。9.2.2Linux文件系統(tǒng)組成
Linux操作系統(tǒng)由一些目錄和文件組成。根據(jù)安裝的方式不同,這些目錄可能是不同的文件系統(tǒng)。通常,一個系統(tǒng)可以由多個文件系統(tǒng)組成:根分區(qū)文件系統(tǒng)(?/?),和安裝在?/usr下的文件系統(tǒng),還有其他安裝在?/home、/var的文件系統(tǒng)。其中,根文件系統(tǒng)必須是Linuxext2/3,或者ReiserFS等。9.2.3Linux文件系統(tǒng)管理
Linux文件系統(tǒng)管理最上層模塊是根文件系統(tǒng)。系統(tǒng)啟動時,必首先裝入“根”文件系統(tǒng),然后根據(jù)?/etc/fstab中制訂,逐個建立文件系統(tǒng)。此外,用戶也可以通過mount、umount操作,隨時安裝和卸載文件系統(tǒng)。9.2.4虛擬文件系統(tǒng)(VFS)
Linux支持多種文件系統(tǒng),包括ext2、ext3、vfat、ntfs、iso9660、jffs、romfs和nfs等,為了對各類文件系統(tǒng)進(jìn)行統(tǒng)一管理,Linux引入了虛擬文件系統(tǒng)VFS(VirtualFileSystem),為各類文件系統(tǒng)提供一個統(tǒng)一的操作界面和應(yīng)用編程接口。圖9-1Linux下的文件系統(tǒng)結(jié)構(gòu)
9.2.5安裝和卸載文件系統(tǒng)
要在Linux目錄樹中安裝一個文件系統(tǒng),必須要有實際要安裝的硬盤分區(qū)、光盤或軟盤,并且作為該文件系統(tǒng)安裝點的目錄必須是實際存在的。
手工安裝文件系統(tǒng)。命令是:
mount[options]<device><mount_point>
9.3嵌入式閃存文件系統(tǒng)
Linux啟動時,若系統(tǒng)不能從指定設(shè)備上掛載根文件系統(tǒng),則系統(tǒng)會出錯而退出啟動。之后可以自動或手動掛載其他的文件系統(tǒng)。因此,一個系統(tǒng)中可以同時存在不同的文件
系統(tǒng)。9.3.1嵌入式系統(tǒng)存儲設(shè)備及其管理機(jī)制分析
構(gòu)建適用于嵌入式系統(tǒng)的Linux文件系統(tǒng),必然會涉及到兩個關(guān)鍵點:一是文件系統(tǒng)類型的選擇,它關(guān)系到文件系統(tǒng)的讀寫性能、尺寸大?。涣硪粋€就是根文件系統(tǒng)內(nèi)容的選擇,它關(guān)系到根文件系統(tǒng)所能提供的功能及尺寸大小。
1.?Blkmem驅(qū)動層
Blkmem驅(qū)動是為uclinux專門設(shè)計的,也是最早的一種塊驅(qū)動程序之一,現(xiàn)在仍然有很多嵌入式Linux操作系統(tǒng)選用它作為塊驅(qū)動程序,尤其是在uClinux中。它相對來說是最簡單的,而且只支持建立在NOR型Flash和RAM中的根文件系統(tǒng)。使用Blkmem驅(qū)動,建立Flash分區(qū)配置比較困難,這種驅(qū)動程序為Flash提供了一些基本擦除/寫操作。
2.?RAMdisk驅(qū)動層
RAMdisk驅(qū)動層通常應(yīng)用在標(biāo)準(zhǔn)Linux中無盤工作站的啟動,對Flash存儲器并不提供任何的直接支持,RAMdisk就是在開機(jī)時,把一部分的內(nèi)存虛擬成塊設(shè)備,并且把之前所準(zhǔn)備好的檔案系統(tǒng)映像解壓縮到該RAMdisk環(huán)境中。當(dāng)在Flash中放置一個壓縮的文件系統(tǒng),可以將文件系統(tǒng)解壓到RAM,使用RAMdisk驅(qū)動層支持一個保持在RAM中的文件系統(tǒng)。
3.?MTD驅(qū)動層
為了盡可能避免針對不同的技術(shù)使用不同的工具,以及為不同的技術(shù)提供共同的能力,Linux內(nèi)核納入了MTD子系統(tǒng)(MemoryTechnologyDevice)。它提供了一致且統(tǒng)一的接口,讓底層的MTD芯片驅(qū)動程序無縫地與較高層接口組合在一起。JFFS2、Cramfs,、YAFFS等文件系統(tǒng)都可以被安裝成MTD塊設(shè)備。MTD驅(qū)動也可以為那些支持CFI接口的NOR型Flash提供支持。9.3.2基于Flash的文件系統(tǒng)
1.?Romfs
傳統(tǒng)型的Romfs文件系統(tǒng)是最常使用的一種文件系統(tǒng),它是一種簡單的、緊湊的、只讀的文件系統(tǒng),不支持動態(tài)擦寫保存,它按順序存放所有的文件數(shù)據(jù),所以這種文件系統(tǒng)格式支持應(yīng)用程序以XIP方式運行,在系統(tǒng)運行時,可以獲得可觀的RAM節(jié)省空間。uClinux系統(tǒng)通常采用Romfs文件系統(tǒng)。
2.?Cramfs
Cramfs是Linux的創(chuàng)始人LinusTorvalds開發(fā)的一種可壓縮只讀文件系統(tǒng),在Cramfs文件系統(tǒng)中,每一頁被單獨壓縮,可以隨機(jī)頁訪問,其壓縮比高達(dá)2?:?1,為嵌入式系統(tǒng)節(jié)省大量的Flash存儲空間。
3.?Ramfs/Tmpfs
Ramfs也是LinusTorvalds開發(fā)的,Ramfs文件系統(tǒng)把所有的文件都放在RAM里運行,通常是Flash系統(tǒng)用來存儲一些臨時性或經(jīng)常要修改的數(shù)據(jù)。
4.?JFFS2
JFFS2是RedHat公司基于JFFS開發(fā)的閃存文件系統(tǒng),最初是針對RedHat公司的嵌入式產(chǎn)品eCos開發(fā)的嵌入式文件系統(tǒng),所以JFFS2也可以用在Linux和uCLinux中。
5.?YAFFS
YAFFS/YAFFS2是一種和JFFSx類似的閃存文件系統(tǒng),它是專為嵌入式系統(tǒng)使用NAND型閃存而設(shè)計的一種日志型文件系統(tǒng)。和JFFS2相比,它減少了一些功能,所以速度更快,而且對內(nèi)存的占用比較小。此外,YAFFS自帶NAND芯片的驅(qū)動,并且為嵌入式系統(tǒng)提供了直接訪問文件系統(tǒng)的API,用戶可以不使用Linux中的MTD與VFS,直接對文件系統(tǒng)操作。9.3.3基于RAM的文件系統(tǒng)
1.?Ramdisk
Ramdisk是將一部分固定大小的內(nèi)存當(dāng)作分區(qū)來使用。它并非一個實際的文件系統(tǒng),而是一種將實際的文件系統(tǒng)裝入內(nèi)存的機(jī)制,并且可以作為根文件系統(tǒng)。將一些經(jīng)常被訪問而又不會更改的文件(如只讀的根文件系統(tǒng))通過Ramdisk放在內(nèi)存中,可以明顯地提高系統(tǒng)的性能。
2.?ramfs/tmpfs
ramfs是LinusTorvalds開發(fā)的一種基于內(nèi)存的文件系統(tǒng),工作于虛擬文件系統(tǒng)(VFS)層,不能格式化,可以創(chuàng)建多個,在創(chuàng)建時可以指定其最大能使用的內(nèi)存大小。(實際上,VFS本質(zhì)上可看成一種內(nèi)存文件系統(tǒng),它統(tǒng)一了文件在內(nèi)核中的表示方式,并對磁盤文件系統(tǒng)進(jìn)行緩沖。)9.3.4網(wǎng)絡(luò)文件系統(tǒng)NFS(NetworkFileSystem)
NFS是由Sun開發(fā)并發(fā)展起來的一項在不同機(jī)器、不同操作系統(tǒng)之間通過網(wǎng)絡(luò)共享文件的技術(shù)。在嵌入式Linux系統(tǒng)的開發(fā)調(diào)試階段,可以利用該技術(shù)在主機(jī)上建立基于NFS的根文件系統(tǒng),掛載到嵌入式設(shè)備,可以很方便地修改根文件系統(tǒng)的內(nèi)容。
9.4構(gòu)建嵌入式Linux根文件系統(tǒng)原理
一個根文件系統(tǒng)是支持Linux內(nèi)核系統(tǒng)正常運行的一些基本內(nèi)容。它應(yīng)該提供給系統(tǒng)和軟件使用的庫(如Glibc),和供用戶使用的支持系統(tǒng)和用戶使用的軟件。一般來說包含以下幾個內(nèi)容:
(1)基本的目錄結(jié)構(gòu)。
(2)供給基本程序運行所需的庫。
(3)用戶自己的腳本配置文件。
(4)必要的設(shè)備文件的支持。
(5)一些基本的應(yīng)用程序。
(6)一些啟動時需要加載的驅(qū)動模塊。9.4.1根文件系統(tǒng)關(guān)鍵目錄
1.?bin目錄的文件
該目錄下主要存放Shell和各種命令程序。通常通過busybox生成,busybox是一個開源程序。
2.?dev目錄的文件
該目錄下存放的是設(shè)備文件,對應(yīng)每一個外部設(shè)備。如果要操作一個設(shè)備,必須首先打開這個設(shè)備對應(yīng)的設(shè)備文件,然后才能讀寫。也可以通過腳本自動生成,便于擴(kuò)展和修改。
3.?etc目錄的文件
該目錄主要存放配置文件和啟動腳本。
4.?lib目錄的文件
該目錄下主要存放動態(tài)鏈接需要的庫。如果編譯busybox和應(yīng)用程序都采用靜態(tài)鏈接,那么是不需要庫的,但這樣的代價是每一個可執(zhí)行文件都鏈接了需要的二進(jìn)制代碼,而這些代碼可能是重復(fù)的,造成每一個單獨的可執(zhí)行文件過大,對于Flash較小的系統(tǒng)是很難接受的。如果采用動態(tài)鏈接,則會大大減少可執(zhí)行文件的大小。9.4.2根文件系統(tǒng)關(guān)鍵文件
1.?linuxrc文件
linuxrc文件用于加載模塊驅(qū)動等,運行在init進(jìn)程啟動之前,它退出后內(nèi)核才會調(diào)用init進(jìn)程讀取inittab中的設(shè)置,它是執(zhí)行init進(jìn)程初始化文件。
2.?inittab文件
從
/linuxrc文件中看到它最后運行了
/sbin/init,而init又會根據(jù)
/etc/inittab來運行。inittab文件條目格式:
id:runlevels:action:process
3.?rcS文件
從inittab實例中可以看到現(xiàn)在根文件系統(tǒng)啟動到達(dá)?/etc/init.d/rcS,rcS文件是進(jìn)行一些主機(jī)名的設(shè)置,顯示一些登錄歡迎信息等。
4.?fstab文件
fstab文件存放的是系統(tǒng)中的文件系統(tǒng)信息。當(dāng)正確的設(shè)置了該文件,則可以通過“mount/directoryname”命令來加載一個文件系統(tǒng)。每種文件系統(tǒng)都對應(yīng)一個獨立的行,每行中的字段都有空格或tab鍵分開。同時,fsck、mount、umount等命令都可利用該程序。
5.?profile文件
這個文件主要是為系統(tǒng)添加環(huán)境變量。9.4.3BusyBox
1.?BusyBox簡介
BusyBox使用一個文件整合很多微型版本的Unix工具。它可提供多數(shù)GNU文件工具、Shell腳本工具,如cp、sh、ls、mv等。被非常形象地稱為嵌入式Linux系統(tǒng)中的“瑞士軍刀”。
2.基于BusyBox構(gòu)建根文件系統(tǒng)
BusyBox把所有的命令都編譯成一個文件BusyBox,其他命令工具都是指向BusyBox的連接。BusyBox在調(diào)用時,會根據(jù)調(diào)用連接的文件名轉(zhuǎn)到特定的處理程序。這樣,所有的這些程序只需被加載一次,而所有BusyBox組件都可以共享相同的代碼段,這在很大程度上節(jié)省了系統(tǒng)的內(nèi)存資源和應(yīng)用程序的執(zhí)行速度。圖9-2Busybox的圖形化編譯界面
9.5構(gòu)建嵌入式Linux根文件系統(tǒng)
實例——CramFS根文件系統(tǒng)構(gòu)建
(博創(chuàng)2410)
首先做準(zhǔn)備工作:
(1)下載所需的源文件。
(2)在內(nèi)核中加入對CramFS文件系統(tǒng)支持。9.5.1創(chuàng)建根文件系統(tǒng)目錄
建立工作目錄:
[root@localhostmxl]#pwd
/home/mxl
[root@localhostmxl]#mkdirroot
[root@localhostmxl]#cdroot
[root@localhostroot]#mkdirbuild_rootfs9.5.2創(chuàng)建設(shè)備文件
最省事的做法是到系統(tǒng)?/dev把所有的device打一個包,拷貝到dev下面;或者使用mknod來自己建所需要的device。9.5.3編譯BusyBox
標(biāo)準(zhǔn)的Linux發(fā)行版本具有功能種類比較多的應(yīng)用程序,這些應(yīng)用程序占用的空間也很大,這對存儲容量空間有限的開發(fā)板來說就不是理想的選擇,在嵌入式開發(fā)過程中,經(jīng)常用BusyBox來定制應(yīng)用程序。BusyBox具有Shell的功能,它能提供系統(tǒng)所需要的大部分工具,包括編輯工具、網(wǎng)絡(luò)工具、模塊加載工具、壓縮解壓縮工具、查找工具、帳號密碼管理工具和進(jìn)程相關(guān)工具等。
1.先對源碼進(jìn)行解壓(拷貝busybox-1.9.2.tar.gz到/home/mxl/root下)
[root@localhostroot]#tar-jxvfbusybox-1.9.2.tar.gz
[root@localhostroot]#cdbusybox-1.9.2
[root@localhostbusybox-1.9.2]#viMakefile
修改Makefile,找到ARCH和CROSSCOMPILE修改如下:
ARCH?=arm
CROSS_COMPILE?=/usr/local/arm/3.4.1/bin/arm-linux-
2.修改編譯配置選項
[root@localhostbusybox-1.9.2]#makedefconfig
[root@localhostbusybox-1.9.2]#makemenuconfig
3.編譯BusyBox
[root@localhostbusybox-1.9.2]#makeinstall
在busybox/_install目錄下會生成我們需要的文件。
修改_install/bin/busybox的屬性為4755,
[root@localhostbusybox-1.9.2]#chmod4755./_
install/bin/busybox9.5.4系統(tǒng)配置文件的建立
系統(tǒng)配置文件放在/etc目錄下。
1.創(chuàng)建inittab文件
這個文件是init的初始化配置文件,是系統(tǒng)啟動后第一個訪問的腳本文件,后續(xù)的啟動文件是由它指定的。
::sysinit:/etc/init.d/rcS
::respawn:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/sbin/swapoff-a
::shutdown:/bin/umount-a-r
2.創(chuàng)建
/etc/init.d文件夾和rcS文件
/etc/init.d/rcS是BusyBox中系統(tǒng)啟動時默認(rèn)的配置腳本。需要啟動的進(jìn)程和需要進(jìn)行的設(shè)置可以放到這個文件里面,并在其中加入必要的初始化工作。
在rcS中添加:
#!/bin/sh
echo“StartingSystem”
hostnameuptech-s3c2410
/bin/mount-tprocproc/proc
/sbin/ifconfigeth0192.168.0.4
3.創(chuàng)建fstab文件
這個是mount文件系統(tǒng)時的配置文件。它指定了系統(tǒng)掛載塊設(shè)備和目錄的關(guān)系,需要和實際的系統(tǒng)相配合。在這里使用一個簡單的fstab文件內(nèi)容:
proc
/proc
proc
defaults
0
09.5.5添加應(yīng)用程序
這里我們編寫一個簡單的應(yīng)用程序打印一句問候語,程序代碼如下:9.5.6創(chuàng)建lib庫文件
以上面這個簡單的hellolinux程序為例。在不知道需要什么的庫的前提下,在開發(fā)板中運行經(jīng)過交叉編譯過的程序,看看提示需要什么庫,然后再將相應(yīng)的庫文件考到文件系統(tǒng)的/lib下即可。hello.c這個程序需要的庫文件有l(wèi)ibc.so.6和ld-linux.so.2,但是這兩個庫只是一個鏈接文件,需要連同真正的庫一起拷貝過來,所以需要使用命令查看他們的真正
文件。9.5.8下載cramfs根文件系統(tǒng)映像到開發(fā)板
重啟第7章成功移植的引導(dǎo)程序vivi,進(jìn)入下載模式,運行命令:
vivi>loadflashrootx
將新根文件系統(tǒng)映像mxlrootfs下載到開發(fā)板中,如圖9-3所示。圖9-3串口下載根文件系統(tǒng)映像mxlrootfs9.5.9測試cramfs根文件系統(tǒng)
下載完畢重啟系統(tǒng),超級終端可看到cramfs根文件系統(tǒng)的最終啟動,如圖9-4所示。圖9-4cramfs根文件系統(tǒng)啟動圖9-5hello應(yīng)用程序執(zhí)行結(jié)果9.5.10cramfs根文件系統(tǒng)制作中的常見錯誤及解決辦法
1.?cramfs根文件系統(tǒng)構(gòu)建后虛擬機(jī)不能啟動
虛擬機(jī)啟動后會出現(xiàn)如下信息:
***ANerroroccurredduringthefilesystemcheck
***Droppingyoutoa
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025建筑裝飾合同范書
- 洛陽理工學(xué)院《大型活動與宴會策劃》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年某航空公司與旅客關(guān)于航班座位租賃的合同
- 2024年買賣合同擔(dān)保條款在電子商務(wù)領(lǐng)域的應(yīng)用與實踐3篇
- 酒店鋁合金裝修施工合同
- 垃圾處理設(shè)施增項合同
- 商業(yè)設(shè)施工程款結(jié)算
- 勞動合同試用期延長與轉(zhuǎn)正流程
- 2024年度鋼材運輸合同(鐵路)2篇
- 2024年度創(chuàng)新型企業(yè)員工激勵機(jī)制合同3篇
- 人音版一年級上冊《我有一只小羊羔》課件1
- 常用急救藥品
- 內(nèi)科主治醫(yī)師講義
- 小學(xué)生簡筆畫社團(tuán)活動記錄
- 2023年生態(tài)環(huán)境綜合行政執(zhí)法考試備考題庫(含答案)
- 現(xiàn)澆簡支梁施工方案
- 體育經(jīng)濟(jì)學(xué)概論PPT全套教學(xué)課件
- 全球標(biāo)準(zhǔn)食品安全BRCGS第九版文件清單一覽表
- 路基二工區(qū)涵洞施工臺賬
- 2022年中國人口與發(fā)展研究中心招聘應(yīng)屆生筆試備考題庫及答案解析
- 單位負(fù)反饋系統(tǒng)校正自動控制原理課程設(shè)計
評論
0/150
提交評論