版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、00:15,Linux嵌入式操作系統(tǒng) 文全剛,1/58,認(rèn)識(shí)Linux內(nèi)核,主講教師:文全剛 wen_sir_,00:15,Linux嵌入式操作系統(tǒng) 文全剛,2/58,內(nèi)容提要,Linux體系結(jié)構(gòu) Linux內(nèi)核配置編譯 Linux的移植,00:15,Linux嵌入式操作系統(tǒng) 文全剛,3/58,一.Linux體系結(jié)構(gòu),Linux體系結(jié)構(gòu) Linux內(nèi)核子系統(tǒng) Linux 內(nèi)核的技術(shù)特點(diǎn) 內(nèi)核源代碼結(jié)構(gòu),00:15,Linux嵌入式操作系統(tǒng) 文全剛,4/58,Linux體系結(jié)構(gòu),00:15,Linux嵌入式操作系統(tǒng) 文全剛,5/58,Linux內(nèi)核子系統(tǒng),00:15,Linux嵌入式操作系統(tǒng) 文
2、全剛,6/58,Linux內(nèi)核子系統(tǒng),進(jìn)程調(diào)度控制著進(jìn)程對(duì)CPU的訪問。 內(nèi)存管理允許多個(gè)進(jìn)程安全地共享主內(nèi)存區(qū)域 虛擬文件系統(tǒng)隱藏各種不同硬件的具體細(xì)節(jié),為所有設(shè)備提供統(tǒng)一的接口。 網(wǎng)絡(luò)提供了對(duì)各種網(wǎng)絡(luò)標(biāo)準(zhǔn)協(xié)議的存取和各種網(wǎng)絡(luò)硬件的支持。 進(jìn)程間通信(IPC) 支持進(jìn)程間各種通信機(jī)制,包括共享內(nèi)存、消息隊(duì)列及管道等。,00:15,Linux嵌入式操作系統(tǒng) 文全剛,7/58,Linux 內(nèi)核的技術(shù)特點(diǎn),Linux內(nèi)核最注重實(shí)用和效率。 Linux內(nèi)核被設(shè)計(jì)成單(宏)內(nèi)核(monolithic)結(jié)構(gòu)。模塊間的通訊是通過直接調(diào)用其它模塊中的函數(shù)實(shí)現(xiàn)的。效率高,緊湊性強(qiáng)。 2.6版本前Linux內(nèi)核
3、是單線程結(jié)構(gòu),非搶占的同一時(shí)間只有一個(gè)執(zhí)行線程(內(nèi)核中的執(zhí)行程序)允許在內(nèi)核中運(yùn)行,不會(huì)被調(diào)度程序打斷運(yùn)行其它任務(wù),這種內(nèi)核被成為非搶占的。 避免了許多復(fù)雜的同步問題 不利影響是非搶占特性延遲了系統(tǒng)響應(yīng)速度,新任務(wù)必須等待當(dāng)前任務(wù)在內(nèi)核執(zhí)行退出才能獲得運(yùn)行機(jī)會(huì)。 2.6版本后將搶占技術(shù)引入到Linux內(nèi)核,付出的代價(jià)是同步操作進(jìn)一步復(fù)雜化。,00:15,Linux嵌入式操作系統(tǒng) 文全剛,8/58,Linux 內(nèi)核的技術(shù)特點(diǎn),內(nèi)核可定制。選擇適合自己的功能,將不需要的部分剔除出內(nèi)核。 Linux內(nèi)核對(duì)設(shè)備驅(qū)動(dòng)或新文件系統(tǒng)等采用了 (loadable kernel module) LKM機(jī)制,用戶
4、在需要時(shí)可以現(xiàn)場(chǎng)動(dòng)態(tài)加載,使用完畢可以動(dòng)態(tài)卸載。 將模塊從內(nèi)核中獨(dú)立出來,不必預(yù)先綁定在 kernel codes 中。這樣做有三種優(yōu)點(diǎn):,00:15,Linux嵌入式操作系統(tǒng) 文全剛,9/58,1.將來修改 kernel 時(shí),不必全部重新compile 2.若需要安裝新的 modules ,不必重新 compile kernel,只要插入 (通過insmode指令) 對(duì)應(yīng)的modules 3.減少內(nèi)核對(duì)系統(tǒng)資源的占用,內(nèi)核可以集中精力做最基本的事情,把一些擴(kuò)展功能交由modules實(shí)現(xiàn)。,00:15,Linux嵌入式操作系統(tǒng) 文全剛,10/58,Linux 內(nèi)核的技術(shù)特點(diǎn),Linux內(nèi)核純粹
5、是一種被動(dòng)調(diào)用服務(wù)對(duì)象。 所謂被動(dòng):Linux內(nèi)核為用戶進(jìn)程服務(wù)的唯一方式是用戶進(jìn)程通過系統(tǒng)調(diào)用來請(qǐng)求在內(nèi)核空間運(yùn)行某個(gè)函數(shù)。 內(nèi)核本身是一種函數(shù)和數(shù)據(jù)結(jié)構(gòu)的集合,不存在運(yùn)行的內(nèi)核進(jìn)程為用戶進(jìn)程服務(wù) 雖然Linux的確存在一種被稱為內(nèi)核線程的進(jìn)程,但它并不是用來服務(wù)于用戶進(jìn)程的,僅僅作為系統(tǒng)自身的服務(wù)目的。,00:15,Linux嵌入式操作系統(tǒng) 文全剛,11/58,Linux 內(nèi)核的技術(shù)特點(diǎn),Linux內(nèi)核采用虛擬內(nèi)存技術(shù),每個(gè)進(jìn)程的虛擬內(nèi)存空間為4GB。 其中0-3G屬于用戶空間,稱為用戶段, 3G-4G屬于內(nèi)核空間,稱為內(nèi)核段。,00:15,Linux嵌入式操作系統(tǒng) 文全剛,12/58,L
6、inux 內(nèi)核的技術(shù)特點(diǎn),Linux內(nèi)核的文件系統(tǒng)子模塊: VFS(虛擬文件系統(tǒng))實(shí)現(xiàn)了一種抽象文件模型。 虛擬文件系統(tǒng)屏蔽了各種不同文件系統(tǒng)的內(nèi)在差別,使得用戶可以使用同樣的方式訪問各種不同格式的文件系統(tǒng),可以毫無區(qū)別地在不同介質(zhì)不同格式的文件系統(tǒng)之間使用VFS提供的統(tǒng)一接口交換數(shù)據(jù)。,00:15,Linux嵌入式操作系統(tǒng) 文全剛,13/58,Linux 內(nèi)核的技術(shù)特點(diǎn),Linux內(nèi)核提供了一套很有效的延遲執(zhí)行機(jī)制。 這些技術(shù)保證了系統(tǒng)可以針對(duì)任務(wù)的輕重緩急,更細(xì)粒度的選擇執(zhí)行時(shí)機(jī)。 保證了系統(tǒng)運(yùn)行時(shí)盡量在安全時(shí)間(不關(guān)中斷)。,00:15,Linux嵌入式操作系統(tǒng) 文全剛,14/58,內(nèi)核
7、源代碼結(jié)構(gòu),00:15,Linux嵌入式操作系統(tǒng) 文全剛,15/58,Linux內(nèi)核源代碼結(jié)構(gòu),Linux 內(nèi)核源代碼的結(jié)構(gòu) Linux內(nèi)核源代碼位于/usr/src/linux目錄下 /include子目錄包含了建立內(nèi)核代碼時(shí)所需的大部分包含文件 /init 子目錄包含了內(nèi)核的初始化代碼 /arch子目錄包含了所有硬件結(jié)構(gòu)特定的內(nèi)核代碼 /drivers子目錄包含了內(nèi)核中所有的設(shè)備驅(qū)動(dòng)程序 /fs子目錄包含了所有的文件系統(tǒng)的代碼 /net子目錄包含了內(nèi)核的網(wǎng)絡(luò)連接代碼 /mm子目錄包含了所有內(nèi)存管理代碼 /ipc子目錄包含了進(jìn)程間通信代碼 /kernel子目錄包含了主內(nèi)核代碼,00:15,L
8、inux嵌入式操作系統(tǒng) 文全剛,16/58,Linux內(nèi)核源代碼分析工具,Windows平臺(tái)下的源代碼閱讀工具Source Insight 下載內(nèi)核版本請(qǐng)?jiān)L問 /,00:15,Linux嵌入式操作系統(tǒng) 文全剛,17/58,二.Linux內(nèi)核配置編譯,為什么要編譯內(nèi)核 內(nèi)核的獲取 內(nèi)核的配置編譯,00:15,Linux嵌入式操作系統(tǒng) 文全剛,18/58,編譯內(nèi)核的需要,Linux作為一個(gè)自由軟件,不斷增加許多新的特性。想要使用這些新特性,或想根據(jù)自己的系統(tǒng)度身定制一個(gè)更高效,更穩(wěn)定的內(nèi)核,就需要重新編譯內(nèi)核。 更新的內(nèi)核會(huì)支持更多的硬件,具備更好的進(jìn)程管理
9、能力,運(yùn)行速度更快、 更穩(wěn)定,并且一般會(huì)修復(fù)老版本中發(fā)現(xiàn)的許多漏洞等。,00:15,Linux嵌入式操作系統(tǒng) 文全剛,19/58,編譯內(nèi)核的需要,自己定制編譯的內(nèi)核運(yùn)行更快 系統(tǒng)將擁有更多的內(nèi)存 不需要的功能編譯進(jìn)入內(nèi)核可能會(huì)增加被系統(tǒng)攻擊者利用的漏洞 將某種功能編譯為模塊方式會(huì)比編譯到內(nèi)核內(nèi)的方式速度要慢一些,00:15,Linux嵌入式操作系統(tǒng) 文全剛,20/58,新版本內(nèi)核的獲取和更新,官方網(wǎng)站是 新版本的內(nèi)核的發(fā)布有兩種形式 一種是full/ Source版本,一般是tar.gz或者是.bz2文件。 另外一種是patch文件,即補(bǔ)丁。 patch
10、文件一般只有幾十K到幾百K,但是patch文件是針對(duì)于特定的版本的,你需要找到自己對(duì)應(yīng)的版本才能使用。 例如:你有2.6.9的源代碼,但想移到2.6.10。就可以獲得2.6.10的補(bǔ)丁文件,應(yīng)用patch來修改2.6.9源文件。 $ cd /usr/src/linux $ patch pl patch-2.6.10,00:15,Linux嵌入式操作系統(tǒng) 文全剛,21/58,Linux內(nèi)核配置編譯,內(nèi)核配置系統(tǒng) Linux內(nèi)核有上千個(gè)配置選項(xiàng),配置復(fù)雜。通過配置系統(tǒng)簡(jiǎn)化內(nèi)核配置。 內(nèi)核配置系統(tǒng)可生成內(nèi)核配置菜單。 配置系統(tǒng)包含: Makefile Kconfig 配置工具,00:15,Linux
11、嵌入式操作系統(tǒng) 文全剛,22/58,Linux內(nèi)核配置編譯,內(nèi)核配置系統(tǒng) Makefile 分布在 Linux 內(nèi)核源代碼中的 Makefile,定義 Linux 內(nèi)核的編譯規(guī)則; 頂層目錄的Makefile管理整個(gè)Linux內(nèi)核的配置編譯。 配置工具 不同的內(nèi)核配置方式,通過不同的配置工具完成。script目錄下提供了這些配置工具。如menuconfig目標(biāo)使用mconf。 Kconfig文件(config.in) 2.6內(nèi)核引入的配置文件,是內(nèi)核配置選項(xiàng)的源文件。 arch/$(ARCH)/Kconfig文件是主Kconfig文件,主Kconfig文件調(diào)用其他目錄的Kconfig文件。 這
12、些Kconfig文件形成樹狀關(guān)系-樹狀菜單。,00:15,Linux嵌入式操作系統(tǒng) 文全剛,23/58,Linux內(nèi)核配置編譯,準(zhǔn)備工作: 首先請(qǐng)把你需要升級(jí)的內(nèi)核拷貝到/usr/src/下 #cp linux-2.6.18.tar.gz /usr/src 解壓縮源代碼 #tar -xzvf linux-2.6.18.tar.gz,00:15,Linux嵌入式操作系統(tǒng) 文全剛,24/58,Linux內(nèi)核配置編譯,內(nèi)核配置命令: #make config(基于文本的最為傳統(tǒng)的配置界面,不推薦使用) #make menuconfig(基于文本菜單的配置界面,字符終端下推薦使用) #make xco
13、nfig(基于圖形窗口模式的配置界面,Xwindow下推薦使用) #make gconfig(基于gtk的圖形配置界面),00:15,Linux嵌入式操作系統(tǒng) 文全剛,25/58,Linux內(nèi)核配置編譯,選擇相應(yīng)的配置時(shí),有三種選擇,它們分別代表的含義如下: Y-將該功能編譯進(jìn)內(nèi)核 N-不將該功能編譯進(jìn)內(nèi)核 M-將該功能編譯成模塊,可以在需要時(shí)動(dòng)態(tài)插入到內(nèi)核中 make xconfig,使用鼠標(biāo)就可以選擇對(duì)應(yīng)的選項(xiàng)。 make menuconfig,則需要使用空格鍵進(jìn)行選取。 如果有不明白的地方,按 shift+?的組合鍵來查看說明,00:15,Linux嵌入式操作系統(tǒng) 文全剛,26/58,L
14、inux內(nèi)核配置編譯,配置的原則 大部分選項(xiàng)可以使用其缺省值,只有小部分需要根據(jù)用戶不同的需要選擇。 將與內(nèi)核其它部分關(guān)系較遠(yuǎn)且不經(jīng)常使用的部分功能代碼編譯成為可加載模塊。 有利于減小內(nèi)核的長(zhǎng)度,減小內(nèi)核消耗的內(nèi)存; 不需要的功能就不要選; 與內(nèi)核關(guān)心緊密而且經(jīng)常使用的部分功能代碼直接編譯到內(nèi)核中。,00:15,Linux嵌入式操作系統(tǒng) 文全剛,27/58,Linux內(nèi)核配置編譯,獲取硬件信息 CPU的型號(hào) # cat /proc/cpuinfo 輸出的信息 選中對(duì)應(yīng)型號(hào)的,性能有所提高。 查看PCI設(shè)備 lspci -v 查看USB設(shè)備 lsusb,00:15,Linux嵌入式操作系統(tǒng) 文全
15、剛,28/58,Linux內(nèi)核配置編譯,配置的注意選項(xiàng) Code maturity level options - 應(yīng)該選擇 * Prompt for development and/or incomplete code/drivers 這將會(huì)在設(shè)置界面中顯示還在開發(fā)或者還沒有完成的代碼與驅(qū)動(dòng). 因?yàn)橛性S多設(shè)備可能必需選擇這個(gè)選項(xiàng)才能進(jìn)行配置,實(shí)際上它是安全的。,00:15,Linux嵌入式操作系統(tǒng) 文全剛,29/58,Linux內(nèi)核配置編譯,配置的注意選項(xiàng) 2 General setup -大部分保持默認(rèn) * Support for paging of anonymous memory (s
16、wap) 應(yīng)該選擇這個(gè)選項(xiàng)將使你的內(nèi)核支持虛擬內(nèi)存。 * System V IPC 應(yīng)該選擇 為進(jìn)程提供通信機(jī)制。有些程序只有在選Y的情況下才能運(yùn)行,這里一定要選。 * POSIX Message Queues POSIX的消息隊(duì)列,它同樣是一種IPC,應(yīng)該選擇 * Support for hot-pluggable devices 支持熱插拔的,若是為普通電腦配置內(nèi)核,則最好選擇,00:15,Linux嵌入式操作系統(tǒng) 文全剛,30/58,Linux內(nèi)核配置編譯,配置的注意選項(xiàng) 3 Loadable module support - * Enable loadable module suppo
17、rt 應(yīng)該選擇 這個(gè)選項(xiàng)可以讓你的內(nèi)核支持模塊。一般一些不常用到的驅(qū)動(dòng)或特性可以編譯為模塊以減少內(nèi)核的體積。 * Module unloading 應(yīng)該選擇 這個(gè)選項(xiàng)可以讓你卸載不再使用的模塊,如果不選的話你將不能卸載任何模塊 * Forced module unloading 強(qiáng)行卸載模塊,可以把正在使用中的??煨遁d掉。做內(nèi)核開發(fā)或者驅(qū)動(dòng)開發(fā)的時(shí)候,有一定的好處。但一般用戶不應(yīng)該選擇。,00:15,Linux嵌入式操作系統(tǒng) 文全剛,31/58,Linux內(nèi)核配置編譯,配置的注意選項(xiàng) 3 Loadable module support - * Module versioning support
18、 模塊版本支持 該選項(xiàng)可以使得系統(tǒng)支持其它版本的內(nèi)核模塊。 Source checksum for all modules 否 這個(gè)功能是為了防止更改了內(nèi)核模塊的代碼但忘記更改版本號(hào)而造成版本沖突。 * Automatic kernel module loading 在內(nèi)核需要一些模塊時(shí),可以自動(dòng)調(diào)用modprobe命令來加載需要的模塊。,00:15,Linux嵌入式操作系統(tǒng) 文全剛,32/58,Linux內(nèi)核配置編譯,配置的注意選項(xiàng) 4 Processor type and features - Processor family (Pentium-Pro) - 選擇cpu的類型 5 Powe
19、r management options (ACPI, APM) - * Power Management support 支持高級(jí)電源管理(也就是平常我們說的軟關(guān)機(jī)、系統(tǒng)休眠等)。,00:15,Linux嵌入式操作系統(tǒng) 文全剛,33/58,Linux內(nèi)核配置編譯,配置的注意選項(xiàng) 6 Bus options (PCI, PCMCIA, EISA, MCA, ISA) - * PCI support PCI支持。當(dāng)然必選 PCI access mode (Any) - PCI的存取方式,分三種,有透過BIOS或是直接存取跟任意,預(yù)設(shè)值A(chǔ)ny 7 Executable file formats -
20、 * Kernel support for ELF binaries 一定要選擇,00:15,Linux嵌入式操作系統(tǒng) 文全剛,34/58,Linux內(nèi)核配置編譯,配置的注意選項(xiàng) 8 Device Drivers - Memory Technology Devices (MTD) - 存儲(chǔ)設(shè)備層,大部分的flash芯片驅(qū)動(dòng)都基于MTD。用于嵌入式系統(tǒng)。 Block devices Loopback device support 可以將一個(gè)文件掛成一個(gè)文件系統(tǒng)。mount iso文件 8 file systems - 建議將根文件系統(tǒng)直接編譯到內(nèi)核中。并且在這里選擇系統(tǒng)支持的文件系統(tǒng)。,00:1
21、5,Linux嵌入式操作系統(tǒng) 文全剛,35/58,Linux內(nèi)核配置編譯,相關(guān)編譯命令: #make dep #make clean #make bzImage #make modules #make modules_install #depmod -a,00:15,Linux嵌入式操作系統(tǒng) 文全剛,36/58,Linux內(nèi)核配置編譯,make dep實(shí)際上讀取配置過程生成的配置文件 make clean完成刪除前面步驟留下的文件 make bzImage實(shí)現(xiàn)完全編譯內(nèi)核 make modules和make modules_install分別生成相應(yīng)的模塊和把模塊拷貝到需要的目錄中。 生成初始
22、化ramdisk 需為新內(nèi)核生成一個(gè)initrd-.img文件,這個(gè)文件的作用是臨時(shí)的引導(dǎo)硬件到實(shí)際內(nèi)核vmlinuz能夠接管并繼續(xù)引導(dǎo)的狀態(tài) mkinitrd initrd-2.4.18 2.4.18,00:15,Linux嵌入式操作系統(tǒng) 文全剛,37/58,Linux內(nèi)核配置編譯,2.6內(nèi)核的編譯 Make menuconfig Make vmlinux Make zImage bzImage Make modules_install Make install,00:15,Linux嵌入式操作系統(tǒng) 文全剛,38/58,Linux內(nèi)核配置編譯,修改新的bootloader,用新內(nèi)核啟動(dòng) 重新
23、啟動(dòng)系統(tǒng),即可引導(dǎo)新的內(nèi)核。,00:15,Linux嵌入式操作系統(tǒng) 文全剛,39/58,三.內(nèi)核的移植,移植準(zhǔn)備 修改內(nèi)核源碼 內(nèi)核裁剪 內(nèi)核編譯與下載,00:15,Linux嵌入式操作系統(tǒng) 文全剛,40/58,移植準(zhǔn)備,源代碼 交叉編譯環(huán)境,00:15,Linux嵌入式操作系統(tǒng) 文全剛,41/58,修改內(nèi)核源碼,根目錄 Makefile 指定目標(biāo)平臺(tái) 指定編譯器,00:15,Linux嵌入式操作系統(tǒng) 文全剛,42/58,Arch目錄,內(nèi)核起始運(yùn)行地址 ifeq ($(CONFIG_ARCH_S3C2410),y) TEXTADDR = 0 xC0008000 MACHINE = s3c241
24、0 endif,00:15,Linux嵌入式操作系統(tǒng) 文全剛,43/58,Config .in,choice ARM system type S3C2410-based CONFIG_ARCH_S3C2410 添加 config_arch_s3c2410子選項(xiàng) if $CONFIG_ARCH_S3C2410 = y ; then comment S3C2410 Implementation dep_bool SMDK (MERI TECH BOARD) CONFIG_S3C2410_SMDK $CONFIG_ARCH_S3C2410 # /* CONFIG_ARCH_S3C2410 */ $C
25、ONFIG_ARCH_S3C2410 = y -o ,00:15,Linux嵌入式操作系統(tǒng) 文全剛,44/58,# ARM920T if $CONFIG_ARCH_S3C2400 = y -o $CONFIG_ARCH_S3C2410 = y -o $CONFIG_ARCH_MX1ADS = y ; then define_bool CONFIG_CPU_ARM920T y,00:15,Linux嵌入式操作系統(tǒng) 文全剛,45/58,ARCH/Arm/boot,指定內(nèi)核解壓縮到目標(biāo)板的地址 修改makefile ifeq ($(CONFIG_ARCH_S3C2410),y) ZTEXTADDR = 0 x30008000 ZRELADDR = 0 x30008000 endif,00:15,Linux嵌入式操作系統(tǒng) 文全剛,46/58,Compressed/makefile,加入head-s3從410.s,用來初始化處理器 ifeq ($(CONFIG_ARCH_S3C2410),y) OBJS+= head-s3c2410.o endif,00:15,Linux嵌入式操作系統(tǒng) 文全剛,47/58,Arch/arm/kernel,
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國(guó)汽車起動(dòng)/充電/電焊多用機(jī)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)基因診斷試劑盒數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)五聯(lián)單控開關(guān)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025年度高端礦泉水品牌戰(zhàn)略合作供貨協(xié)議合同4篇
- 二零二五版智能倉儲(chǔ)物流系統(tǒng)合同范本4篇
- 2025年出租車司機(jī)職業(yè)發(fā)展與教育培訓(xùn)合同3篇
- 2025年度住宅裝修環(huán)保材料采購(gòu)與施工合同
- 2025年度個(gè)人醫(yī)療借款擔(dān)保合同模板2篇
- 二零二五年度文化交流慈善捐贈(zèng)合作協(xié)議樣本4篇
- 2025年度彩鋼板房拆除與建筑廢棄物資源化利用與環(huán)保評(píng)估協(xié)議3篇
- 廣東省茂名市電白區(qū)2024-2025學(xué)年七年級(jí)上學(xué)期期末質(zhì)量監(jiān)測(cè)生物學(xué)試卷(含答案)
- 2024版?zhèn)€人私有房屋購(gòu)買合同
- 2024爆炸物運(yùn)輸安全保障協(xié)議版B版
- 2025年度軍人軍事秘密保護(hù)保密協(xié)議與信息安全風(fēng)險(xiǎn)評(píng)估合同3篇
- 《食品與食品》課件
- 讀書分享會(huì)《白夜行》
- 光伏工程施工組織設(shè)計(jì)
- DB4101-T 121-2024 類家庭社會(huì)工作服務(wù)規(guī)范
- 化學(xué)纖維的鑒別與測(cè)試方法考核試卷
- 2024-2025學(xué)年全國(guó)中學(xué)生天文知識(shí)競(jìng)賽考試題庫(含答案)
- 自動(dòng)駕駛汽車道路交通安全性探討研究論文
評(píng)論
0/150
提交評(píng)論