




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、重慶科技學(xué)院重慶科技學(xué)院課程設(shè)計(jì)報(bào)告課程設(shè)計(jì)報(bào)告 院(系):_電氣與信息工程學(xué)院_ 專業(yè)班級: 計(jì)科普 2008-02學(xué)生姓名: 學(xué) 號: 設(shè)計(jì)地點(diǎn)(單位)_ _ i515_ _ _ 設(shè)計(jì)題目:_ 微型操作系統(tǒng)的設(shè)計(jì)_ _ 完成日期: 2011 年 6 月 19 日 指導(dǎo)教師評語: _ _ _ _ _ 成績(五級記分制):_ _ _ 指導(dǎo)教師(簽字):_ _ _ 重慶科技學(xué)院重慶科技學(xué)院課程設(shè)計(jì)任務(wù)書課程設(shè)計(jì)任務(wù)書設(shè)計(jì)題目:微型操作系統(tǒng)的設(shè)計(jì) 學(xué)生姓名課程名稱操作系統(tǒng)原理課程設(shè)計(jì)專業(yè)班級計(jì)科普 08地 點(diǎn) i515起止時間2011 年 6 月 12 日-2011 年 6 月 16日設(shè)計(jì)內(nèi)容及要
2、求(1) 配置操作系統(tǒng)編寫的所需的環(huán)境(虛擬機(jī)的建立和相應(yīng)環(huán)境建立) ,以準(zhǔn)備相關(guān)的必須工具的準(zhǔn)備,并學(xué)會相關(guān)工具的使用,為以后編寫一個微操作系統(tǒng)奠定基礎(chǔ)和準(zhǔn)備平臺。(2) 學(xué)習(xí) nasm 匯編器在本次設(shè)計(jì)中的使用。(3) 學(xué)習(xí)裸機(jī)啟動的過程,消化操作系統(tǒng)引導(dǎo)程序的結(jié)構(gòu),在此基礎(chǔ)上,完成在實(shí)模式下從軟盤引導(dǎo)計(jì)算機(jī)的程序編寫。(4) 學(xué)習(xí)本次設(shè)計(jì)需要的實(shí)模式到保護(hù)模式切換的相關(guān)知識。理解 gdt 在保護(hù)模式的工作機(jī)理(5) 編寫在保護(hù)模式下的引導(dǎo)程序,并用 c 語言模擬寫一個“內(nèi)核” ,并實(shí)現(xiàn)在保護(hù)模下通過引導(dǎo)程序啟動計(jì)算機(jī)并將該“內(nèi)核”加載到內(nèi)存中。最后切換到內(nèi)核。設(shè)計(jì)參數(shù)(1)寫出編寫一個操
3、作系統(tǒng)所需的環(huán)境和操作說明書。(2)總結(jié)計(jì)算機(jī)啟動順序和具體過程。(3)實(shí)現(xiàn)在實(shí)模式下系統(tǒng)引導(dǎo)程序的編寫。(4)理解消化實(shí)模式到保護(hù)模式切換原理以及相關(guān)的數(shù)據(jù)結(jié)構(gòu)和工作過程,并實(shí)現(xiàn)之。(5)完成保護(hù)模式下的引導(dǎo)程序,并完成“內(nèi)核”的加載,并使“內(nèi)核”運(yùn)行起來。附加要求:請?jiān)谠O(shè)計(jì)的課后完成具有進(jìn)程調(diào)度和管理的內(nèi)核的編寫。進(jìn)度要求6 月 12 日布置任務(wù),對各個任務(wù)的基礎(chǔ)知識進(jìn)行講解6 月 12 日 安裝環(huán)境,并熟悉相關(guān)工具的使用。6 月 13 日完成實(shí)模式下引導(dǎo)程序的編寫。6 月 14 日完成實(shí)模式與保護(hù)模式的切換代碼的設(shè)計(jì)。6 月 15 日完成實(shí)模式引導(dǎo)程序和內(nèi)核加載程序編寫。6 月 16 日
4、完成答辯和報(bào)告撰寫。參考資料隨任務(wù)布置的相關(guān)電子文檔。其它說明.本表應(yīng)在每次實(shí)施前一周由負(fù)責(zé)教師填寫二份,院系審批后交院系辦備案,一份由負(fù)責(zé)教師留用。.若填寫內(nèi)容較多可另紙附后。3.一題多名學(xué)生共用的,在設(shè)計(jì)內(nèi)容、參數(shù)、要求等方面應(yīng)有所區(qū)別。教研室主任: 指導(dǎo)教師: i摘要操作系統(tǒng)(operating system,簡稱 os)是一管理電腦硬件與軟件資源的程序,同時也是計(jì)算機(jī)系統(tǒng)的內(nèi)核與基石,它為用戶執(zhí)行程序提供方便、最有效的環(huán)境。 本設(shè)計(jì)任務(wù)是設(shè)計(jì)一個微型操作系統(tǒng)。該操作系統(tǒng)首先需要搭建虛擬機(jī)環(huán)境,為編寫一個微操作系統(tǒng)奠定基礎(chǔ)。裸機(jī)啟動的過程,實(shí)現(xiàn)實(shí)模式下從軟盤引導(dǎo)計(jì)算機(jī)的啟動。完成保護(hù)模式
5、下的引導(dǎo)程序,并完成“內(nèi)核”的加載,并使“內(nèi)核”運(yùn)行起來。 “內(nèi)核”部分實(shí)現(xiàn)鍵盤中斷,中斷服務(wù)程序讀取鍵盤值并顯示出來。關(guān)鍵詞:操作系統(tǒng) 虛擬機(jī) 裸機(jī)啟動 鍵盤中斷ii目目 錄錄1 系統(tǒng)需求分析.11.1 設(shè)計(jì)內(nèi)容與目的 .11.2 設(shè)計(jì)的實(shí)現(xiàn)方案 .12.總體設(shè)計(jì).22.1 功能模塊圖 .22.2 計(jì)算機(jī)引導(dǎo)程序 .22.3 內(nèi)核鍵盤中斷實(shí)現(xiàn) .33 詳細(xì)設(shè)計(jì).63.1 啟動程序?qū)崿F(xiàn) .63.2 內(nèi)核鍵盤中斷實(shí)現(xiàn) .93.3 功能實(shí)現(xiàn) .114. 設(shè)計(jì)總結(jié).135 致謝.146 參考文獻(xiàn).1511 1 系統(tǒng)需求分析系統(tǒng)需求分析1.1 設(shè)計(jì)內(nèi)容與目的 設(shè)計(jì)一個微型操作系統(tǒng),在實(shí)模式下從軟盤引導(dǎo)
6、計(jì)算機(jī)啟動,并在保護(hù)模式下運(yùn)行“內(nèi)核” 。通過分析,該設(shè)計(jì)需要完成以下任務(wù):(1)搭建虛擬機(jī)環(huán)境,為編寫一個微操作系統(tǒng)奠定基礎(chǔ)。(2)利用 nasm 匯編器編譯啟動匯編程序。(3)完成在實(shí)模式下從軟盤引導(dǎo)計(jì)算機(jī)。(4)學(xué)習(xí)本次設(shè)計(jì)需要的實(shí)模式到保護(hù)模式切換的相關(guān)知識。理解 gdt 在保護(hù)模式的工作機(jī)理。(5)編寫在保護(hù)模式下的引導(dǎo)程序,并用 c 語言模擬寫一個“內(nèi)核” ,并實(shí)現(xiàn)在保護(hù)模下通過引導(dǎo)程序啟動計(jì)算機(jī)并將該“內(nèi)核”加載到內(nèi)存中。最后切換到內(nèi)核。1.2 設(shè)計(jì)的實(shí)現(xiàn)方案 本設(shè)計(jì)完成一個真正意義上的操作系統(tǒng)引導(dǎo),計(jì)算機(jī)啟動程序?qū)挠?jì)算機(jī)啟動時的 16 位的實(shí)模式轉(zhuǎn)到現(xiàn)在通用的 32 位的保護(hù)
7、模式下。現(xiàn)在的操作系統(tǒng)除了最低層的部份之外,均由高級語言完成,在本設(shè)計(jì)中也將用高級語言來編寫內(nèi)核。實(shí)現(xiàn)的一個內(nèi)核是用 c 語言編寫的。用匯編寫的引導(dǎo)程序,把 c 語言寫的內(nèi)核載入并執(zhí)行,這就是本設(shè)計(jì)將要完成的主要任務(wù)。內(nèi)核中的鍵盤中斷設(shè)計(jì) intel 8259el 8259a 可編程中斷控制器可以為 cpu 處理 8 位優(yōu)先級中斷,而且,無須額外電路即可級聯(lián)擴(kuò)展至 64 位優(yōu)先級中斷處理。通過對 8259a 的初始化和控制,可以實(shí)現(xiàn)在保護(hù)模式下的鍵盤中斷。22.2.總體設(shè)計(jì)總體設(shè)計(jì) 2.1 功能模塊圖該設(shè)計(jì)的功能模塊如下圖所示:圖 2.1 功能模塊圖2.2 計(jì)算機(jī)引導(dǎo)程序本程序的主要
8、功能是實(shí)現(xiàn)實(shí)模式和保護(hù)模式的切換。(1)切換到保護(hù)方式的準(zhǔn)備工作 在從實(shí)模式切換到保護(hù)模式之前,必須作必要的準(zhǔn)備。需要建立合適的全局描述符表,并使用 gdtr 指向該 gdt。因?yàn)樵谇袚Q到保護(hù)方式時,至少要把代碼段的選擇子裝載到cs,所以 gdt 中至少含有代碼段的描述符。 (2)由實(shí)模式切換到保護(hù)模式 在做好準(zhǔn)備后,從實(shí)模式切換到保護(hù)模式原則上只要把控制寄存器 cr0 中的 pe 位置1 即可。 mov eax ,cr0 ; 微型操作系統(tǒng)實(shí)模式下從軟盤引導(dǎo)計(jì)算機(jī)“內(nèi)核”實(shí)現(xiàn)鍵盤中斷并顯示鍵盤值從鍵盤輸入值中斷響應(yīng)顯示3 or eax , 1 mov cr0 ,eax 實(shí)際情況要比這復(fù)雜些。執(zhí)
9、行上面的三條指令后,處理器轉(zhuǎn)入保護(hù)模式,但 cs 中的內(nèi)容還是實(shí)模式下代碼段的段值,而不是保護(hù)模式下代碼段的選擇子,所以在取指令之前得把代碼段的選擇子裝入 cs。為此,緊接著這三條指令,安排一條如下所示的段間轉(zhuǎn)移指令 jmp gdt_code_addr:code_32 ; 跳入 32 位的代碼段中 這條段間轉(zhuǎn)移指令 在實(shí)模式下被預(yù)取并在保護(hù)方式下被執(zhí)行 。利用這條段間轉(zhuǎn)移指令可把保護(hù)模式下代碼段的選擇子裝入 cs,同時也刷新指令預(yù)取隊(duì)列。從此真正進(jìn)入保護(hù)模式。2.3 內(nèi)核鍵盤中斷實(shí)現(xiàn)要使用中斷方式,就必須編寫中斷處理程序,通過 idt(中斷描述符表)讓 cpu 知道此中斷的中斷處理程序在什么地
10、方,此表的每一個表項(xiàng)對應(yīng)一個中斷,每一個表項(xiàng)都指明此中斷的中斷處理程序在什么地方。因此首要的任務(wù)是要構(gòu)造一個中斷描述符表。 中斷描述符表一共可有 256 項(xiàng),即 256 個中斷。頭三十二項(xiàng),也就是 031號中斷,已經(jīng)被 cpu 及硬件所占用了,因此只能從第三十三項(xiàng)即 32 號中斷開始構(gòu)造中斷及中斷服務(wù)程序 。可編程中斷控制器(pic)功能上是中斷驅(qū)動系統(tǒng)環(huán)境下的總管家,決定哪一個輸入優(yōu)先級最高,確定輸入請求是否擁有比當(dāng)前服務(wù)級別更高的優(yōu)先級,并且將決定出的中斷通知 cpu。為了使中斷系統(tǒng)起作用,需要對 pic(可編程的中斷控制器)進(jìn)行編程,pic 是可編程的中斷控制器,它可以處理硬件中斷請求,
11、當(dāng)硬件發(fā)生中斷時,pic 把中斷信號送到 cpu,然后 cpu 處理中斷。實(shí)際上有兩上 pic,第一個pic1(端口號 0 x200 x21)處理 irq0irq7 的請求,第二個 pic2(端口號0 xa00 xa1)處理 irq8irq15 的請求 cpu 只知道邏輯意義上的中斷,不區(qū)分是物理上的軟件中斷還是硬件中斷,因此必須把 cpu 不知道的物理中斷,映射為cpu 知道的邏輯意義上的中斷。在實(shí)模式下,這項(xiàng)工作由 bios 來做,在保護(hù)模4式下需要自己編程。通過發(fā)送一些 icw(初始化命令字)來實(shí)現(xiàn)對 pics 的控制和初始化。1. 發(fā)送 icw1 到 pic1(20h) 與 pic2(
12、a0h) 中 2. 發(fā)送 icw2 到 pic1(21h) 與 pic2(a1h) 中 3. 發(fā)送 icw3 到 pic1(21h) 與 pic2(a1h)中 4. 發(fā)送 icw4 到 pic1(21h) 與 pic2(a1h)中 利用內(nèi)嵌匯編發(fā)送一些 icw(初始化命令字)來實(shí)現(xiàn)對 pics 的控制和初始化,實(shí)現(xiàn)代碼如下:_asm_(mov $0 x11,%al;out %al,$0 x20 n); _asm_(mov $0 x11,%al;out %al,$0 xa0 n); _asm_(mov $0 x20,%al;out %al,$0 x21 n); _asm_(mov $0 x28,
13、%al;out %al,$0 xa1 n); _asm_(mov $0 x04,%al;out %al,$0 x21 n); _asm_(mov $0 x02,%al;out %al,$0 xa1 n); _asm_(mov $0 x1,%al;out %al,$0 x21 n); _asm_(mov $0 x1,%al;out %al,$0 xa1 n); _asm_(mov $0 xfd,%al;out %al,$0 x21 n); _asm_(mov $0 xff,%al;out %al,$0 xa1 n);初始化命令字格式初始化命令字格式icw1a0d7d6d6d4d3d2d1d00a
14、7a6a51ltimadisnglic4中斷向量地址 a7-a5(僅用于 mcs-80/85)1:電平觸發(fā)0:邊沿觸發(fā)地址調(diào)用間隔1:4 間隔0:8 間隔1:單片模式0:級聯(lián)模式1:需要icw40 不需要icw2a0d7d6d6d4d3d2d1d01a15/t7a14/t6a13/t5a12/t4a11/t3a10a9a8中斷向量地址的 a15-a8(mcs-80/85)中斷向量地址 t7-t3icw3(主片)(主片)a0d7d6d5d4d3d2d1d011:ir 輸入有從片0:ir 輸入無從片icw3(從片)(從片)5a0d7d6d5d4d3d2d1d0100000id2id1id0從片地址
15、icw4a0d7d6d5d4d3d2d1d01000sfnmbufm/saeoimpm1:特殊全嵌套模式0:全嵌套模式0x:無緩沖模式10:緩沖模式/從片11:緩沖模式/主片1:自動eoi0:一般eoi1:8086/8088模式0:mcs-80/85模式pic1 處理的中斷有: 0 系統(tǒng)時鐘 1 鍵盤 2 重定向到 irq9 (pic2 的 irq1)3 串口 1(com2/4) 4 串口 2(com1/3) 5 聲卡 6 軟驅(qū) 7 并行端口 pic2 處理的中斷有:0 實(shí)時時鐘 1 來自 irq2 (pic1) 2 保留 3 保留 4 鼠標(biāo) 5 數(shù)學(xué)協(xié)處理器 6 硬盤 7 保留 因此,我們只
16、要打開 pic1 的 1 號鍵盤中斷就可以實(shí)現(xiàn)實(shí)模式下的鍵盤中斷功能。通過這兩條內(nèi)嵌匯編:_asm_(mov $0 xfd,%al;out %al,$0 x21 n); _asm_(mov $0 xff,%al;out %al,$0 xa1 n);就可以在保護(hù)模式下打開鍵盤中斷。 63 3 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)3.1 啟動程序?qū)崿F(xiàn)bits 16 org 0 x7c00 jmp main ; 數(shù)據(jù)定義 bootdrive db 0 ; - ; gdt 定義,此處定義段及段描述符 gdt: gdt_null: dd 0 dd 0 ; 每個段的描述符是 64 位(8 字節(jié)),空描述符的這 64 位全是
17、0 gdt_code_addr equ $ - gdt ;求得代碼段在 gdt 表中的位置 gdt_code: dw 0 xffff ; 段大小為 4gb dw 0 ; 基地址(24 位) db 0 db 10011010b;屬性描述位,指明此是代碼段,可讀可執(zhí) db 11001111b db 0 ; gdt_data_addr equ $ - gdt;求得數(shù)據(jù)段在 gdt 表中的位置 gdt_data: dw 0 xffff dw 0 db 0 db 10010010b ; 指明此是數(shù)據(jù)段,可讀可寫 db 11001111b db 0 gdt_end: gdt_addr: dw gdt_en
18、d - gdt - 1 ;gdt 表的大小 dd gdt ; gdt 表的位置 main: ;引導(dǎo)程序從此處開始執(zhí)行 mov bootdrive , dl ; 得到啟動的驅(qū)動器號 xor ax , ax ; 設(shè)置 ds 7 mov ds , ax ; 清屏 ;mov ax , 3 ; 設(shè)置清屏功能號 ;int 0 x10 ; 調(diào)用 bios 10 號中斷清屏 .resetfloppy ; 重置磁盤,不是必須的,主要是為了安全起見 mov ax , 0 ; 設(shè)置重置磁盤的功能號 mov dl , bootdrive ; 選擇啟動磁盤 int 0 x13 ; 調(diào)用 bios 13 號中斷重置磁盤
19、jc .resetfloppy ; 如果出錯則重試 .readfloppy ; 讀內(nèi)核到內(nèi)存中 0000:9000 (es:bx)處, xor ax , ax ; 設(shè)置 es 寄存器 mov es , ax mov bx , 0 x9000 mov ah , 2 ; 設(shè)置讀磁盤功能號 mov dl , bootdrive ; 設(shè)置欲讀驅(qū)動器號 mov ch , 0 ; 磁頭號 mov cl , 2 ; 起始扇區(qū)號,從第二個扇區(qū)開始讀, ; 第一個扇區(qū)是引導(dǎo)扇區(qū),第二個才是內(nèi)核所在 mov al , 17 ; 需讀入扇區(qū)的數(shù)量,此處讀了 17 個扇區(qū) ; 是怕內(nèi)核較大,讀少了讀不完 int 13
20、h ; 調(diào)用 bios 13 號中斷開始讀扇區(qū), ; 此中斷會將數(shù)據(jù)讀到 es:bx 處 jc .readfloppy ; 如果出錯則重試(ah 中是錯誤號,為 0 則沒錯 mov dl , bootdrive ; 停止驅(qū)動器 mov edx , 0 x3f2 mov al , 0 x0c out dx , al cli ; 關(guān)中斷 lgdt gdt_addr ; 載入 gdt 的描述符 mov eax , cr0 ; 下面三句設(shè)置 cr0 的第 0 位(pe 位)為1, ; 表示進(jìn)入保護(hù)模式 or eax , 1 mov cr0 , eax jmp gdt_code_addr:code_32
21、 ; 跳入 32 位的代碼段中 bits 32 code_32: mov ax ,gdt_data_addr ; 以下三句設(shè)置 ds,es,ss,fs,gs ;為數(shù)據(jù)段描述表的位置 mov ds , ax mov es , ax mov ss , ax 8 mov fs , ax mov gs , ax mov esp , 0 xffff ;設(shè)置堆棧的頭指針 jmp gdt_code_addr:0 x9000 ; 跳入內(nèi)核, ; gdt_code_addr 是定義的代碼段的描述符所在的索引 ; 由于我們先前是把內(nèi)核讀到了 0 x9000 的位置, times 510-($-$) db 0 db
22、 0 x55 db 0 xaa 分析:分析:用 nasm 對匯編代碼進(jìn)行編譯:nasm load.asm -o load.bin編譯成功后的 load.bin 作為操作系統(tǒng)實(shí)模式下計(jì)算機(jī)的引導(dǎo)程序。程序大體流程圖如下:圖圖 .1 引導(dǎo)程序流程圖引導(dǎo)程序流程圖 開始定義段及段描述符,并設(shè)置段及段描述符的屬性 選擇啟動磁盤 設(shè)置讀磁盤功能號第二個扇區(qū)開始讀是否出錯? 關(guān)中斷 載入 gdt 描述符跳入 32 位的代碼段中 結(jié)束是否93.2 內(nèi)核鍵盤中斷實(shí)現(xiàn)typedef struct unsigned long dword0 ; unsigned long dword1 ; segm
23、ent_desc; unsigned char* videomem = (unsigned char*)0 xb8000; segment_desc idt256; unsigned long idt_desc2; unsigned long idt_addr; unsigned long keyboard_addr; unsigned long idt_offset =0 x8; void keyboard_interrupt(); int main() _asm_(mov $0 x11,%al;out %al,$0 x20 n); _asm_(mov $0 x11,%al;out %al,
24、$0 xa0 n); _asm_(mov $0 x20,%al;out %al,$0 x21 n); _asm_(mov $0 x28,%al;out %al,$0 xa1 n); _asm_(mov $0 x04,%al;out %al,$0 x21 n); _asm_(mov $0 x02,%al;out %al,$0 xa1 n); _asm_(mov $0 x1,%al;out %al,$0 x21 n); _asm_(mov $0 x1,%al;out %al,$0 xa1 n); _asm_(mov $0 xfd,%al;out %al,$0 x21 n); _asm_(mov $
25、0 xff,%al;out %al,$0 xa1 n); keyboard_addr = (unsigned long)keyboard_interrupt ; idt0 x21.dword0 = (keyboard_addr&0 xffff)|(idt_offset16); idt0 x21.dword1 = (keyboard_addr&0 xffff0000)|0 x8e00; idt_addr = (unsigned long)idt ; idt_desc0 = 0 x800 + (idt_addr&0 xffff)16 ; _asm_( lidt %0n sti :=m (idt_d
26、esc); while(1);return 0; void keyboard_interrupt()*videomem+ = c; *videomem+ = 0 x1b; 10 分析分析: (1)在 linux 下編寫好此 c 語言程序,輸入以下命令進(jìn)行編譯: gcc -c xyb.c 其中 -c 表示只編譯不鏈接 ld -o xyb -ttext 0 x9000 -e main xyb.o 其中-o 表示輸出文件名,-ttex 0 x9000 表示程序基址定為 0 x9000 -e main 表示從 main()開始執(zhí)行 objcopy -r .note -r .comment -s -o
27、binary xyb xyb.bin -r .note -r .comment 表示移掉 .note 與 .comment 段 -s 表示移出所有的標(biāo)志及重定位信息 -o binary xyb xyb.bin 表示由 xyb 生成二進(jìn)制文件 xyb.bin (2)代碼用到了內(nèi)嵌匯編,如: _asm_(mov $0 x11,%al;out %al,$0 x20 n);代表的意思為:將 0 x11 的值發(fā)送到 0 x20 端口中。(3)程序流程圖:圖 3.2.1 內(nèi)核程序流程圖 實(shí)模式下引導(dǎo)計(jì)算機(jī)進(jìn)入內(nèi)核 發(fā)送 4 個 icw 對 pic 初始化設(shè)定中斷屏蔽字,只許鍵盤中斷設(shè)置鍵盤中斷處理程序位置 獲得整個 idt 的位置描述 用 lidt 指令載入 idt 表 進(jìn)入 whil
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/WEGU 0017-2022城市河湖污泥處理廠工程質(zhì)量驗(yàn)收規(guī)范
- 小學(xué)生班牌設(shè)計(jì)
- 無菌技術(shù)及手衛(wèi)生
- 安全健康衛(wèi)生課
- 眼科結(jié)膜疾病教學(xué)
- 陳列設(shè)計(jì)分布圖規(guī)劃與應(yīng)用
- 精神衛(wèi)生科疾病診療體系概述
- 心臟復(fù)蘇急救方法
- 呼吸科出科總結(jié)
- 幼兒園食品安全教育教案
- 國開電大本科《管理英語 4》 形考任務(wù)(單元自測 1 至 8) 試題及答案
- 護(hù)理科研選題與論文寫作
- 珠寶首飾加工工藝介紹課件
- 淘寶網(wǎng)-信息披露申請表
- 小微型客車租賃經(jīng)營備案表
- 教育培訓(xùn)機(jī)構(gòu)辦學(xué)許可證申請書(樣本)
- 瓷磚業(yè)務(wù)員提成方案
- 2022年一級注冊計(jì)量師案例分析真題
- “三級”安全安全教育記錄卡
- 愛蓮說-王崧舟
- 小微企業(yè)信用評級標(biāo)準(zhǔn)模板
評論
0/150
提交評論