版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Linux启动信息解析目录Linux启动信息解析1目录21.项目需求分析31.1项目背景:31.2时间:31.3项目要求分析:32Linux启动过程42.1 Linux下各个目录的作用42.2 Linux启动过程42.2.1 Linux的引导过程52.2.2 运行级别(run level)52.2.3 /etc/rc.d/与/etc/rc.d/init.d的关系53. /init/main.c中init()函数74. 启动信息101.项目需求分析1.1项目背景:在学习操作系统中,操作系统的如何启动是一个难点,本文基于Linux开源操作系统,分析了从BIOS加载BOOTLOAD,操作系统接管CP
2、U后,init()函数所做的事情以及如何初始化系统的各种服务以及SHELL。1.2时间:开始时间: 2010-7-25 结束时间: 2010-7-25 1.3项目要求分析:1) 介绍Linux启动所需的目录。2) Linux启动过程。3) /etc/rc.d/与/etc/rc.d/init.d的关系。4) 分析init/main.c代码中init()函数。2Linux启动过程2.1 Linux启动所需的目录init.d/ :各种服务器和程序的二进制文件存放目录。rcx.d/: 各个启动级别的执行程序连接目录。里头的东西都是指向init.d/的一些软连接。还有三个脚本:rc.sysinit, r
3、c, rc.local。/etc/rc.d/init.d/目录下的脚本就类似与windows 中的注册表,在系统启动的时候某些指定脚本将被执行。在Redhat中,/etc/rc.d/rc.sysinit主要做在各个运行模式中相同的初始化工作,包括:i. 调入keymap以及系统字体ii. 启动swappingiii. 设置主机名iv. 设置NIS域名v. 检查(fsck)并mount文件系统vi. 打开quotavii. 装载声卡模块viii. 设置系统时钟ix. 等等。2.2 Linux启动过程redhat的启动方式和执行次序是:i. 加载内核ii. 执行init程序iii. /etc/rc
4、.d/rc.sysinit # 由init执行的第一个脚本iv. /etc/rc.d/rc $RUNLEVEL # $RUNLEVEL为缺省的运行模式v. /etc/rc.d/rc.localvi. /sbin/mingetty # 等待用户登录init在等待/etc/rc.d/rc执行完毕之后(因为在/etc/inittab中/etc/rc.d/rc的action是wait),将在指定的各个虚拟终端上运行/sbin/mingetty,等待用户的登录。至此,Linux的启动结束。 2.2.1 Linux的引导过程 系统启动之后,在进入 init.d之前,我们先来看看系统都做了什么工作.我们从比
5、较高的角度去看开始引导的整个过程,比较清晰明了。系统加电之后,首先进行的硬件自检,然后是bootloader对系统的初始化,加载内核。内核被加载到内存中之后,就开始执行了。一旦内核启动运行,对硬件的检测就会决定需要对哪些设备驱动程序进行初始化。从这里开始,内核就能够挂装根文件系统(这个过程类似于Windows识别并存取C盘的过程)。内核挂装了根文件系统,并已初始化所有的设备驱动程序和数据结构等之后,就通过启动一个叫 init的用户级程序,完成引导进程。2.2.2 运行级别(run level)init进程是系统启动之后的第一个用户进程,所以它的pid(进程编号)始终为1。init进程上来首先做
6、的事是去读取/etc/目录下inittab 文件中initdefault id值,这个值称为运行级别(run-level)。它决定了系统启动之后运行于什么级别。运行级别决定了系统启动的绝大部分行为和目的。这个级别从0到 6 ,具有不同的功能。不同的运行级定义如下:# 0 - 停机(千万别把initdefault设置为0,否则系统永远无法启动)# 1 - 单用户模式# 2 - 多用户,没有 NFS# 3 - 完全多用户模式(标准的运行级)# 4 系统保留的# 5 - X11 (x window)# 6 - 重新启动 (千万不要把initdefault 设置为6,否则将一直在重启)2.2.3 /e
7、tc/rc.d/与/etc/rc.d/init.d的关系写到这里,应该差不多要进入init.d了,可是我觉得单写/etc/rc.d/init.d的话不一定能说得清楚明白,就拿它跟/etc/rc.d这个它上一级的目录一起来讨论,可能比较合适一些,因为他们之间有着千丝万缕的关系。在这里先解释一下init.d里面放的都是什么东西。这个目录存放的是一些脚本,一般是linux以rpm包安装时设定的一些服务的启动脚本。系统在安装时装了好多rpm包,这里面就有很多对应的脚本。执行这些脚本可以用来启动,停止,重启这些服务。前面说到,/etc/rc.d/init.d这个目录下的脚本就类似与windows中的注册
8、表,在系统启动的时候执行。程序运行到这里(init进程读取了运行级别),相信从命名的角度大家也能猜到该运行/etc/rc.d/init.d里面的脚本了,不然它为什么也叫init(.d)呢是吧。没错,是该运行init.d里的脚本了,但是并不是直接运行,而是有选择的因为系统并不需要启动所有的服务。那么,系统是如何选择哪些需要启动哪些不要呢?这时刚才说的运行级别就起作用了。在决定了系统启动的run level之后,/etc/rc.d/rc这个脚本先执行。在RH9和FC7的源码中它都是一上来就check_runlevel()(虽然实现的代码不一样,也大同小异),知道了运行级别之后,对于每一个运行级别,
9、在rc.d下都有一个子目录分别是rc0.d,rc1.d . rc6.d。每个目录下都是到init.d目录的一部分脚本一些链接。每个级别要执行哪些服务就在相对应的目录下,比如级别5要启动的服务就都放在 rc5.d下,但是放在这个rc5.d下的都是一些链接文件,链接到init.d中相对应的文件,真正运行的是init.d里的脚本。到这里,估计大家可能都比较清楚了,我开始也以为是这样的。可是后来我仔细看过和比较这些链接文件和init.d里真正被执行的脚本的文件名之后,一直有几个问题没弄明白。借着写这个文章的机会,我做了一些功课,总算是大概解开了那些疑惑。1、这些链接文件前面为什么会带一个Kxx或者Sx
10、x呢?是这样的,带K的表示停止(Kill)一个服务,S表示开启(Start)的意思,凡是以Kxx开头的,都以stop为参数来调用;凡是以Sxx开头的,都以start为参数来调用。调用的顺序按xx从小到大来执行。例如,假设缺省的运行模式是3,/etc/rc.d/rc就会按上述方式调用/etc/rc.d/rc3.d/下的脚本。2、K和S后面带的数字呢?干什么用的这个我开始的时候还以为是排列起来好看或者数数用呢。后来发现不是的。它的作用是用来排序,就是决定这些脚本执行的顺序,数值小的先执行,数值大的后执行。很多时候这些执行顺序是很重要的,比如要启动Apache服务,就必须先配置网络接口,不然一个没有
11、IP的机子来启动http服务那岂不是很搞笑。3、无意中我发现同一个服务带S的和带K的链接到init.d之后是同一个脚本。我就纳闷了,为什么会是执行同一个脚本呢?这个时候真是S和K的妙用了,原来S和K并不止是用来看起来分的清楚而已。S给和K还分别给init.d下面的脚本传递了start和stop的参数。哦,是这样的(焕然大悟的样子,呵呵)!这时我才想起来原来曾经无数用过的/etc/rc.d/init.d/network restart命令。原来传S时相当于执行了/etc/rc.d/init.d/xxx start这条命令,当然K就相当于/etc/rc.d/init.d/xxx stop了.3.
12、/init/main.c中init()函数init()函数的功能可分为4个部分:安装根文件系统;显示系统信息;运行系统初始资源配置文件rc中的命令;执行用户登录shell程序。代码首先调用系统调用setup(),用来收集硬盘设备分区表信息并安装根文件系统。在安装根文件系统之前,系统会先判断是否需要先建立虚拟盘若编译内核时设置了虚拟盘的人小,并在前面内核初始化过程中已经开辟了一块内存用作虛拟盘,则内核就会首先尝试把根文件系统加载到内存的虚拟盘区中然后init()打开一个终端设备tty0,并复制其文件描述符以产生标准输入stdin、标准输出stdout和错误输出stderr设备。内核随后利用这些描
13、述符在终端上显示一些系统信息,例如高速缓冲区中缓冲块总数、主内存区空闲内存总字节数等。接着init()又新建了一个进程(进程2),并在其中为建立用户交互使用环境而执行一些初始配置操作,即在用户可以使用shell命令行环境之前,内核调用/bin/sh程序运行了配置文件/etc/rc中设置的命令。rc文件的作用与DOS系统根目录上的AUTOEXEC.BAT文件类似。这段代码首先通过关闭文件描述符0,并立刻打开文件/etc/rc,从而把标准输入stdin定向到/etc/rc文件上。这样,所有的标准输入数据都将从该文件中读取。然后内核以非交互形式执行/bin/sh,从而实现执行/etc/rc文件中的命
14、令。当该文件中的命令执行完毕后,/bin/sh就会立刻退出。因此进程2也就随之结束。init()函数的最后一部份用于在新建进程中为用户建立一个新的会话,并运行用户登录shell程序/bin.sh在系统执行进程2中的程序时,父进程(init进程)一直等待着它的结束。随着进程2的退出,父进程就进入到一个无限循环中。在该循环中,父进程会再次生成一个新进程,然后在该进程中创建一个新的会话。并以登录shell方式再次执行程序/bin/sh,以创建用户交互shell环境。然后父进程继续等待该于进程。登录shell虽然与前而的非交互式shell是同一个程序/bin/sh,但是所使用的命令行参数(argv)不
15、同。登录shell的第0个命令行参数的第1个字符一定是一个减号-。这个特定的标志会在/bin/sh执行时通知它这不是一次普通的运行,而是作为登录shell运行/bin/sh的。从这时开始,用户就可以正常使用Linux命令行环境了,而父进程随之又进入等待状态此后若用户在命令行上执行了exit或logout命令,那么在显示一条当前登录shell退出的信息后,系统就会在这个无限循环中再次重复以上创建登录shell进程的过程。以下是init/main.c中的关于init()函数的源代码:void init(void)int pid,i;setup(void *) &drive_info);sprint
16、f(term, TERM=con%dx%d, ORIG_VIDEO_COLS, ORIG_VIDEO_LINES);(void) open(/dev/tty1,O_RDWR,0);(void) dup(0);(void) dup(0);execve(/etc/init,argv_init,envp_init);execve(/bin/init,argv_init,envp_init);execve(/sbin/init,argv_init,envp_init);/* if this fails, fall through to original stuff */if (!(pid=fork()
17、 close(0);if (open(/etc/rc,O_RDONLY,0)_exit(1);execve(/bin/sh,argv_rc,envp_rc);_exit(2);if (pid0)while (pid != wait(&i)/* nothing */;while (1) if (pid = fork() (reserved) 0. last_pfn = 0x40000 max_arch_pfn = 0x 0. MTRR default type: uncachable 0. MTRR fixed ranges enabled: 0. 00000-9FFFF write-back
18、0. A0000-BFFFF uncachable 0. C0000-CBFFF write-protect 0. CC000-EFFFF uncachable 0. F0000-FFFFF write-protect 0. MTRR variable ranges enabled: 0. 0 base mask 00C write-back 0. 1 disabled 0. 2 disabled 0. 3 disabled 0. 4 disabled 0. 5 disabled 0. 6 disabled 0. 7 disabled 0. PAT not supported by CPU.
19、0. - cut here - 0. WARNING: at /build/buildd/linux-2.6.32/arch/x86/kernel/cpu/mtrr/generic.c:467 generic_get_mtrr+0xeb/0x100() 0. Hardware name: VMware Virtual Platform 0. mtrr: your BIOS has set up an incorrect mask, fixing it up. 0. Modules linked in: 0. Pid: 0, comm: swapper Not tainted 2.6.32-22
20、-generic #36-Ubuntu 0. Call Trace: 0. warn_slowpath_common+0x72/0xa0 0. ? generic_get_mtrr+0xeb/0x100 0. ? generic_get_mtrr+0xeb/0x100 0. warn_slowpath_fmt+0x2b/0x30 0. generic_get_mtrr+0xeb/0x100 0. mtrr_trim_uncached_memory+0x76/0x32e 0. ? native_write_cr4+0x8/0x10 0. ? get_mtrr_state+0x102/0x10a
21、0. ? mtrr_bp_init+0x253/0x271 0. setup_arch+0x41e/0x69f 0. ? printk+0x1d/0x23 0. ? default_spin_lock_flags+0x9/0x10 0. start_kernel+0xc3/0x357 0. i386_start_kernel+0xaa/0xb1 0. - end trace a7919e7f17c0a725 - 0. Scanning 0 areas for low memory corruption 0. modified physical RAM map: 0. modified: 000
22、00 - 10000 (reserved) 0. modified: 10000 - 9f800 (usable) 0. modified: 9f800 - a0000 (reserved) 0. modified: ca000 - cc000 (reserved) 0. modified: dc000 - e4000 (reserved) 0. modified: e8000 - 00000 (reserved) 0. modified: 00000 - fef0000 (usable) 0. modified: fef0000 - feff000 (ACPI data) 0. modifi
23、ed: feff000 - ff00000 (ACPI NVS) 0. modified: ff00000 - 00000 (usable) 0. modified: e - f (reserved) 0. modified: fec00000 - fec10000 (reserved) 0. modified: fee00000 - fee01000 (reserved) 0. modified: fffe0000 - 00000 (reserved) 0. initial memory mapped : 0 - 00c00000 0. init_memory_mapping: 00000-
24、fe000 0. Using x86 segment limits to approximate NX protection 0. - page 4k 0. - page 2M 0. - 00377fe000 page 4k 0. kernel direct mapping tables up to 377fe000 10000-15000 0. RAMDISK: 2f7dc000 - 2ff73ed6 0. ACPI: RSDP 000f6940 00024 (v02 PTLTD ) 0. ACPI: XSDT 3fef081b 0004C (v01 INTEL 440BX VMW ) 0.
25、 ACPI: FACP 3fefee98 000F4 (v04 INTEL 440BX PTL 000F4240) 0. ACPI: DSDT 3fef09e1 0E4B7 (v01 PTLTD Custom MSFT ) 0. ACPI: FACS 3fefffc0 00040 0. ACPI: BOOT 3fef09b9 00028 (v01 PTLTD $SBFTBL$ LTP ) 0. ACPI: APIC 3fef095b 0005E (v01 PTLTD ? APIC LTP ) 0. ACPI: MCFG 3fef091f 0003C (v01 PTLTD $PCITBL$ LT
26、P ) 0. ACPI: SRAT 3fef089f 00080 (v02 VMWARE MEMPLUG VMW ) 0. ACPI: Local APIC address 0xfee00000 0. 136MB HIGHMEM available. 0. 887MB LOWMEM available. 0. mapped low ram: 0 - 377fe000 0. low ram: 0 - 377fe000 0. node 0 low ram: - 377fe000 0. node 0 bootmap - 00017f00 0. (9 early reservations) = boo
27、tmem - 00377fe000 0. #0 - BIOS data page = - 0. #1 - EX TRAMPOLINE = - 0. #2 - TRAMPOLINE = - 0. #3 - 00008d9e98 TEXT DATA BSS = - 00008d9e98 0. #4 002f7dc000 - 002ff73ed6 RAMDISK = 002f7dc000 - 002ff73ed6 0. #5 f800 - BIOS reserved = f800 - 0. #6 00008da000 - 00008dd1c0 BRK = 00008da000 - 00008dd1c
28、0 0. #7 - PGTABLE = - 0. #8 - BOOTMAP = - 0. found SMP MP-table at c00f69b0 f69b0 0. Zone PFN ranges: 0. DMA 0x - 0x 0. Normal 0x - 0xfe 0. HighMem 0xfe - 0x 0. Movable zone start PFN for each node 0. early_node_map3 active PFN ranges 0. 0: 0x - 0xf 0. 0: 0x - 0x0003fef0 0. 0: 0x0003ff00 - 0x 0. On
29、node 0 totalpages: 0. free_area_init_node: node 0, pgdat c, node_mem_map c 0. DMA zone: 32 pages used for memmap 0. DMA zone: 0 pages reserved 0. DMA zone: 3951 pages, LIFO batch:0 0. Normal zone: 1744 pages used for memmap 0. Normal zone: pages, LIFO batch:31 0. HighMem zone: 273 pages used for mem
30、map 0. HighMem zone: 34529 pages, LIFO batch:7 0. Using APIC driver default 0. ACPI: PM-Timer IO Port: 0x1008 0. ACPI: Local APIC address 0xfee00000 0. ACPI: LAPIC (acpi_id0x00 lapic_id0x00 enabled) 0. ACPI: LAPIC (acpi_id0x01 lapic_id0x01 enabled) 0. ACPI: LAPIC_NMI (acpi_id0x00 high edge lint0x1)
31、0. ACPI: LAPIC_NMI (acpi_id0x01 high edge lint0x1) 0. ACPI: IOAPIC (id0x02 address0xfec00000 gsi_base0) 0. IOAPIC0: apic_id 2, version 17, address 0xfec00000, GSI 0-23 0. ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 high edge) 0. ACPI: IRQ0 used by override. 0. ACPI: IRQ2 used by override. 0. ACP
32、I: IRQ9 used by override. 0. Using ACPI (MADT) for SMP configuration information 0. SMP: Allowing 2 CPUs, 0 hotplug CPUs 0. nr_irqs_gsi: 24 0. PM: Registered nosave memory: 9f000 - a0000 0. PM: Registered nosave memory: a0000 - ca000 0. PM: Registered nosave memory: ca000 - cc000 0. PM: Registered n
33、osave memory: cc000 - dc000 0. PM: Registered nosave memory: dc000 - e4000 0. PM: Registered nosave memory: e4000 - e8000 0. PM: Registered nosave memory: e8000 - 00000 0. Allocating PCI resources starting at (gap: :a) 0. Booting paravirtualized kernel on bare hardware 0. NR_CPUS:8 nr_cpumask_bits:8
34、 nr_cpu_ids:2 nr_node_ids:1 0. PERCPU: Embedded 14 pages/cpu c1c00000 s36024 r0 d21320 u 0. pcpu-alloc: s36024 r0 d21320 u alloc=1* 0. pcpu-alloc: 0 0 1 0. Built 1 zonelists in Zone order, mobility grouping on. Total pages: 0. Kernel command line: BOOT_IMAGE=/boot/vmlinuz-2.6.32-22-generic root=UUID
35、=1f9d6cfe-dee5-448e-a89c-295e30fda028 ro quiet splash 0. PID hash table entries: 4096 (order: 2, 16384 bytes) 0. Dentry cache hash table entries: (order: 7, bytes) 0. Inode-cache hash table entries: 65536 (order: 6, bytes) 0. Enabling fast FPU save and restore. done. 0. Enabling unmasked SIMD FPU ex
36、ception support. done. 0. Initializing CPU#0 0. allocated bytes of page_cgroup 0. please try cgroup_disable=memory option if you dont want memory cgroups 0. Initializing HighMem for node 0 (fe:) 0. Memory: k/k available (4673k kernel code, 30096k reserved, 2121k data, 656k init, k highmem) 0. virtua
37、l kernel memory layout: 0. fixmap : 0xfff1d000 - 0xfffff000 ( 904 kB) 0. pkmap : 0xff - 0xffc00000 (4096 kB) 0. vmalloc : 0xf7ffe000 - 0xff7fe000 ( 120 MB) 0. lowmem : 0xc - 0xf77fe000 ( 887 MB) 0. .init : 0xc07a3000 - 0xc ( 656 kB) 0. .data : 0xc - 0xc07a2e48 (2121 kB) 0. .text : 0xc - 0xc (4673 kB
38、) 0. Checking if this processor honours the WP bit even in supervisor mode.Ok. 0. SLUB: Genslabs=13, HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1 0. Hierarchical RCU implementation. 0. NR_IRQS:2304 nr_irqs:424 0. Extended CMOS year: 2000 0. Console: colour VGA+ 80x25 0. console tty0 enabled
39、0. TSC freq read from hypervisor : 1733.353 MHz 0. Detected 1733.353 MHz processor. 0. Calibrating delay loop (skipped), value calculated using timer frequency. 3466.70 BogoMIPS (lpj=) 0. Security Framework initialized 0. AppArmor: AppArmor initialized 0. Mount-cache hash table entries: 512 0. Initi
40、alizing cgroup subsys ns 0. Initializing cgroup subsys cpuacct 0. Initializing cgroup subsys memory 0. Initializing cgroup subsys devices 0. Initializing cgroup subsys freezer 0. Initializing cgroup subsys net_cls 0. CPU: L1 I cache: 32K, L1 D cache: 32K 0. CPU: L2 cache: 1024K 0. mce: CPU supports
41、0 MCE banks 0. Performance Events: no PMU driver, software events only. 0. Checking hlt instruction. OK. 0. ACPI: Core revision 0. ftrace: converting mcount calls to 0f 1f 44 00 00 0. ftrace: allocating 21771 entries in 43 pages 0. Enabling APIC mode: Flat. Using 1 I/O APICs 0. .TIMER: vector=0x30 a
42、pic1=0 pin1=2 apic2=-1 pin2=-1 0. CPU0: Genuine Intel(R) CPU T2080 1.73GHz stepping 0c 0. Booting processor 1 APIC 0x1 ip 0x6000 0. Initializing CPU#1 0. CPU: L1 I cache: 32K, L1 D cache: 32K 0. CPU: L2 cache: 1024K 0. mce: CPU supports 0 MCE banks 0. CPU1: Genuine Intel(R) CPU T2080 1.73GHz steppin
43、g 0c 0. Skipping synchronization checks as TSC is reliable. 0. Brought up 2 CPUs 0. Total of 2 processors activated (10117.70 BogoMIPS). 0. CPU0 attaching sched-domain: 0. domain 0: span 0-1 level CPU 0. groups: 0 1 0. CPU1 attaching sched-domain: 0. domain 0: span 0-1 level CPU 0. groups: 1 0 0. de
44、vtmpfs: initialized 1. regulator: core version 0.5 1. Time: 13:25:44 Date: 07/24/10 1. NET: Registered protocol family 16 1. EISA bus registered 1. ACPI: bus type pci registered 1. PCI: MCFG configuration 0: base e segment 0 buses 0 - 255 1. PCI: MCFG area at e reserved in E820 1. PCI: Using MMCONFI
45、G for extended config space 1. PCI: Using configuration type 1 for base access 1. Trying to unpack rootfs image as initramfs. 1. bio: create slab at 0 1. ACPI: EC: Look up EC in DSDT 1. ACPI: BIOS _OSI(Linux) query ignored 1. ACPI: Interpreter enabled 1. ACPI: (supports S0 S1 S4 S5) 1. ACPI: Using I
46、OAPIC for interrupt routing 1. ACPI: No dock devices found. 1. ACPI: PCI Root Bridge PCI0 (0000:00) 1. pci 0000:00:07.1: reg 20 io port: 0x10c0-0x10cf 1. pci 0000:00:07.3: quirk: region 1000-103f claimed by PIIX4 ACPI 1. pci 0000:00:07.3: quirk: region 1040-104f claimed by PIIX4 SMB 1. pci 0000:00:07.7: reg 10 io port: 0x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理观察中的疼痛评估与管理
- 2025年家政服务行业发展趋势分析
- 山西省长治市上党区第一中学校2025-2026学年高一下学期期中考试语文试卷(含答案)
- 护理7S:数据驱动决策
- 福建省泉州市2025-2026学年八年级下学期模拟考试生物试卷(有答案)
- 链轮制造工创新意识知识考核试卷含答案
- 炼焦煤制备工岗前基础实操考核试卷含答案
- 真空冶炼工岗前常识考核试卷含答案
- 2026年新科教版高中高一化学上册第三单元氧化还原综合应用卷含答案
- 无机化学反应生产工安全实践能力考核试卷含答案
- 2023心源性休克管理指南的更新与解读
- 2025云南大理州住房和城乡建设局选调事业单位工作人员2人备考题库附答案解析
- 五小创新培训课件
- 2025年CICE项目考试中国个人寿险规划师训练题及答案
- 2025年9月27日宁夏农业农村厅选调笔试真题及解析
- 2025年工会社会工作者招聘笔试模拟试题库及答案
- 人教版(2024)七年级全一册体育与健康全册教案
- 注册安全工程师初级考试题库及答案
- 安宁疗护服务创新创业项目商业计划书
- 2025年湖南省初中学业水平考试中考(会考)地理试卷(真题+答案)
- 中国舞系列课件大全
评论
0/150
提交评论