1、vmlinuz

vmlinuz是可引导的,压缩的linux内核,“vm”代表的“virtual memory”。

vmlinuz是vmlinux经过gzip和objcopy(*)制作出来的压缩文件。vmlinuz不仅是一个压缩文件,并且在文件的开头部分内嵌有gzip解压缩代码。所以你不能用gunzip 或 gzip –dc解包vmlinuz。

vmlinuz是一个统称。有两种详细的表现形式:zImage和bzImage(big zImage)。

zImage和bzImage的差别在于本身的大小和载入到内存的地址不同。zImage是0~640KB,bzImage是1M以上。假设内核比較小。那么能够採用zImage 或bzImage之中的一个,两种方式引导的系统运行时是同样的。大的内核採用bzImage。不能採用zImage。

vmlinuz的建立有两种方式。一是编译内核时通过“make zImage”创建,然后通过:“cp /usr/src/linux-2.4/arch/i386/linux/boot/zImage/boot/vmlinuz”产生。

2、vmlinux

vmlinux是未压缩的内核,vmlinux 是ELF文件,即编译出来的最原始的文件。用于kernel-debug,产生system.map符号表,不能用于直接加载,不可以作为启动内核,只是启动过程中的中间媒体。

3、initrd

initrd是“initial ramdisk”的简写。initrd一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态。initrd映象文件是使用mkinitrd创建的。mkinitrd实用程序能够创建initrd映象文件。initrd是linux在系统引导过程中使用的一个临时的根文件系统,用来支持两阶段的引导过程。initrd就是一个带有根文件系统的虚拟RAM盘,里面包含了根目录‘/’,以及其他的目录,比如:bin,dev,proc,sbin,sys等linux启动时必须的目录,以及在bin目录下加入了一下必须的可执行命令。通常的步骤是先启动内核,然后内核挂载initrd.img,并执行里面的脚本来进一步挂载各种各样的模块。其中最重要的就是根文件系统驱动模块,有了它才能挂载根文件系统,继而运行用户空间的第一个应用程序init或者systemd,完成系统后续的启动。

4、System.map

内核符号映射表,顾名思义就是将内核中的符号(也就是内核中的函数)和它的地址能联系起来的一个列表。是所有符号及其对应地址的一个列表。之所以这样就使为了用户编程方便,直接使用函数符号就可以了,而不用去记要使用函数的地址。  当你编译一个新内核时,原来的System.map中的符号信息就不正确了。随着每次内核的编译,就会产生一个新的 System.map文件,并且需要用该文件取代原来的文件。

5、linux启动过程

开机 bios 代电自检, 依 bios 指定的启动盘(如 hd1), 找到 头 416 字节引导程序,执行之(顺便说如果是lilo引导linux的话, 在#lilo 时就写入了这416字节,但仅这416字节是不够用来引导 linux 的,因此叫它 stage1 还有一个 stage2 就是我们看到的选系统的 lilo 菜单部分), 然后出现 选系统的菜单 选了 linux 后, lilo 依 liloconf 中指定的位置找到 内核 启动之,之后 initrd 内亮登场:

1.内核依 指定的 initrd 文件加载它, 解压之到 /etc/ram0 [内存] 中(一般initrd 采用 bz bz2 算法,内核是知道如何处理的)

2. mount ram0 作为 / 文件系统(可能是内核支持的ext2),这样做的目的是为了读取 initrd 中的内容.

3.initrd 文件系统一般有一个 /linuxrc 的文件,一般是一个 sh 脚本, kernel 执行之

4. 扫描系统,发现新硬件,在 initrd 文件系统中找到相应驱动安装之.

5. 加载真正的 / 文件系统, 而将原有的 / 系统 (initrd 解压后对应的) 如下处理:

a.如果真正的 / 文件系统下有 /initrd 这个目录,则由原来的/ mount 到此处

b.没有则umount 掉(此时如果有进程还在用initrd 中的文件,会报错)

6.找到 /etc/init 执行之,依 /etc/inittab

7.初始化系统 到此initrd 使令结束

Linux--vmlinuz、vmlinux、initrd相关推荐

  1. linux img 内核启动,【Linux必知必会】initrd.img、vmlinux和 vmlinuz

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 initrd.img是一个小的映象,包含一个最小的linux系统.通常的步骤是先启动内核,然后内核挂载initrd.img,并执行里面的脚本来进一步挂载各 ...

  2. loading linux img2a,嵌入式Linux中initrd的应用--浅析ramdisk、ramfs、initrd和initramfs

    看到这样的一句话很让我费解,因为似乎我理解为这样做能够提高一点嵌入式linux启动速度,我对此是非常地感兴趣 自此,就开始了我的解惑之旅 首先需要知道的是ramdisk和ramfs http://ww ...

  3. linux中常用文件系统介绍——cramfs、 JFFS2、 NFS、 initrd、 yaffs2、 Ext4、 squashfs

    目录 文件系统简介 cramfs jffs2 yaffs2 initrd Squashfs ext4 文件系统简介 嵌入式系统中常用文件系统包括有 cramfs. JFFS2. NFS. initrd ...

  4. Linux内核映像vmlinux、Image、zImage、uImage区别

    本文介绍几种常用的Linux内核映像的区别. 一.vmlinux vmlinux:Linux内核编译出来的原始的内核文件,elf格式,未做压缩处理. 该映像可用于定位内核问题,但不能直接引导Linux ...

  5. Linux下编译build的命令,【linux基础】20、内核的编译

    一.一般src.rpm包的安装 有些软件包是以.src.rpm结尾的,这类软件包是包含了源代码的rpm包,在安装时需要进行编译. src.rpm包=源代码 + specs文件 #specs文件是将源码 ...

  6. Linux系统各文件、目录介绍

    Linux操作系统中,以文件来表示所有的逻辑实体与非逻辑实体.逻辑实体系指文 件与目录; 非逻辑实体则泛指硬盘.终端机.打印机等. 一般而言,Linux文件名称的组成除由连续字母.标点符号.数字等构成 ...

  7. linux救援模式使用、自制linux系统和linux内核编译

    内容: 1.linux系统启动排错及恢复(救援模式的使用) 2.自制linux系统 3.编译linux内核 一.系统启动排错及恢复(救援模式的使用) 1.bootloader损坏恢复 (1)进入救援模 ...

  8. 动手制作Dos、WinPE、Slax Linux|winpe+dos+Mini Linux U盘启动盘

    动手制作Dos.WinPE.Slax Linux|winpe+dos+Mini Linux U盘启动盘 一.概述 U盘的价格越来越便宜,容量也越来越大,携带也方便,在工作中可以把一些自己常用的工具整和 ...

  9. Linux内核之vmlinux与vmlinuz

    由于是初次系统的学习Linux内核,过程中遇到了一些经常出现的名词.似曾相识,但对他们的含义又不是很清楚.因此,将搜索到的内容进行一下汇总. 1.vmlinux   vmlinux是一个包含linux ...

  10. [架构之路-30]:目标系统 - 系统软件 - Linux OS根文件系统rootfs的概念、组成、制作以及用busybox制作根文件系统

    目录 前言: 第1章 什么是根文件系统 1.1 什么是文件 1.2 什么是文件系统 1.3 文件系统组织文件的方式:树形结构 1.4 统一的虚拟文件系统 1.5 物理存储介质与物理文件系统类型 1.5 ...

最新文章

  1. linux 查看目录挂载的ip,Linux挂载IPSAN和FCSAN操作,Linux挂载NFS文件系统
  2. 设置vim的默认工作路径同时与自动设当前编辑的文件所在目录为当前工作路径不冲突...
  3. OpenGL模型加载和渲染
  4. virtualbox+vagrant学习-2(command cli)-27-vagrant connect命令
  5. 7月10日任务 添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理...
  6. 二、规则组织数学模型的建立
  7. 大地震!某大厂“硬核”抢人,放话:只要AI人才,高中毕业都行!
  8. law是什么的缩写_Lawyer和Attorney 有什么不同?
  9. python建立文件数据库_python学习-- Django根据现有数据库,自动生成models模型文件...
  10. java如何调用同目录下的文件_文件目录发生了增删改操作?Java如何实时监控?...
  11. LeetCode-13.罗马数字转整数
  12. DisplayUtils
  13. java es score_elasticsearch系列(七)java定义score(示例代码)
  14. 计算机五笔是什么时候学的吗,电脑五笔打字入门口诀(5分钟就能学会五笔)...
  15. Ubuntu18.04安装NVIDIA显卡驱动
  16. L3立法试水,为自动驾驶产业带来什么?
  17. Android studio语音识别集成科大讯飞语音转文字
  18. 解决[“usingcomponents“][“van-button“]: “@vant/weapp/button/index“ 未找到:
  19. Windows 8 自带定时关机的4种实现方法
  20. 7-3 单词首字母大写

热门文章

  1. vivo手机通用的官方售后解锁工具包箱_可更换镜头拍照手机不远了!vivo IFEA分离式镜头获奖...
  2. SpringBoot 中使用 QuzartZ
  3. vim编辑器中常用的命令
  4. c语言爱心代码(c语言画爱心的代码)
  5. 计算机多媒体最新参考文献,计算机多媒体论文
  6. PDF文档阅读必备的PDF阅读器
  7. 传智播客毕向东java基础全套视频教程_传智播客毕向东JAVA基础教程全套视频教程(324课)...
  8. linux远程连接命令有哪些,linux系统远程连接命令有哪些
  9. java 旅游管理系统
  10. 电感式传感器工作原理与电感式传感器应用案例-博扬智能