`

Linux Ram disk and initrd

阅读更多
转自:http://apps.hi.baidu.com/share/detail/14765588
      Initial RAM disk(initrd)

       RAM disk是存在于内存中的虚拟磁盘,也就是将RAM拿来当成磁盘使用。在Embedded Linux的应用中,我们通常会将ramdisk当成暂存目录来使用。例如将/dev/ram1附挂到/tmp目录,以便能让应用程序存放暂时性档案。 /dev/ram?为ramdisk的device file。由于整个root filesystem是从真正的储存装置读取并加载至ramdisk,因此有1个重要的特性是对file system所做的任何修改,都不会影响到真正root filesystem的内容。

         initrd全名为initialize RAM disk,是1个特殊的RAM disk。bootloader会将initrd载至内存,Linux kernel则可在/dev/ram0找到initrd。initrd会在Linux kernel开机前就加载,initrd正式的用途是用来存放开机时所需要的驱动程序(因root filesystem尚未mount进来)。在Embedded Linux应用上,我们会利用initrd来存放整个档案系统(root filesystem),也就是将root filesystem制作成ext2或romfs格式(或其它档案系统)的映像文件,并在开机时由bootloader加载内存,initrd均位于 /dev/ram0。要使用RAM disk与initrd,必须将Linux kernel的CONFIG_BLK_DEV_RAM以及CONFIG_BLK_DEV_INITRD)。

       使用initrd做为root filesystem装置

       将initial RAM disk当成root filesystem来使用,是在Embedded Linux应用上是相当常见的技巧,如果我们想将initial RAM disk当成存放root filesystem的装置来使用,在开机时,只需要配合root=的kernel开机参数即可。

        initramfs

        Linus本人在Linux 2.6时代所提出的 "initramfs" ,是1种更好的 "root=" 做法。简单来说,initramfs就是kernel 2.6 的 initrd,initramfs是属于1种compressed ramfs(ram filesystem)的映像档。

        C链接库

       在C链接库方面,除了标准的glibc也被广泛应用在嵌入式系统领域外,也有一些专门针对嵌入式系统应用所发展的C链接库,像是uClibc以及Diet libc。但是由于现在的ARM9处理器计算效能都很快,平台也多搭载大容量NAND闪存,所以许多实作都直接使用libc来实作root filesystem。
分享到:
评论

相关推荐

    Linux initial RAM disk (initrd) overview

    ### Linux初始RAM磁盘(initrd)概述 #### 什么是初始RAM磁盘? Linux初始RAM磁盘(initrd)是一种特殊的临时根文件系统,在系统启动过程中被挂载以支持两阶段启动过程。在真实根文件系统的可用性之前,initrd作为...

    Linux2.6 内核的 Initrd 机制解析

    Initrd,全称Init RAM Disk,是Linux启动过程中一个关键的技术环节,尤其是在Linux2.6内核中,其机制与早期版本如2.4内核有了显著的变化。本文旨在深入探讨Linux2.6内核下Initrd机制的细节,揭示其内部工作原理及与...

    initrd 文件系统详解

    为了使用 initrd 文件系统,需要在编译内核时选中 Inital RAM filesystem and RAM disk(initramfs/initrd) support。 initrd 文件系统的优点是能够提供一个快速的启动过程,特别是在大数据量的网络服务器和无盘工作...

    linux2.6内核的Initrd机制解析

    Initrd,全称为“boot loader initialized RAM disk”,即由引导加载器初始化的内存磁盘。它是一个临时的文件系统,用于在内核启动时提供必要的驱动程序和初始化脚本,以便在访问实际的根文件系统之前完成一些必要的...

    linux中ramdisk和initrd的区别

    Initrd(Initial RAM Disk)是Linux启动过程中的一个临时文件系统,用于在主根文件系统可用之前提供一个临时的环境。它的主要目的是加载必要的驱动程序和支持文件,以便能够挂载实际的根文件系统。Initrd是一个压缩...

    Linux启动流程 initrd与initramfs的区别

    在此过程中,initrd(initial ram disk)和initramfs(initial ram filesystem)是两个经常被提及的概念,它们在Linux系统启动过程中扮演着关键的角色。 Linux启动流程可以分为几个主要的步骤,包括BIOS或UEFI的...

    initrd机制解析-我的笔记

    initrd(initialized RAM disk)是 Linux 系统启动过程中的一个关键机制,它可以帮助系统加载驱动模块、检测硬件环境,并执行一些必要的启动任务。在本文中,我们将深入探讨 initrd 机制的概念、用途和处理流程。 ...

    vmlinuz.txt与initrd 用于windows中安装linux

    initrd(Initial RAM Disk)是一种临时的文件系统,它在内核启动早期被加载到内存中,用以执行特定的初始化任务,如加载驱动程序以访问真实的根文件系统。initrd可以包含特定于硬件的驱动程序,这些驱动程序可能在...

    Linux2.6 内核机制解析

    在深入探讨Linux 2.6内核中Initrd(Initial RAM Disk)技术的具体实现之前,有必要先理解Initrd的基本概念及其重要性。Initrd在Linux系统启动过程中扮演着关键角色,它为系统提供了早期的文件系统支持,使得内核能够...

    initrd.img文件分析

    initrd 的英文含义是 boot loader initialized RAM disk,就是由 boot loader 初始化的内存盘。initrd 的最初的目的是为了把 kernel 的启动分成两个阶段:在 kernel 中保留最少最基本的启动代码,然后把对各种各样...

    Initrd的加载过程PPT教案.pptx

    Initrd,全称为initialized RAM disk,是Linux操作系统启动过程中一个重要的概念。它是Bootloader加载到内存中的一种临时文件系统,通常用于在内核初始化时提供必要的驱动程序和服务,以便能够访问真实的根文件系统...

    initrd映像文档的作用和制作

    `initrd`全称是Initial RAM Disk,它是一个临时的根文件系统,用于系统引导期间加载必要的驱动程序和执行早期的初始化任务。在Linux操作系统中,`initrd`是一个非常重要的组件,尤其在处理硬件初始化和加载非默认的...

    grub启动内核和initrd.img

    **Initrd (initial RAM disk)** 是一个临时的根文件系统,用于在启动过程中提供必要的工具和服务。它是Linux内核在启动时使用的初始文件系统,通常包含了一些基本的命令、工具以及驱动程序,这些组件对于启动系统至...

    ArmLinux BOOTLOADER全程详解.pdf

    - **ATAG_INITRD**: 指明初始化RAM Disk的地址和大小。 此外,启动参数还可以通过**COMMAND LINE**来设定,即通过命令行参数直接传递给内核。 综上所述,本篇文章详细解释了Arm Linux Bootloader的核心概念和技术...

    官方下载initrd+vmlinuz打包

    `initrd`全称Initial RAM Disk,是一个临时的RAM磁盘,它在Linux内核启动时被加载到内存中。它的主要目的是为系统的进一步初始化提供一个环境,尤其是当系统的根文件系统不可直接由BIOS或启动加载器访问时。例如,在...

    bzImage+initrd.gz

    这里的"bzImage"代表的是压缩的内核映像,而"initrd.gz"则是初始根文件系统(Initial RAM Disk)的压缩格式。接下来,我们将详细探讨这两个概念及其在Linux启动过程中的作用。 **bzImage** `bzImage`是Linux内核的...

Global site tag (gtag.js) - Google Analytics