版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 第2章 存儲器尋址這一章處理處理技術(shù)。幸運的是,一個操作系統(tǒng)不是被迫跟蹤物理內(nèi)存本身;今天的微處理器包括幾個硬件電路使內(nèi)存管理更高效和更健壯的編程錯誤在這本書的其余部分,我們提供細節(jié)在本章關(guān)于80 x86 Intel微處理器地址內(nèi)存芯片和Linux如何利用可用的解決電路。我們希望你會發(fā)現(xiàn),當你學習Linux的實現(xiàn)細節(jié)最受歡迎的平臺你會更好地理解分頁的一般理論和方式研究在其他平臺上實現(xiàn)。這是第一個內(nèi)存管理相關(guān)的三章:第六章,討論如何內(nèi)核分配內(nèi)存,而第七章,考慮如何線性地址分配給進程2.1 存儲器尋址程序員隨意引用一個內(nèi)存地址的方式訪問的內(nèi)容一個存儲單元。但在處理80年英特爾x86微處理器,我們
2、必須區(qū)分在三種地址:邏輯地址包含在機器語言指令指定一個操作數(shù)的地址一條指令。這種類型的處理體現(xiàn)了著名的英特爾分段架構(gòu),部隊ms - dos和Windows程序員把他們的程序成段。每個邏輯地址由一個部門和一個偏移量(或位移),表示距離的開始段的實際地址。線性地址一個32位無符號整數(shù),可以用來解決4 GB,即到4294967296記憶細胞。線性地址通常用十六進制表示符號,它們的值從0 x00000000 0 xffffffff。物理地址用于解決記憶細胞包含在內(nèi)存芯片。他們對應(yīng)電信號發(fā)送的地址別針的微處理器內(nèi)存總線。物理地址表示為32位無符號整數(shù)。CPU控制單元將邏輯地址轉(zhuǎn)換成一個線性地址的硬件電路
3、稱為細分單元;先后,第二個硬件電路稱為分頁單元將線性地址轉(zhuǎn)換成物理地址(見圖2 - 1)。2.2硬件分割從80386年模型開始,英特爾微處理器執(zhí)行兩個地址轉(zhuǎn)換不同的方式稱為實模式和保護模式。實模式的存在主要是為了維護與老款處理器兼容性和允許操作系統(tǒng)引導(見附錄A,一個簡短的描述的模式)。我們將關(guān)注保護模式。2.2.1段寄存器一個邏輯地址由兩部分組成:一段標識符和一個指定的偏移量段內(nèi)的相對地址。段標識符是一個16位的領(lǐng)域稱為段選擇器,而抵消是一個32位的領(lǐng)域。使它容易快速檢索段選擇符,處理器提供細分寄存器的唯一目的是持有段選擇符;這些寄存器稱為cs,黨衛(wèi)軍,ds,es、fs和gs。雖然只有六個人
4、,一個程序可以重用相同的分割注冊不同的目的在內(nèi)存中,然后通過保存其內(nèi)容恢復它。三個六段寄存器有特定的用途:Cs代碼段寄存器,它指向包含程序指令的部分Ss堆棧段寄存器,它指向一個包含當前程序段堆棧Ds數(shù)據(jù)段寄存器,它指向包含靜態(tài)和外部的部分數(shù)據(jù)其余三個段寄存器是通用,可能指的是任意的段。cs寄存器還有另一個重要的功能:它包括一個2比特字段,該字段指定當前特權(quán)級別(CPL)的CPU。值表示最高的特權(quán)級別,而3表示價值最低的一個。Linux和3只使用水平,分別稱為內(nèi)核模式和用戶模式。2.2.2段描述符每一部分都由一個8字節(jié)段描述符表示(見圖2)描述段特征。段描述符存儲在全局描述符表(GDT)或在局部
5、描述符表(LDT)。通常只有一個GDT定義,雖然每個進程可能有自己的LDT。的地址GDT在主內(nèi)存中包含gdtr處理器寄存器的地址目前使用LDT包含ldtr處理器寄存器中。每一段描述符包含以下字段:x一個32位的基本字段包含的線性地址段的第一個字節(jié)。x G粒度國旗:如果是清除,表達的片段大小字節(jié);否則,它在4096字節(jié)的倍數(shù)表示。x 20位限制字段表示段長度,以字節(jié)為單位。如果設(shè)置為0,大小1個字節(jié)之間的一個非空段可能不同和1 MB;否則,它可能會有所不同4 KB和4 GB之間。x S系統(tǒng)標志:如果它被清除,段是一個系統(tǒng)段存儲內(nèi)核數(shù)據(jù)結(jié)構(gòu);否則,它是一個正常的代碼或數(shù)據(jù)段。x 4比特類型字段描述
6、段類型及其訪問權(quán)限。的后段描述符類型廣泛應(yīng)用:代碼段描述符表明段描述符是指一個代碼段,它可能包括在內(nèi)在GDT或LDT。描述符設(shè)置年代標志。數(shù)據(jù)段描述符表明,指的是一個數(shù)據(jù)段的段描述符,它可能包括在內(nèi)在GDT或LDT。描述符設(shè)置年代標志。堆棧段實現(xiàn)通過通用數(shù)據(jù)段。任務(wù)狀態(tài)段描述符(TSSD)表明任務(wù)狀態(tài)段的段描述符是指(TSS),也就是說,一段用來節(jié)省處理器寄存器的內(nèi)容(參見3.2.2節(jié)第3章);它只會出現(xiàn)在GDT。對應(yīng)的類型字段的值11、9,這取決于相應(yīng)的進程當前正在執(zhí)行的CPU。S標志的描述符設(shè)置為0。局部描述符表描述符(LDTD)表明段描述符是指一段包含LDT;它可以只有在GDT出現(xiàn)。對應(yīng)
7、的類型字段的值2。S的旗幟這樣的描述符設(shè)置為0。x DPL(描述符特權(quán)級)2比特字段用來限制訪問的部分。它代表了CPU的最小特權(quán)級別請求來訪問。因此,一套段DPL的CPL時只能是0,也就是說,在內(nèi)核模式,而與其DPL段設(shè)置為CPL 3訪問每一個值。x Segment-Present國旗將如果段目前不存儲在主內(nèi)存。Linux總是將這個字段設(shè)置為1,因為它從來沒有互換整個片段磁盤。x額外國旗稱為D或B取決于段包含代碼或數(shù)據(jù)。它的意義略有不同在這兩種情況下,但它基本上是如果地址用作部分抵消32位長,如果他們是16位長(見英特爾手冊詳情)。x保留一點(53)總是設(shè)置為0。x AVL國旗由操作系統(tǒng)可以使
8、用,但Linux中被忽略。2.2.3段選擇符加快邏輯地址轉(zhuǎn)化為線性地址,英特爾處理器提供了一個額外的nonprogrammable注冊該是,不能由一個寄存器程序員的六個可編程分割寄存器。每一個nonprogrammable寄存器包含8字節(jié)的段描述符(在前面的描述部分)指定的段選擇器中包含相應(yīng)的分割登記。每次一段選擇符是裝載在分割登記,從內(nèi)存加載到相應(yīng)的段描述符匹配nonprogrammable CPU寄存器。從那時起,指的是譯文的邏輯地址這部分可以不執(zhí)行訪問GDT或LDT存儲在主存;處理器可以直接提及CPU寄存器包含段描述符。訪問GDT或LDT只有當分割的內(nèi)容是必要的注冊改變(見圖2 - 3)
9、。每段選擇器包括以下字段:x可索引(進一步在該列表后的文本描述)來標識的相應(yīng)的段描述符中包含的條目GDT或LDTx一個TI(表指示器)標記,用于指定是否包括段描述符GDT(TI = 0)或在LDT(TI = 1)x的RPL(請求者的特權(quán)級)2比特字段,這正是當前特權(quán)級別的CPU當加載到相應(yīng)的段選擇器cs寄存器11RPL領(lǐng)域還可用于選擇性地削弱處理器特權(quán)級別的訪問數(shù)據(jù)段時,看到英特爾文檔細節(jié)。因為一段描述符是8個字節(jié)長,它在GDT或LDT相對地址相乘得到的最重要的13位的段選擇子8。為實例,如果GDT是0 x00020000(值存儲在gdtr寄存器)和索引指定的段選擇子是2,對應(yīng)的段描述符的地址
10、是0 x00020000 +(2 x 8)或0 x00020010。第一項GDT總是設(shè)置為0,這可以確保邏輯地址無效段選擇子將被認為是無效的,因此導致處理器例外。的最大數(shù)量的段描述符可以存儲在8191年GDT因此,也就是說,213 - 1。2.2.4分割單元圖2 - 4顯示了詳細邏輯地址是如何轉(zhuǎn)化為相應(yīng)的線性地址。分割單元執(zhí)行以下操作:x檢查TI的段選擇器,以確定哪些描述符表存儲段描述符。這個字段表示描述符在GDT(在這種情況下,分割單元的基本線性地址GDT gdtr注冊)或活動LDT(在這種情況下,分割單位得到了基本的線性地址LDT ldtr寄存器)。x計算的地址段的段描述符的索引字段選擇器
11、。索引字段是乘以8(大小的段描述符),和結(jié)果被添加到gdtr或ldtr寄存器的內(nèi)容。x增加了基地的段描述符邏輯地址的偏移量,因此得到線性地址注意,由于nonprogrammable寄存器與分割寄存器,第一個需要執(zhí)行兩個操作只有當一個分割登記被改變了。2.3市場細分在Linux中分割已經(jīng)包含在英特爾微處理器鼓勵程序員分裂他們的應(yīng)用程序在邏輯上相關(guān)的實體,如子例程或全球和本地數(shù)據(jù)區(qū)域。然而,Linux使用分割在一個非常有限的方式。事實上,分割和分頁都有點冗余自可用于單獨的物理地址空間的流程:細分可以分配一個不同的線性地址空間中每一個過程分頁可以同一個線性地址空間映射到不同的物理地址空間。Linux
12、喜歡分頁細分為以下原因:x內(nèi)存管理更簡單,當所有進程使用相同的段寄存器值,也就是說,當他們分享相同的一組線性地址。x的設(shè)計目標之一Linux可移植性最流行的體系結(jié)構(gòu);然而,幾位RISC處理器支持在一個非常有限的方式分割。2.2版本的Linux使用分割只有當所需的80 x86 Intel體系結(jié)構(gòu)。特別是,所有進程使用相同的邏輯地址,所以的總數(shù)段定義是相當有限的,可以存儲所有的段描述符全局描述符表(GDT)。此表由gdt_table數(shù)組實現(xiàn)提到的gdt變量。如果你在源代碼中指數(shù)看,你可以看到這些文件中定義的符號是arch / i386 / kernel /你們覺得。每一個宏,功能,和其他象征在這本
13、書中附錄中列出,這樣你就可以很快找到它在源代碼中。局部描述符表不使用的內(nèi)核,盡管存在一個系統(tǒng)調(diào)用,它允許流程創(chuàng)建自己的LDTs。這是有用的應(yīng)用程序,如酒執(zhí)行segment-oriented Microsoft Windows應(yīng)用程序。這里是Linux使用的部分:x內(nèi)核代碼段。中相應(yīng)的段描述符的字段GDT有以下值:o = 0 x00000000基地o = 0 xfffff限制o G(粒度國旗)= 1,部分頁面大小o S(系統(tǒng)國旗)= 1,正常的代碼或數(shù)據(jù)段o = 0 xa類型,可以讀取和執(zhí)行的代碼段o DPL(描述符特權(quán)級別)= 0,內(nèi)核模式o D / B(32位地址標志)= 1,32位的偏移地
14、址因此,相關(guān)的線性地址段開始,到達解決232 - 1的極限。年代和類型字段指定一個代碼段段,可以讀取和執(zhí)行。其DPL值為0,從而可以訪問它在內(nèi)核模式。相應(yīng)的段選擇符是由_KERNEL_CS定義宏觀:為了解決部分,內(nèi)核加載產(chǎn)生的值宏成cs寄存器。x內(nèi)核數(shù)據(jù)段。中相應(yīng)的段描述符的字段GDT有以下值:o = 0 x00000000基地o = 0 xfffff限制o G(粒度國旗)= 1,部分頁面大小o S(系統(tǒng)國旗)= 1,正常的代碼或數(shù)據(jù)段o型= 2,可以讀取和寫入的數(shù)據(jù)段o DPL(描述符特權(quán)級別)= 0,內(nèi)核模式o D / B(32位地址標志)= 1,32位的偏移地址這部分是與前一個相同(事實
15、上,他們在線性地址重疊空間)除了類型字段的值,它指定一個數(shù)據(jù)段可以讀和寫。相應(yīng)的段選擇符被定義為_KERNEL_DS宏。x用戶在用戶模式下所有進程共享的代碼段。的字段相應(yīng)的段描述符的GDT有以下值:o = 0 x00000000基地o = 0 xfffff限制o G(粒度國旗)= 1,部分頁面大小o S(系統(tǒng)國旗)= 1,正常的代碼或數(shù)據(jù)段o = 0 xa類型,可以讀取和執(zhí)行的代碼段o DPL(描述符特權(quán)級別)= 3,用戶模式o D / B(32位地址標志)= 1,32位的偏移地址年代和DPL字段指定的段段,它不是一個系統(tǒng)特權(quán)級別等于3,因此可以在內(nèi)核模式和用戶訪問模式。相應(yīng)的段選擇符是_US
16、ER_CS定義的宏。x用戶數(shù)據(jù)段共享的所有進程在用戶模式。的字段相應(yīng)的段描述符的GDT有以下值:o = 0 x00000000基地o = 0 xfffff限制o G(粒度國旗)= 1,部分頁面大小o S(系統(tǒng)國旗)= 1,正常的代碼或數(shù)據(jù)段o型= 2,可以讀取和寫入的數(shù)據(jù)段o DPL(描述符特權(quán)級別)= 3,用戶模式o D / B(32位地址標志)= 1,32位的偏移地址這段重復前一個:他們是相同的,除了的價值類型。相應(yīng)的段選擇符是_USER_DS定義的宏。x任務(wù)狀態(tài)段為每個進程(TSS)段。的描述符部分存儲在GDT。TSS的基本字段描述符相關(guān)每個進程包含tss的地址字段對應(yīng)的過程描述符。G標
17、志被清除,而限制字段設(shè)置為0 xeb,因為TSS段是236個字節(jié)長。類型字段設(shè)置為9或11(32位TSS),和DPL設(shè)置為0,因為流程在用戶模式下是不允許訪問TSS段。x一個默認LDT段通常是由所有進程共享。這段存儲在default_ldt變量中。默認LDT包含一個條目組成的空段描述符。每個進程都有自己的LDT段描述符,它通常指向共同違約LDT段?;咀侄卧O(shè)置為地址default_ldt和限制字段設(shè)置為7。如果一個進程需要一個真實的LDT,創(chuàng)建一個新的4096字節(jié)段(它可以包含多達511段描述符),默認LDT段描述符與這一過程相關(guān)聯(lián)在GDT新的描述符換成基礎(chǔ)和特定的值限制字段。對于每一個過程,
18、因此,GDT包含兩個不同的段描述符:一個用于TSS段和LDT一段。中允許的最大條目數(shù)GDT是12 + 2 xnr_tasks,反過來,NR_TASKS表示的最大數(shù)量流程。我們在前面的列表描述了六個主要的段描述符使用Linux。四個額外的段描述符覆蓋高級電源管理(APM)功能,GDT剩下未使用的和四個條目,總共14。正如我們之前提到的,GDT最多可以有213 = 8192項,其中第一個是總是空。自14日未使用或由系統(tǒng)NR_TASKS不能大比8180/2 = 4090。每個過程的TSS和LDT描述符添加到GDT過程創(chuàng)建。3.3.2節(jié)中我們將看到在第3章,內(nèi)核本身產(chǎn)生第一流程:流程init_task
19、運行。內(nèi)核初始化期間,trap_init()函數(shù)將第一個過程的TSS描述符插入到GDT使用聲明:set_tss_desc(0,&init_task.tss);第一個進程創(chuàng)造了別人,所以每一個后續(xù)的過程是一些現(xiàn)有的孩子的過程。copy_thread()函數(shù),該函數(shù)調(diào)用的克隆()和fork()系統(tǒng)調(diào)用來創(chuàng)建新的流程,執(zhí)行相同的功能,以設(shè)置的TSS新流程:set_tss_desc(nr,&(任務(wù)(nr)- > tss);因為每個TSS描述符指的是一個不同的過程,當然,每個領(lǐng)域有一個基地不同的值。也copy_thread()函數(shù)調(diào)用set_ldt_desc()函數(shù)為了插入一段描述
20、符GDT相對的默認LDT新的過程。內(nèi)核數(shù)據(jù)段包含一個進程描述符為每一個過程。每一個過程描述符包括自己的TSS LDT段段和一個指針,也是位于內(nèi)核數(shù)據(jù)段。如前所述,當前特權(quán)級別的CPU處理器是否反映了指定的用戶或內(nèi)核模式和RPL段選擇器中存儲領(lǐng)域cs寄存器。每當改變當前特權(quán)級別時,一些細分寄存器必須相應(yīng)更新。例如,當CPL = 3(用戶模式)ds寄存器必須包含用戶數(shù)據(jù)段的段選擇子,但當CPL等于0,ds寄存器必須包含內(nèi)核數(shù)據(jù)段的段選擇子。黨衛(wèi)軍寄存器發(fā)生類似的情況:它必須引用用戶模式堆棧中用戶數(shù)據(jù)段的測井是3,它必須引用一個內(nèi)核模式堆棧中內(nèi)核數(shù)據(jù)段的測井是0。從用戶模式到內(nèi)核模式的切換時,Lin
21、ux總是確保黨衛(wèi)軍寄存器包含內(nèi)核數(shù)據(jù)的段選擇子段。2.4分頁在硬件分頁單元線性地址轉(zhuǎn)換為物理的。它檢查請求的訪問類型的線性地址的訪問權(quán)限。如果內(nèi)存訪問無效,它將產(chǎn)生一個缺頁異常(見第四章和第六章)。為了效率,線性地址分組在固定長度的間隔稱為頁;連續(xù)的線性地址映射到一個頁面中的連續(xù)的物理地址。在通過這種方式,內(nèi)核可以指定物理地址和頁面的訪問權(quán)限,而不是這些所有的線性地址。在通常的慣例,我們將使用“頁面”的術(shù)語來表示一組線性地址和數(shù)據(jù)包含在這一組的地址。所有內(nèi)存分區(qū)的分頁單元認為(它們是固定長度的頁幀有時被稱為物理頁)。每個頁面都包含一個頁面,也就是說,長度一個頁幀的頁面。一個頁面框架組成的主內(nèi)存
22、,因此它是一個存儲區(qū)域。重要的是區(qū)分一個頁面一個頁面框架:前只是一個數(shù)據(jù)塊可能存儲在任何頁面或磁盤上。線性地址到物理地址的映射的數(shù)據(jù)結(jié)構(gòu)被稱為頁表;存儲在主存,必須正確地初始化由內(nèi)核啟用之前分頁單元。在英特爾處理器,通過設(shè)置啟用分頁PG cr0寄存器的旗幟。PG = 0時,線性地址解釋為物理地址。2.4.1定期分頁從i80386開始,英特爾處理器的分頁單元處理4 KB頁。的32位一個線性地址分為三個字段:目錄最重要的10位表中間10位抵消最重要的12位線性地址的翻譯是在兩個步驟完成,每一個基于類型的轉(zhuǎn)換表。第一個翻譯表稱為頁目錄,第二個叫做頁表。頁面的物理地址目錄在使用存儲在cr3處理器寄存器
23、。的目錄字段內(nèi)的線性地址確定點的頁目錄中的條目適當?shù)捻摫?。反過來,地址的表字段決定了進入該頁面表,包含頁面的物理地址包含頁面的框架。偏移量字段決定了頁面內(nèi)的相對位置(見圖2 - 5)。因為它是12位長,每個頁面包含4096字節(jié)的數(shù)據(jù)。目錄和表字段是10位長,所以頁目錄和頁表可以包含多達1024個。由此可見,一個頁面目錄可以解決1024 x 1024x 4096 = 232記憶細胞,你期望在32位地址。頁目錄和頁表的條目有相同的結(jié)構(gòu)。每個條目包括以下字段:現(xiàn)在國旗如果它被設(shè)置,稱為頁面(或頁表)包含在主內(nèi)存;如果國旗0,頁面不包含在主內(nèi)存和剩余的條目可以使用由操作系統(tǒng)的目的。(16章,我們將看到
24、如何Linux利用這一領(lǐng)域)。字段包含20個最重要的頁面框架物理地址因為每個頁面有一個4 KB的能力,其物理地址必須的倍數(shù)4096,所以12的最低有效位物理地址總是等于0。如果這個領(lǐng)域是指一個頁面目錄,頁面框架包含了一個頁表;如果它是指頁表,頁面框架包含一個頁面的數(shù)據(jù)。訪問標志每次設(shè)置分頁單元地址對應(yīng)的頁框。這個標志可以使用的操作系統(tǒng)在選擇頁面被換出。分頁單位沒有重置這個標志,這必須由操作系統(tǒng)完成。臟國旗僅適用于頁表條目。設(shè)置每一次寫操作在頁面上執(zhí)行框架。這面旗幟在前面的情況下,可以使用的操作系統(tǒng)在選擇頁面被換出。分頁單元不重置這個標志,這必須由操作系統(tǒng)完成。讀/寫信號包含正確的訪問(讀/寫或
25、讀)的頁面或頁面(見表在本章后面部分的2.4.3)。用戶/主管國旗包含的權(quán)限訪問該頁面或頁表(見部分2.4.3)兩個國旗稱為PCD和佩恩表的編制者控制頁面或頁表的方式是由硬件緩存(參見章節(jié)2.4.6在本章后面)。頁面大小的旗幟僅適用于頁目錄條目。如果它被設(shè)置,入口是指4 MB頁長框架(參見下一節(jié))。如果條目頁表或頁目錄需要進行地址轉(zhuǎn)換現(xiàn)在的國旗了,分頁單元線性地址存儲在cr2處理器注冊并生成異常14日,也就是“頁面錯誤”例外。2.4.2擴展分頁與奔騰模型開始,英特爾80 x86微處理器引入擴展分頁,這允許或4 KB頁幀4 MB的大小(見圖2 - 6)。正如我們所看到的在前一節(jié)中,通過設(shè)置啟用分
26、頁擴展頁面大小國旗的頁目錄條目。在這種情況下,分頁單元劃分一個線性的32位地址為兩個字段:目錄最重要的10位抵消剩下的22位目錄條目頁擴展分頁一樣正常的分頁,除了:x必須設(shè)置頁面大小的旗幟。x只有前10的20位最重要的物理地址字段有很重要的意義。這是因為每個物理地址是4 MB邊界對齊,所以22日最低有效位的地址都是0。啟用擴展分頁與常規(guī)分頁共存;它通過設(shè)置PSE cr4的旗幟處理器寄存器。擴展使用分頁翻譯大間隔的連續(xù)線性的地址到相應(yīng)物理的;在這種情況下,內(nèi)核可以沒有中間頁表,從而節(jié)省內(nèi)存。2.4.3硬件保護計劃分頁單元分割單元使用不同的保護計劃。雖然英特爾處理器允許四種可能的特權(quán)級別的一段,只
27、有兩個特權(quán)級別相關(guān)頁面和頁表,因為權(quán)限的控制用戶/主管國旗2.4.1節(jié)所述。這個標志是0時,頁面可以解決CPL只有當小于3(這意味著,對于Linux,當處理器內(nèi)核模式)。國旗是1時,頁面總是可以解決的。此外,而不是三種類型的訪問權(quán)限(讀、寫、執(zhí)行)聯(lián)系在一起段,只有兩種類型的訪問權(quán)限(讀、寫)與頁面相關(guān)聯(lián)。如果讀/寫國旗的頁目錄或頁表條目= 0,相應(yīng)的頁表或頁面只能讀,否則它可以讀取和寫入。2.4.4分頁的一個例子一個簡單的例子將有助于澄清分頁是如何工作的。讓我們假設(shè)內(nèi)核分配0 x20000000和之間的線性地址空間0 x2003ffff運行的進程。這個空間是由64頁。我們不關(guān)心的物理地址頁幀包含頁;事實上,他們中的一些人甚至可能不主內(nèi)存。我們只剩下的頁面的字段表條目。我們從10開始最重要的線性地址分配給這個過程,解釋為目錄字段的分頁單元。地址從2開始其次是0,10位都有相同的值,即0 x080或128十進制。因此目錄字段在所有進程的地址指的是第
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 衛(wèi)生系統(tǒng)平安建設(shè)活動方案(3篇)
- 質(zhì)控小組職責模版(2篇)
- 施工人員管理制度(3篇)
- 二零二五年度建筑工程施工服務(wù)外包合同2篇
- 課題申報書:大語言模型驅(qū)動三語教學的能動性分析和應(yīng)用路徑研究
- 裝飾圖案課程設(shè)計理念
- 二零二五年度新能源設(shè)備技術(shù)出口服務(wù)協(xié)議3篇
- 2024年規(guī)范化勞務(wù)輸出協(xié)議模板
- 材料員崗位的具體職責說明范文(2篇)
- 課題申報書:大學生數(shù)字化生存境況及優(yōu)化路向研究
- 娛樂場所突發(fā)事件應(yīng)急措施及疏散預案(三篇)
- 八大危險作業(yè)安全培訓考核試卷
- 老年焦慮癥的護理
- 2024年白山客運從業(yè)資格證考試題庫
- 中國商貿(mào)文化商道
- 臨港新片區(qū)規(guī)劃介紹
- 2024年云南省公務(wù)員錄用考試《行測》真題及答案解析
- 廢氣處理系統(tǒng)改造及廢水處理系統(tǒng)改造項目可行性研究報告
- 山東省濟寧市2023-2024學年高一上學期2月期末考試化學試題(解析版)
- xx公路與天然氣管道交叉方案安全專項評價報告
- 露營基地商業(yè)計劃書
評論
0/150
提交評論