版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一篇
实验准备——了解Linux
一.搭建环境选择合适的Linux版本利用VMware学习LinuxLinux的安装及分区
1.选择合适的Linux版本优点缺点高度创新;安全功能突出;大量支持包;严格遵守自由软件条例向企业应用倾斜,桌面实用性稍差稳定可靠;免费下载和使用;安全更新发布及时缺乏最新的Linux技术非常稳定;卓越的质量控制;软件包多;支持最多的处理器架构保守;发布周期较长固定的发布周期和支持期限;易于初学者学习;丰富的文档不兼容Debian优秀的软件管理基础设施,高度的可定制性,完整的使用手册,一流的在线文档管理编译耗时多,安装缓慢,不太稳定2.利用VMware学习Linux
利用虚拟机技术、在虚拟环境下进行实验是Linux初学者的首选放心大胆进行各种Linux练习,无需担心操作不当导致宿主计算机崩溃举一反三,安装不同的操作系统,删除一个文件夹即可完成操作系统卸载组建虚拟的局域网,不必购买网络设备,轻松学习和实验用VMware构建Linux系统构建虚拟机安装操作系统安装VMwareTools
3.Linux的安装及分区Linux文件系统是一棵巨大的树结构,最顶部是“/”,所有文件夹、文件和驱动盘等都是它的分支
四种分区方式删除硬盘所有分区,自动建立Linux默认分区表删除所选Linux分区,自动建立Linux默认分区表使用硬盘上所剩余的自由空间自动建立Linux分区表自定义分区
二.初次接触登录、使用和关闭Linux使用Linux的图形界面执行Linux的命令1.登录、使用和关闭LinuxLinux:多用户、多任务操作系统Linux登录:‘#’:超级用户‘$’:普通用户Linux使用:字符界面:占用系统资源少、操作直接、效率高图形化用户界面:简便、易用、直观Linux关闭:超级用户执行2.使用Linux的图形界面KDE桌面GNOME桌面3.执行Linux的命令命令类型功能内置命令为提高执行效率,部分最常用命令的解释器构筑于Shell内部实用程序Linux程序存放在/bin、/sbin目录下Linux自带的程序应用程序存放在/usr/bin、/usr/sbin等目录下的应用程序Shell脚本用Shell语言编写的脚本程序用户程序用户编写的其他可执行程序Linux常用ShellBourneShell(sh)CShell(csh)KornShell(ksh)
三.使用文件
了解目录结构认识文件操作文件
1.了解目录结构
系统管理员和普通用户使用的命令Linux内核和系统启动文件Linux的所有设备文件,如/dev/hda代表第一个物理IDE硬盘系统管理所需的配置文件和子目录用户的主户目录命令、程序库、文档和其他文件/etc目录下常用的文件或子目录
目录/文件名描述/etc/rc.d开启Linux系统服务的scripts目录/etc/hosts本地域名解析文件/etc/sysconfig/networkIP、掩码、网关、主机名配置等/etc/fstab开机自动挂载系统,所有分区开机都会自动挂载/etc/inittab设定系统启动级别,并加载相关的启动配置文件/etc/init.d存放系统启动脚本/etc/profile全局系统环境变量/etc/mtab当前安装的文件系统列表。由scripts初始化,由mount命令自动更新/etc/passwd用户数据库,存放用户名、用户目录、口令和用户其他信息等/etc/X11存放X-Windows相关的配置文件Linux内核源码目录结构
2.认识文件
普通文件无结构的有序字节序列,由应用程序自己组织和解释文件内容目录文件特殊文件,由成对的“I节点号/文件名”构成
设备文件字符设备文件和块设备文件,分别对应字符设备和块设备两种设备驱动器
符号链接文件指向同一索引节点的目录条目套接字文件用于网络数据,属性为‘s’3.操作文件
文件管理命令文件基本操作文件比较、搜索与合并文件压缩与打包四.动手写程序
编辑文档编译C程序认识Shell图形界面编程
1.编辑文档屏幕编辑程序vi:Linux中最常用的文本编辑器命令模式任何输入都当作命令来解释,不会显示在屏幕上
编辑模式屏幕底部显示“INSERT”或“REPLACE”字样,输入的字符都当作文件内容显示在屏幕上
末行模式屏幕底部显示“:”符号作为提示符,等待用户输入相关命令
2.编译C程序
Linux最常用的编译器:GCC支持不同的目标体系结构运行于不同的操作系统支持多种语言GCC的编译过程预处理编译汇编链接
后缀约定规则.cC语言源代码文件.a由目标文件构成的档案库文件.C.cc.cxxC++源代码文件.h程序包含的头文件.i已经预处理过的C源代码文件.ii已经预处理过的C++源代码文件.mObjective-C源代码文件.o编译后的目标文件.s汇编语言源代码文件.S经过预编译的汇编语言源代码文件3.认识Shell
系统用户界面,接受用户命令并把它送入内核执行命令解释器,解释用户命令并把它们送入内核执行允许用户编写由Shell命令组成的程序
图形界面Shell(GUIShell)XWindowManager、GNOME、KDE等命令行式Shell(CLIShell)
BourneShell、BourneAgainShell、CShell和KShell等4.图形界面编程
Curses:Linux终端图形库独立于终端控制字符屏幕,可在纯文本系统、xterm和其它窗口化控制台会话中运行GTK:基于C语言的通用图形库跨多平台的图形工具包Qt:基于C++的图形用户界面开发库跨平台的C++图形用户界面开发库,支持Linux、Unix以及Windows五.管理服务器
监控系统配置网络确保安全1.监控系统
提供能用于取得相关信息和系统活动的度量指标,找出系统运行的性能瓶颈及可能原因free:显示系统中所有内存信息iostat:显示存储子系统详细信息,用于监控磁盘I/O情况mpstat:报告CPU的一些统计信息pmap:报告进程的内存使用情况,判断哪个进程因占用过多内存导致内存瓶颈ps和pstree:列表正在运行的所有进程strace:截取和记录系统进程调用,以及进程收到的信号top:显示系统当前的进程和其它状态uptime:查看机器运行时间以及登录用户数,快速获知服务器的负荷情况vmstat:监控虚拟内存,提供关于进程、内存、内存分页、堵塞I/O、traps和CPU活动的信息2.配置网络
网络配置文件功能描述/etc/conf.modules定义各种需要在启动时加载的模块的参数信息/etc/HOSTNAME包含系统的主机名称,包括完全的域名,如/etc/sysconfig/network-scripts/ifcfg-ethNRedHat中系统网络设备的配置文件,每个文件对应一块网卡的配置信息,如ifcfg-eth0包含第一块网卡的配置信息/etc/resolv.conf域名解析器使用的配置文件/etc/host.conf指定如何解析主机名/etc/sysconfig/network指定服务器上的网络配置信息/etc/hosts在没有域名服务器时,通过该文件解析主机名对应的IP地址3.确保安全
取消不必要的服务限制系统的出入保持最新的系统核心检查登录密码增强安全防护工具限制超级用户的权力检查日志关注可疑操作第二篇
实验进阶——深入Linux
一.系统初始化开机启动流程开机服务与守护进程自动执行程序1.开机启动流程GRUB:
多重启动管理器,通过连锁载入引导撞在程序来载入多种操作系统。加载BIOS读取MBRBOOTLOADER加载内核启动级别服务类型0关机1单用户模式2无网络支持的多用户模式3有网络支持的多用户模式4保留,未使用5有网络支持、有X-Window支持的多用户模式6重新引导系统,即重启Linux的启动级别2.开机服务与守护进程
开机时启动系统服务,服务程序由运行在后台的守护进程执行守护进程在系统引导时启动,在系统关闭时终止,独立于控制终端守护进程的分类独立启动模式(Stand-alone):C/S访问模式。启动后常驻内存,以实现快速响应,但资源占用较多超级守护模式(xinetd):同时监听多个端口,根据请求唤醒不同的服务进程处理。Xinetd一个进程占用资源,可以设置服务的管理权限,增加管理机制3.自动执行程序开机启动时自动运行程序登录时自动运行程序退出系统时自动执行程序定期自动运行程序定时自动运行程序一次二.系统调用系统调用的实现过程系统调用的使用方法系统调用的添加步骤1.系统调用的实现过程Linux分为用户空间和内核空间两个层次Linux系统调用机制Linux内核中设置了一组用于实现各种系统功能的子程序,称为系统调用用户通过系统调用命令在自己的应用程序中调用它们2.系统调用的使用方法系统调用与普通函数调用的区别系统调用:
核心态
操作系统核心提供普通的函数调用
用户态
函数库或用户自己提供3.系统调用的添加步骤编写系统调用服务例程 arch/x86/kernel/sys.c添加系统调用号 arch/x86/include/asm/unistd.h修改系统调用表 arch/x86/kernel/syscall_table.s重新编译内核并测试三.进程/线程管理进程、进程组线程及线程分类多进程/线程编程1.进程/进程组Linux系统进程类型交互进程:Shell启动的进程,可在前台或后台运行批处理进程:进程序列,不与特定终端关联守护进程:后台服务进程,独立于控制终端,常在系统引导装入时启动,在系统关闭时终止进程、进程组与会话的关系2.线程及线程分类
从Linux2.6开始,Linuxkernel才有真正的threadLinux2.6线程库叫NPTL(NativePOSIXThreadLibrary),采用1:1的线程模型,创建线程的效率非常高IBM的线程库叫NGPT(NextGenerationPOSIXThreads),采用M:N模型,上下文切换很快,但增加了复杂性,会出现优先级反转等问题Linux线程分为核心态线程和用户态线程核心态线程没有独立的地址空间,只在内核空间运行
用户态线程在用户空间中实现核心态线程更利于并发使用多处理器的资源
用户态线程更多考虑上下文切换开销3.多进程/线程编程——进程fork()产生当前进程的拷贝3.多进程/线程编程——进程进程标识符管理intgetpid(); 取得当前进程的标识符(进程ID)。intgetppid(); 取得当前进程的父进程ID。intgetpgrp(); 取得当前进程的进程组标识符。intgetpgid(intpid);修改当前进程的进程组标识符为进程ID函数族exec():加载新的进程映像intexecl(); intexeclp(); intexecle();intexecv(); intexecve(); intexecvp();wait/waitpid函数pit_twait();pid_waitpid();3.多进程/线程编程——线程intpthread_create();
创建线程就是确定调用该线程函数的入口点,相当于fork函数。intpthread_join();
等待tid线程终止,相当于waitpid函数。pthread_tpthread_self();
取得自己的线程ID,相当于getpid函数。intpthread_detach();
将指定的线程脱离,脱离的线程类似于守护进程。voidpthread_exit();
终止线程的执行。四.进程间通信
管道通信消息队列共享内存
信号量套接字
1.管道通信无名管道用于具有亲缘关系进程间的通信管道是半双工的,数据只能单向流动(双方通信需建立两个管道)管道只能用于父子进程或兄弟进程之间管道对于管道两端的进程而言就是一个文件,并单独构成一种文件系统,存在于内存中写管道的内容添加在管道缓冲区的末尾,读管道则从缓冲区头部读出有名管道在普通管道具备功能基础上,通过给管道命名的方法变成管道文件,允许无亲缘关系进程间通过访问管道文件进行通信2.消息队列
也叫报文队列,是消息的链接表有两种类型的消息队列:POSIX消息队列和系统V消息队列运行于同一台机器上的进程间通信,与管道类似可以用流管道或套接口方式取代系统V消息队列intmsgget(); 创建一个新队列或打开一个存在的队列intmsgsnd(); 把消息添加到msgid代表的消息队列的末尾,消息的大小由msgsz指定。intmsgrcv(); 从msgid代表的消息队列中取走一个消息。intmsgctl(); 在由msgid标识的消息队列上执行cmd指定的操作。3.共享内存将同一块内存区映射到共享它的不同进程的地址空间中效率高:进程可以直接读写内存,不需任何数据拷贝,避免了内核空间与用户空间的切换内核未对共享内存的访问提供同步机制,需要依靠某种同步机制来同步对共享进程的访问POSIX共享内存通过用户空间挂载的tmpfs文件系统实现,持久化的API:shm_open()、mmap()、munmap()、shm_unlink()等SystemV共享内存由内核本身的tmpfs实现,非持久化的API:shmget()、shmat()、shmdt()、shmctl()等4.信号量
也称信号灯,用来协调不同进程间的数据对象提供对进程间共享资源访问控制的手段,用来保护共享资源还可用于进程间及同一进程不同线程间的进程同步两种类型二值信号灯:取值只能为0或1,类似于互斥锁计算信号灯:取值可以为任意非负值(受内核本身约束)POSIX信号量和SystemV信号量(与共享内存的两种方式类似)5.套接字
也称套接字,用于不同机器之间的进程间通信采用客户/服务器模式,可以在本地单机上运行,也可以在网络中运行以文件的形式实现(属于sockfs特殊文件系统)套接字类型流式套接字:面向连接、可靠的全双工数据传输服务数据报式套接字:无连接服务原始套接字:允许对较低层协议进行直接访问五.内存管理
内存空间管理内存分页机制内存操作函数1.内存空间管理
Linux采用虚拟内存管理技术32位系统中虚拟地址空间的划分进程需要内存时获得的是虚拟的内存区域,只有当进程真正访问新获取的虚拟地址时,才会映射到实际的物理内存上2.内存分页机制
物理内存管理按地址分为三类:DMA使用、内核使用、高端内存物理内存分配函数:_alloc_pages()、_get_free_pages()、kmalloc()页表管理三级分页机制虚拟内存管理分为用户空间(0~3GB)和内核空间(3~4GB)0~896MB的空间一对一映射,剩下的动态映射3.内核操作函数
内核态操作函数kmalloc()/kfree()、vmalloc()/vfree()alloc_pages()/free_pages()、_get_free_pages()/__free_pages()copy_from_user()/copy_to_user()……用户态操作函数alloc()、calloc()、malloc()和relloc()mmap()/munmap()……六.设备管理
设备管理策略设备驱动原理编写设备驱动程序1.设备管理策略
早期:普通的带特殊属性的文件,由mknod命令创建,挂载于/dev下,由普通的文件系统统一管理浪费空间,管理混乱,设备检测存在额外开销Linux2.4:内核中引入了Devfs,所有需要的设备节点都将由内核自动创建同一个物理设备可能会被映射成不同的设备文件、主/辅设备号不足、额外的内核内存开销Linux2.6:提供了统一的内核设备模型,以支持智能电源管理、热插拔以及plugandplay的要求2.设备驱动原理
字符设备映射为chrdevs向量表中的device_struct大部分字符设备是数据通道,只能顺序存取直接对设备进行读写操作块设备填充blk_dev向量表中的blk_dev_struct利用系统内存作为缓冲区在设备与内存间传送数据网络设备类似于一个已挂载的块设备基于BSDUnix的Socket机制3.编写设备驱动程序
设备驱动程序的组成设备的打开和释放:open()、release()设备的读写:read()、write()设备的控制:ioctl()设备的中断和轮询设备驱动的加载重编译、直接内核加载模块方式动态加载七.文件系统
文件系统层次结构文件系统格式虚拟文件系统proc
1.文件层次结构
Linux文件系统是一个树形结构,一切都从根目录(“/”)开始Linux以“加载”的方式把所有分区都放置在“根”下指定的目录里Linux常用的文件系统ext、ext2、ext3、JFS、XFS、LinuxSwap、VFAT2.文件系统格式
EXT2文件系统GNU/Linux系统中标准的文件系统文件存取性能极好,对中小型文件尤为突出文件状态可能不一致,非日志文件系统EXT3文件系统日志式文件系统回溯追踪功能,安全性较高文件处理速度较慢EXT4文件系统支持1EB的文件系统性能、伸缩性和可靠性方面有改进LinuxSWAP专用于交换分区的swap文件系统通常情况下,swap的空间大小应是物理主存的2-2.5倍3.虚拟文件系统proc
常驻虚拟内存,维持操作系统动态数据的伪文件系统可以在Linux内核空间和用户空间之间进行通信进程可用文件系统的方式、通过对虚拟文件的读写实现与内核内部数据结构的交互包含的内容系统/内核信息运行中的进程信息通过/proc与内核交互(慎重使用)八.内核编程
内核体系结构内核镜像与加载动态模块加载1.内核体系结构Linux内核体系结构Linux内核子系统及其关系2.内核镜像与加载
镜像文件的类型非压缩版本Vmlinux:可引导的、可压缩de内核镜像Image:经objcopy处理的、只包含二进制数据的内核代码压缩版本zImage:由vmlinux加上解压代码经gzip压缩而成bzImage:与zImage类似,但采用了不同的压缩算法,压缩率更高uImage:uboot专用的镜像文件,在zImage之前加了头信息,说明镜像文件的属性镜像的加载设置硬件和基本环境,清除BSS解压内核启动swapper进程,一系列初始化启动空任务,调度器接管控制权3.动态模块加载linux是一体化内核系统,向内核添加或删除某些功能十分困难引入模块机制在内核中动态添加或删除模块将模块从内核中独立出来,根据需要随时装入和卸载,使内核大小和通信量达到最小内核模块动态加载用insmod命令将模块手工插入到内核通过kerneld内核守护进程自动装入所需模块第三篇
实验开始——精通Linux
一.Linux的基本使用与管理实验一Linux的安装及配置实验二Linux基本环境与使用实验三Linux文件处理实验四vi编辑器的使用实验一.Linux的安装与配置实验目的熟悉Linux操作系统的基本安装和配置了解Linux操作系统的启动过程和桌面环境掌握VMWare虚拟机的使用实验一.Linux的安装与配置实验内容从网上下载VMware软件和两个不同的Linux发行版镜像文件安装VMWare虚拟机软件在VMWare中利用第一个镜像文件完成第一个Linux的安装,期间完成网络信息、用户信息、文件系统及硬盘分区等的配置在VMWare中利用第二个镜像文件完成第二个Linux的安装,并通过LILO或GRUB解决两个操作系统选择启动的问题实验二.Linux基本环境与使用实验目的了解Linux的命令格式,掌握Linux中的操作命令学会使用各种Shell命令操作Linux,对Linux有一个感性认识学会如何得到帮助信息实验二.Linux基本环境与使用实验内容使用man命令获得ls、uname、date、cal、mkdir、cp等Linux命令的帮助手册,了解这些命令的具体使用方法。同时,也可以通过执行“命令名--help”来显示该命令的帮助信息,如“ls--help”,试用这些命令。通过uname命令的执行,查看并给出相关系统信息:操作系统的名称、系统域名、系统CPU名称等。用date命令显示当前的时间,用cal命令显示2008、2013年的日历,给出执行的命令和显示的结果。在主目录下创建一个名为myetc的子目录,并将/etc目录下与网络相关的文件和子目录拷贝到该目录下,并将文件的执行权限设置为可执行。实验三.Linux文件处理实验目的熟悉Linux文件系统的文件和目录结构,掌握Linux文件系统的基本特征掌握命令行方式下文件操作命令和程序中文件操作函数的使用方法掌握Linux文件系统的加载和卸载方法实验三.Linux文件处理实验内容在用户主目录下创建如右图所示的目录树,列出完成该过程的所有命令。
实验三.Linux文件处理实验内容在/usr/bin目录下有多少个普通文件、目录文件和链接文件?如何得到这些信息?显示用户主目录下的所有隐藏文件的文件名。列出执行的命令及输出结果。实现对光盘、移动硬盘的加载和访问,然后卸载设备。让系统开机时自动加载Windows文件系统,实现对Windows数据的访问和共享。实验四.vi编辑器的使用实验目的了解用vi编辑器编辑文本文件的基本使用方法熟练运用vi编辑器进行快速文档编辑实验四.vi编辑器的使用实验内容在当前用户目录下建立vitest子目录,将/etc/inittab文件拷贝到vitest子目录中;用vi编辑器打开该文件,执行下述操作,并详细说明操作过程及方法:
A.删除第5,15和25行指令;
B.将文本中所有的“etc”字符串替换成“config”;
C.复制第11~20行的内容,并且贴到文件最后一行后;
D.将每行开头的第一个字符‘#’删除;
E.删除包含有字符串“conf”的那几行;
F.在第一行新增一行,输入你的姓名和学号; G.将文件另存为new-inittab.conf。二.操作系统原理实践实验一系统初始化引导实验二系统用户界面实验三增加系统调用实验四进程控制实验五进程间通信实验六虚拟内存管理实验七添加设备驱动实验八设计文件系统实验一.系统初始引导实验目的理解和掌握Linux系统管理命令和管理文件了解Linux系统的引导启动过程掌握Linux开机服务启动流程与方法实验一.系统初始引导实验内容分析Linux初始化程序执行脚本文件/etc/inittab,了解该程序的执行流程,画出流程图。分析Linux系统中/etc/rc.d目录下的系统初始化启动命令和init.d目录下的启动守护进程的命令,说明在该启动过程中系统执行了哪些操作。编制一个Shell程序,并让该程序在用户登录时自动执行,显示提示信息“Welcome!Haveaniceday!”,并在命令提示符中包含系统名称、内核版本、当前目录、当前用户名等基本信息。编写一个daemon进程,该进程每隔10秒执行ps命令,并将当前时间和命令的输出写至文件ps.log尾部。实验二.系统用户界面实验目的理解、使用和掌握文件系统调用与文件标准子例程的区别和编程方法掌握Linux下终端图形编程方法,能编写基于文本的图形界面掌握Linux下图形界面编程工具,能用GTK或QT进行图形界面的开发实验二.系统用户界面实验内容分别利用文件的系统调用read、write和文件的库函数fread、fwrite实现文件复制功能,比较在每次读取一个字节和1024字节时两个程序的执行效率,并分析原因。编写一个C程序,使用Linux下基于文本的终端图形编程库curses,分窗口实时监测(即周期性刷新显示)CPU、内存和网络的详细使用情况和它们的利用率。通过读取proc文件系统,获取系统各种信息(如主机名、系统启动时间、运行时间、版本号、所有进程信息、CPU使用率、内存使用率等),并以比较容易理解的方式显示出来。要求参照Windows的任务管理器,利用GTK/QT实现图形界面编程。实验三.增加系统调用实验目的理解Linux系统处理系统调用的流程掌握增加与调用系统调用的方法理解Linux的内核模块和编译方法实验三.增加系统调用实验内容向现有Linux内核加入一个新的系统调用,实现一个新的内核函数mycall(),此函数通过引用参数的调用返回当前系统时间,功能上基本与gettimeofday()相同。用编译内核的方法,将其加入内核源码并编译、使用新的内核。编写测试程序测试该系统调用。实验四.进程控制实验目的加深对进程概念的理解,进一步认识并发执行的实质掌握Linux操作系统的进程创建和终止操作利用Linux操作系统提供的信号量工具实现进程间的同步掌握对共享内存的相关操作实验四.进程控制实验内容编写一段源程序,使系统调用fork()创建两个子进程,当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”;子进程分别显示字符“b”和字符“c”。试观察纪录屏幕上的显示结果,并分析原因。
实验四.进程控制实验内容①编写一段程序,实现进程的软中断通信。要求:使用系统调用fork()创建两个子进程,再用系统调用signal()让父进程捕捉键盘上来的中断信号(即按DEL键);当捕捉到中断信号后,父进程用系统调用Kill()向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止:
ChildProcessllisKilledbyParent! ChildProcessl2isKilledbyParent!
父进程等待两个子进程终止后,输出如下的信息后终止
ParentProcessisKilled!②在上面的程序中增加语句signal(SIGNAL,SIG-IGN)和signal(SIGQUIT,SIG-IGN),观察执行结果,并分析原因。实验四.进程控制实验内容求100000个浮点数(精确小数点右4位)的平均值(和、最大值、最小值)。要求: ①随机生成100000个浮点数(父进程); ②创建4个子进程,分别求25000个浮点数之和; ③父进程完成100000个浮点数之和并打印结果; ④统计顺序计算的时间和多
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初改保安考试试题及答案
- 2026三年级数学下册 小数价值引领
- 2026三年级数学下册 位置与方向全面发展
- 2026二年级数学下册 数学广角专项
- 综合素养考试题库及答案
- 2026二年级数学 北师大版儿童乐园情境体验
- 培训学校奖惩制度制度
- 小学数学二年级奖惩制度
- 九小场所消防安全制度
- 电力安全奖惩制度范本
- 初中语文中考主旨探究与表达题知识清单
- (新版)ISO37301-2021合规管理体系全套管理手册及程序文件(可编辑!)
- 《TCSUS69-2024智慧水务技术标准》
- GB/T 24736.4-2009工艺装备设计管理导则第4部分:工艺装备验证规则
- GB/T 1936.1-2009木材抗弯强度试验方法
- 中国图书馆分类法简表
- 统筹方法平话及补充(全)华罗庚
- 关节脱位患者的护理-关节脱位患者的护理(外科护理ppt)
- 经皮肾镜碎石术并发脓毒血症的风险与防治
- 商务接待礼仪课件
- MetabolicPathways生物化学代谢清晰版全图
评论
0/150
提交评论