《操作系統(tǒng)》課程設(shè)計(jì)說明書UNIX、Linux文件系統(tǒng)分析_第1頁
《操作系統(tǒng)》課程設(shè)計(jì)說明書UNIX、Linux文件系統(tǒng)分析_第2頁
《操作系統(tǒng)》課程設(shè)計(jì)說明書UNIX、Linux文件系統(tǒng)分析_第3頁
《操作系統(tǒng)》課程設(shè)計(jì)說明書UNIX、Linux文件系統(tǒng)分析_第4頁
《操作系統(tǒng)》課程設(shè)計(jì)說明書UNIX、Linux文件系統(tǒng)分析_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、河南城建學(xué)院操作系統(tǒng)課程設(shè)計(jì)說明書 設(shè)計(jì)題目: unix/linux文件系統(tǒng)分析 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 指導(dǎo)教師: 班 級(jí): 0614082 學(xué) 號(hào): 061408261 姓 名: 同 組 人: 計(jì)算機(jī)科學(xué)與工程系2011年1月 7日前 言在現(xiàn)在計(jì)算機(jī)更新如此迅速的時(shí)代要學(xué)好計(jì)算機(jī)軟件技術(shù),特別是操作系統(tǒng)的學(xué)習(xí),不僅要努力學(xué)好課本上的基礎(chǔ)知識(shí),還要經(jīng)常在圖書館看些有關(guān)這方面的書籍,而更重要的是要有足夠的實(shí)踐經(jīng)驗(yàn),也要注重和同學(xué)的交流,經(jīng)常嘗試性的做些小的操作系統(tǒng),對(duì)自己技術(shù)的提升會(huì)有很大的幫助。同時(shí),學(xué)習(xí)計(jì)算機(jī)操作系統(tǒng)技術(shù),除了需要刻苦努力外,還需要掌握軟件和操作系統(tǒng)的原理與設(shè)計(jì)技巧。如

2、何學(xué)習(xí)和掌握操作系統(tǒng)技術(shù)的原理與實(shí)際技巧呢?除了聽課和讀書之外,最好的方法恐怕就是在實(shí)踐中練習(xí)。例如,自己設(shè)計(jì)一個(gè)小型操作系統(tǒng),多使用操作系統(tǒng),多閱讀和分析操作源代碼等。但由于我們的條件和學(xué)時(shí)有限,在理論學(xué)習(xí)過程中沒有給同學(xué)們提供更多的實(shí)驗(yàn)機(jī)會(huì)。本操作系統(tǒng)課程設(shè)計(jì),是給同學(xué)提供一個(gè)集中實(shí)驗(yàn)的機(jī)會(huì)。希望同學(xué)們通過該設(shè)計(jì)加深對(duì)所學(xué)習(xí)課程的理解。本設(shè)計(jì)是基于課程中學(xué)到的unix系統(tǒng)調(diào)用,使用操作系統(tǒng)環(huán)境是red hat linux 9,言語開發(fā)環(huán)境是linux的gnu c或c+。我做的課程設(shè)計(jì)是:linux/unix文件系統(tǒng)分析。在linux系統(tǒng)下,使用與文件相關(guān)的系統(tǒng)調(diào)用實(shí)現(xiàn)對(duì)物理設(shè)備文件的讀寫,

3、參照linux系統(tǒng)源代碼以及grub系統(tǒng)的源代碼,對(duì)不同介質(zhì)上的fat格式文件系統(tǒng)進(jìn)行分析。要求在linux環(huán)境下設(shè)計(jì)出c語言程序,實(shí)現(xiàn)以下功能:1) 分析unix sysv/linux系統(tǒng)引導(dǎo)記錄的作用;2) 分析unix sysv/linux的超級(jí)塊及其結(jié)構(gòu),并建立相關(guān)數(shù)據(jù)結(jié)構(gòu),通過編程實(shí)現(xiàn)unix sysv/linux文件系統(tǒng)內(nèi)各部分的定位。3) 至少要實(shí)現(xiàn)對(duì)給定i節(jié)點(diǎn)文件的只讀訪問目 錄一系統(tǒng)環(huán)境51.1硬件環(huán)境51.2軟件環(huán)境5二設(shè)計(jì)目的及要求5三總體設(shè)計(jì)7四詳細(xì)設(shè)計(jì)8五調(diào)試與測(cè)試8六設(shè)計(jì)中遇到的問題及解決方法8七linux/unix文件系統(tǒng)分析源程序清單97.1 頭文件97.2 示

4、例程序12八運(yùn)行結(jié)果及分析188.1 linux文件系統(tǒng)讀取188.2 unix文件系統(tǒng)讀取20九心得體會(huì)21十參考文獻(xiàn)22linux/unix文件系統(tǒng)分析一系統(tǒng)環(huán)境1.1硬件環(huán)境cpu為pentium4雙線程技術(shù),頻率為2.8ghz,內(nèi)存為256mb。1.2軟件環(huán)境使用操作系統(tǒng)環(huán)境是red hat linux 9,言語開發(fā)環(huán)境是linux的 gnu c或c+。二設(shè)計(jì)目的及要求1、設(shè)計(jì)目的學(xué)習(xí)計(jì)算機(jī)軟件技術(shù),特別是計(jì)算機(jī)操作系統(tǒng)技術(shù),除了需要刻苦努力外,還需要掌握軟件和操作系統(tǒng)的原理與設(shè)計(jì)技巧。如何學(xué)習(xí)和掌握操作系統(tǒng)技術(shù)的原理與實(shí)際技巧呢?除了聽課和讀書之外,最好的方法恐怕就是在實(shí)踐中練習(xí)。例

5、如,自己設(shè)計(jì)一個(gè)小型操作系統(tǒng),多使用操作系統(tǒng),多閱讀和分析操作源代碼等。但由于條件和學(xué)時(shí)有限,在理論學(xué)習(xí)過程中沒有給提供更多的實(shí)驗(yàn)機(jī)會(huì)。本操作系統(tǒng)課程設(shè)計(jì),是提供了一個(gè)集中實(shí)驗(yàn)的機(jī)會(huì)。應(yīng)該通過該設(shè)計(jì)加深對(duì)所學(xué)習(xí)課程的理解。2、設(shè)計(jì)要求按軟件工程的思想和方法進(jìn)行設(shè)計(jì),并把它作為一個(gè)工程來做。設(shè)計(jì)的每一步都有要形成文檔,“成品”出來以后要有使用說明書和測(cè)試報(bào)告。最后按院方統(tǒng)一要求整理出軟件實(shí)習(xí)“論文”,并分別以電子和書面文檔的形式上交。最后,設(shè)計(jì)的程序要編譯通過,并在驗(yàn)收時(shí)進(jìn)行演示。本設(shè)計(jì)的內(nèi)容是基于操作系統(tǒng)原理教材的,但同學(xué)們必須對(duì)以前的c語言程序設(shè)計(jì)和數(shù)據(jù)結(jié)構(gòu)等內(nèi)容進(jìn)行認(rèn)真的復(fù)習(xí)。本設(shè)計(jì)是基于

6、課程中學(xué)到的unix系統(tǒng)調(diào)用,使用操作系統(tǒng)環(huán)境是red hat linux 9,言語開發(fā)環(huán)境是linux的gnu c或c+。因此,要求課程設(shè)計(jì)者對(duì)linux操作系統(tǒng)和gnu c或c+有一定的了解。3、設(shè)計(jì)內(nèi)容在linux系統(tǒng)下,使用與文件相關(guān)的系統(tǒng)調(diào)用實(shí)現(xiàn)對(duì)物理設(shè)備文件的讀寫,參照linux系統(tǒng)源代碼以及grub系統(tǒng)的源代碼,對(duì)不同介質(zhì)上的fat格式文件系統(tǒng)進(jìn)行分析。要求在linux環(huán)境下設(shè)計(jì)出c語言程序,實(shí)現(xiàn)以下功能:1)分析unix sysv/linux系統(tǒng)引導(dǎo)記錄的作用;2)分析unix sysv/linux的超級(jí)塊及其結(jié)構(gòu),并建立相關(guān)數(shù)據(jù)結(jié)構(gòu),通過編程實(shí)現(xiàn)unix sysv/linux

7、文件系統(tǒng)內(nèi)各部分的定位。3)至少要實(shí)現(xiàn)對(duì)給定i節(jié)點(diǎn)文件的只讀訪問。4)建議根據(jù)文件讀取文件。文件系統(tǒng)必須完成下列工作:1) 為了合理的存放文件,必須對(duì)磁盤等輔助空間(或稱文件空間)進(jìn)行統(tǒng)一管理。在用戶創(chuàng)新新文件時(shí)為其分配空閑區(qū),而在用戶刪除或修改某個(gè)文件時(shí),回收和調(diào)整存儲(chǔ)區(qū)。2) 為了實(shí)現(xiàn)按名存取,需要有一個(gè)用戶可見的文件邏輯結(jié)構(gòu),用戶按照文件邏輯結(jié)構(gòu)所給定的方式進(jìn)行信息的存取和加工。這種邏輯結(jié)構(gòu)時(shí)獨(dú)立于物理存儲(chǔ)設(shè)備的。3) 為了便于存放和加工信息,文件在存儲(chǔ)和設(shè)備上應(yīng)按一定的順序存放。這種存放方式被稱為文件物理結(jié)構(gòu)。4) 完成對(duì)存放在存儲(chǔ)設(shè)備上的文件信息的查找。5) 完成文件的共享和提供保護(hù)

8、功能。三總體設(shè)計(jì)程序開始讀取超級(jí)快內(nèi)容到buff讀取判斷參數(shù),打開文件系統(tǒng),設(shè)置文件指針到超級(jí)快開頭判斷第二個(gè)參數(shù)unix超級(jí)快內(nèi)容解釋程序段linux超級(jí)快內(nèi)容解釋程序段顯示超級(jí)快內(nèi)部包含的文件系統(tǒng)信顯示超級(jí)塊內(nèi)部包含的文件系統(tǒng)信息是否有第四參數(shù)是否有第四參數(shù)解釋為i節(jié)點(diǎn)號(hào)i節(jié)點(diǎn)號(hào)解釋為i節(jié)點(diǎn)號(hào)提示輸入i節(jié)點(diǎn)號(hào)提示輸入i節(jié)點(diǎn)號(hào)解釋為i節(jié)點(diǎn)號(hào)根據(jù)i節(jié)點(diǎn)讀i節(jié)點(diǎn)信息及i節(jié)點(diǎn)所指向盤快信息并顯示根據(jù)i節(jié)點(diǎn)讀i節(jié)點(diǎn)信息及i節(jié)點(diǎn)所指向盤快信息并顯示 四詳細(xì)設(shè)計(jì)分析unix sysv/linux系統(tǒng)引導(dǎo)記錄的作用unix sysv/linux系統(tǒng)引導(dǎo)記錄存放于整個(gè)硬盤的第一個(gè)扇區(qū),即0柱面0磁頭l扇區(qū),

9、也叫做mbr(maserboot reoofd)扇區(qū),即主引導(dǎo)記錄。 主引導(dǎo)記錄在計(jì)算機(jī)引導(dǎo)過程中起著舉足輕重的作用,計(jì)算機(jī)在按下電源鍵以后,開始執(zhí)行主板bi0s程序,進(jìn)行完一系列檢測(cè)和配置以后,開始按bi0s中設(shè)定的系統(tǒng)引導(dǎo)順序引導(dǎo)系統(tǒng)。bios執(zhí)行完自己的程序后如何把執(zhí)行投交給硬盤呢。交給硬盤后叉執(zhí)行存儲(chǔ)在哪里的程序呢?其實(shí),稱為mbr的扇區(qū)中的一段代碼起著舉足輕重的作用。 mbr不隨操作系統(tǒng)的不同而小同,即不同的操作系統(tǒng)町能會(huì)存在相同的mbr即使不同,mbr也不會(huì)夾帶操作系統(tǒng)的性質(zhì),具有公共引導(dǎo)的特性。對(duì)文件系統(tǒng)的操作參看程序源代碼。 實(shí)現(xiàn)對(duì)磁盤文件的訪問,實(shí)現(xiàn)讀寫、查看文件系統(tǒng)的存取信

10、息,對(duì)應(yīng)各個(gè)i節(jié)點(diǎn)的相關(guān)信息,以及各個(gè)i節(jié)點(diǎn)的排列情況,使用戶能清楚的看到文件系統(tǒng)磁盤結(jié)構(gòu)。更加了解計(jì)算機(jī)文件系統(tǒng)的工作流程。五調(diào)試與測(cè)試(1)通過輸入命令cc chengxu.c將文件編譯為可執(zhí)行文件a.out,通過輸入命令./a.out加參數(shù)執(zhí)行文件。(2)判斷命令行參數(shù)進(jìn)行操作,當(dāng)參數(shù)為./a.out u s51k .img時(shí)進(jìn)行l(wèi)inux文件系統(tǒng)讀取,當(dāng)參數(shù)為./a.out x xenix.img時(shí)進(jìn)行unix文件系統(tǒng)讀取。(3)判斷是否有第四個(gè)參數(shù),若沒有,則提示輸入i節(jié)點(diǎn)號(hào)并實(shí)現(xiàn)對(duì)給定i節(jié)點(diǎn)文件的只讀訪問。六設(shè)計(jì)中遇到的問題及解決方法在設(shè)計(jì)程序時(shí)。我們按自己的理解編寫了一個(gè)超級(jí)塊和

11、inode節(jié)點(diǎn)的結(jié)構(gòu)體。然后放在主程序中去讀取信息,但是運(yùn)行的結(jié)果大出我們的預(yù)料。沒有按我們的預(yù)期讀出文件系統(tǒng)的信息,而是輸出了一堆亂碼,我們有經(jīng)過查資料最后終于解決了問題,程序輸出正常。 七linux/unix文件系統(tǒng)分析源程序清單7.1 頭文件#includetypedef _s16 s16;typedef _u16 u16;typedef _s32 s32;typedef _u32 u32;typedef u16 sysv_ino_t;/* block numbers are 24 bit, sometimes stored in 32 bit. on coherent fs, they

12、 are always stored in pdp-11 manner: the least significant 16 bits come last.*/typedef u32 sysv_zone_t;/* among the blocks . */* xenix fs, coherent fs: block 0 is the boot block, block 1 the super-block. systemv fs: block 0 contains both the boot sector and the super-block. */* the first inode zone

13、is sb-sv_firstinodezone (1 or 2). */* among the inodes . */* 0 is non-existent */#define sysv_badbl_ino1/* inode of bad blocks file */#define sysv_root_ino2/* inode of root directory */* xenix super-block data on disk */#define xenix_nicinod100/* number of inode cache entries */#define xenix_nicfree

14、100/* number of free block list chunk entries */struct xenix_super_block u16s_isize; /* index of first data zone */u32s_fsize;/ _packed2_; /* total number of zones of this fs */* the start of the free block list: */u16s_nfree;/* number of free blocks in s_free, = xenix_nicfree */u32s_freexenix_nicfr

15、ee; /* first free block list chunk */* the cache of free inodes: */u16s_ninode; /* number of free inodes in s_inode, = xenix_nicinod */sysv_ino_ts_inodexenix_nicinod; /* some free inodes */* locks, not used by linux: */chars_flock;/* lock during free block list manipulation */chars_ilock;/* lock dur

16、ing inode cache manipulation */chars_fmod;/* super-block modified flag */chars_ronly;/* flag whether fs is mounted read-only */u32s_time;/_packed2_;/*time of last super block update*/u32s_tfree;/ _packed2_; /* total number of free zones */u16s_tinode;/* total number of free inodes */s16s_dinfo4;/* d

17、evice information ? */chars_fname6;/* file system volume name */chars_fpack6;/* file system pack name */chars_clean;/* set to 0x46 when filesystem is properly unmounted */chars_fill371;s32s_magic;/* version of file system */s32s_type;/* type of file system: 1 for 512 byte blocks2 for 1024 byte block

18、s3 for 2048 byte blocks */;/* systemv fs comes in two variants: * sysv2: system v release 2 (e.g. microport), structure elements aligned(2). * sysv4: system v release 4 (e.g. consensys), structure elements aligned(4). */#define sysv_nicinod100/* number of inode cache entries */#define sysv_nicfree50

19、/* number of free block list chunk entries */* systemv4 super-block data on disk */struct sysv4_super_block u16s_isize;/* index of first data zone */u16s_pad0;u32s_fsize;/* total number of zones of this fs */* the start of the free block list: */u16s_nfree;/* number of free blocks in s_free, = sysv_

20、nicfree */u16s_pad1;u32s_freesysv_nicfree; /* first free block list chunk */* the cache of free inodes: */u16s_ninode;/* number of free inodes in s_inode, = sysv_nicinod */u16s_pad2;sysv_ino_t s_inodesysv_nicinod; /* some free inodes */* locks, not used by linux: */chars_flock;/* lock during free bl

21、ock list manipulation */chars_ilock;/* lock during inode cache manipulation */chars_fmod;/* super-block modified flag */chars_ronly;/* flag whether fs is mounted read-only */u32s_time;/* time of last super block update */s16s_dinfo4;/* device information ? */u32s_tfree;/* total number of free zones

22、*/u16s_tinode;/* total number of free inodes */u16s_pad3;chars_fname6;/* file system volume name */chars_fpack6;/* file system pack name */s32s_fill12;s32s_state;/* file system state: 0x7c269d38-s_time means clean */s32s_magic;/* version of file system */s32s_type;/* type of file system: 1 for 512 b

23、yte blocks2 for 1024 byte blocks */;/* systemv/coherent inode data on disk */struct sysv_inode u16 i_mode;u16 i_nlink;u16 i_uid;u16 i_gid;u32 i_size;union /* directories, regular files, . */unsigned char i_addb3*(10+1+1+1)+1; /* zone numbers: max. 10 data blocks, * then 1 indirection block, * then 1

24、 double indirection block, * then 1 triple indirection block. * then maybe a file generation number ? */* named pipes on coherent */struct char p_addp30;s16 p_pnc;s16 p_prx;s16 p_pwx; i_p; i_a;u32 i_atime;/* time of last access */u32 i_mtime;/* time of last modification */u32 i_ctime;/* time of crea

25、tion */;/* * systemv/v7/coherent fs inode data in memory */struct sysv_inode_info u32 i_data10+1+1+1;/* zone numbers: max. 10 data blocks, * then 1 indirection block, * then 1 double indirection block, * then 1 triple indirection block. */;7.2 示例程序#include#include#include#include#include#includesysv

26、fs.h#includemain(int argc, char *argv)inti,j,k,typ,fd,l=5;char*file_sys,*tmp,buff1024,buff_i1025;struct sysv4_super_block *sbu;struct xenix_super_block *sbx;struct sysv_inode *inode;intinode_size, inode_no,blk_size;inti_start,d_start;longll;ulongi_add13;if(argcs_isize);printf(s_pad0:%xn, sbu-s_pad0)

27、;printf(total number of zones of this fs:%xn,sbu-s_fsize);printf(/* the start of the free block list: */n);printf(number of free blocks in s_free, s_nfree);printf(s_pad1:%xt%udn, sbu-s_pad1, sbu-s_pad1);printf(/* the cache of free inodes: */n);printf(number of free inodes in s_inode, s_ninode);print

28、f(s_pad2:%xn ,sbu-s_pad2);printf(some free inodes:n);printf(/* locks, not used by linux: */n);printf(time of last super block update:%xn ,sbu-s_time);printf(total number of free zones:%xn ,sbu-s_tfree);printf(total number of free inodes:%xn ,sbu-s_tinode);printf(file system volume name:%xn ,sbu-s_fn

29、ame);chars_fpack6;/* file system pack name */printf(s_state:%xn ,sbu-s_state);/* file system state: 0x7c269d38-s_time means clean */printf(s_magic:%xn ,sbu-s_magic);/* version of file system */* type of file system: 1 for 512 byte blocks */blk_size=512*sbu-s_type;i_start=2;d_start=sbu-s_isize;/+i_st

30、art-1;printf(inode_from:%xn,2*512*i_start);printf(data_from:%xn,2*512*d_start);inode_size=sizeof(struct sysv_inode);printf(size of inode struct= %dn,inode_size);/get inode_noif(argc=4)if(!isnum(argv3) inode_no=atoi(argv3);elsefprintf(stderr,%s is not a int);close(fd);exit(9);else printf(nntplease in

31、put inode_no:);scanf(%d,&inode_no);printf(= inode=%d =n,inode_no);-inode_no;j=inode_no*inode_size/1024;k=(inode_no*inode_size/*-1*/)%1024;j+=i_start;if(ll=lseek(fd,blk_size*j,seek_set)!=blk_size*j)fprintf(stderr,file system %s seek error!an,file_sys);close(fd);exit(5);printf(ll=%dln,ll);if(read(fd,b

32、uff_i,blk_size)!=blk_size)fprintf(stderr,file system %s read error!an,file_sys);close(fd);exit(6);tmp=buff_i+k;inode=(struct sysv_inode *)tmp;printf(i_mode=%xn ,inode-i_mode);printf(i_link=%xn ,inode-i_nlink);printf(i_addr:n);for(i=0;ii_a.i_addbi);printf(i_addr_all:n);for(i=0;i64;i+) printf(%x| ,tmp

33、i);printf(n);i=0;for(j=0;ji_a.i_addbj+256*inode-i_a.i_addbj+1+256*256*inode-i_a.i_addbj+2;+i;for(i=0;i13;i+) printf(i_add%d=%d |, i,i_addi);printf(n);/ direct blockfor(i=0;is_isize;tmp+=2;ul=(ulong *)tmp;fsize=*ul;printf(index of first data zone:%xn,sbx-s_isize);printf(total number of zones of this

34、fs:%lxn,fsize);printf(/* the start of the free block list: */n);tmp=buff;tmp+=6;nfree=tmp0+256*tmp1;printf(number of free blocks in s_free, s_isize;/+i_start-1;printf(inode_from:%xn,2*512*i_start);printf(data_from:%xn,2*512*d_start);inode_size=sizeof(struct sysv_inode);printf(size of inode struct= %

35、dn,inode_size);/get inode_noif(argc=4)if(!isnum(argv3) inode_no=atoi(argv3);elsefprintf(stderr,%s is not a int);close(fd);exit(9);else printf(nntplease input inode_no:);scanf(%d,&inode_no);printf(= inode=%d =n,inode_no);-inode_no;j=inode_no*inode_size/1024;k=(inode_no*inode_size)%1024;j+=i_start;if(

36、ll=lseek(fd,blk_size*j,seek_set)!=blk_size*j)fprintf(stderr,file system %s seek error!an,file_sys);close(fd);exit(5);printf(ll=%dln,ll);if(read(fd,buff_i,blk_size)!=blk_size)fprintf(stderr,file system %s read error!an,file_sys);close(fd);exit(6);tmp=buff_i+k;printf(nn);for(i=0;ii_mode);printf(i_link

37、=%xn ,inode-i_nlink);printf(i_addr:n);for(i=0;ii_a.i_addbi);printf(i_addr_all:n);for(i=0;i64;i+) printf(%x| ,tmpi);printf(n);i=0;for(j=0;ji_a.i_addbj+256*inode-i_a.i_addbj+1+256*256*inode-i_a.i_addbj+2;+i;for(i=0;i13;i+) printf(i_add%d=%d |, i,i_addi);printf(n);/ direct blockfor(i=0;i10;i+)if(ll=lse

38、ek(fd,blk_size*i_addi,seek_set)!=blk_size*i_addi)fprintf(stderr,file system %s seek error!an,file_sys);close(fd);exit(7);if(read(fd,buff_i,blk_size)!=blk_size)fprintf(stderr,file system %s read error!an,file_sys);close(fd);exit(8);fprintf(stderr,%s,buff_i); / maybe write to a fileclose(fd);exit(x);is

溫馨提示

  • 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)論