网站首页 | 经济学论文 | 证券金融 | 管理学 | 会计审计 | 法学论文 | 医药学论文 | 社会学论文 | 教育论文 | 计算机 | 艺术论文 | 哲学论文 | 财务管理 |
写论文网
  • 教育理论论文
  • 基础教育论文
  • 中等教育论文
  • 高等教育论文
  • 职业教育论文
  • 心理学论文
  • 学科教育论文
  • 英语教学论文
  • 您的位置:写论文网 > 教育论文 > 职业教育论文 > 什么是嵌入式 [一种实现嵌入... 正文 2019-12-25 07:26:46

    什么是嵌入式 [一种实现嵌入式Linux的新方法]

    相关热词搜索:

    一种实现嵌入式Linux的新方法

    一种实现嵌入式Linux的新方法 摘要 在Linux中会遇到由于文件系统损坏,需要人工修复而导致系统无法 正常启动的现象。本文采用Linux初始化内存盘(INITRD)技术,并把内存的一 部分作为Linux的根目录,每次启动把完整的文件系统解压到这里,避免了系统 从损坏的文件系统启动。这不仅使系统能正常启动,而且提高了系统性能。

    关键词 Linux 嵌入式 INITRD ramdisk 【Abstract】In course of building embedded Linux, the system will not start because of the bad filesystem . The paper describes a new method, which adopts INITial Ramdisk Disk and assigns part of memories as root directory of Linux. It avoids startup from a bad filesystem because it uncompresses integral filesystem to ramdisk every time. With this method, the system can not only start normally, but also it’s performance is very good. 【Keyword】Linux embedded INITRD ramdisk 引言 在Linux操作系统中,有一项特殊的功能——初始化内存盘INITRD(INITial Ram Disk)技术,而且内核支持压缩的文件系统映像。有了这两项功能,我们可 以让Linux系统从小的初始化内存盘启动,并把系统内存的一部分作为根文件系 统挂载,而且不使用交换分区(如果不运行X Windows这是完全可以的),即把 Linux系统完全嵌入到内存中,而不依赖于任何其他硬盘。现在PC机内存至少 128M,而根文件系统所用的只有30M,因此不仅不会使整机性能下降,反而有 很大的提高。

    由于系统不工作在硬盘上,所以系统消除了由于机械驱动而导致的问题;
    因 为系统运行于内存中,根文件系统和操作完全在CPU/RAM环境下,系统性能在 速度和可靠性方面非常好;
    它不会由于非法关机而破坏文件系统,因为我们每一 次启动是把压缩的文件系统解压至内存盘中作为根文件系统挂载。

    1 硬件要求 对于这样一个系统,硬件不需要特别的设计,只是通过普通的PC机上的组 件实现。值得一提是系统的内存的大小,它至少应该有64M。因为30M作为 Ramdisk使用,剩下30多兆作为系统运行,才能保证系统的正常工作,我们现在 的计算机内存一般为128M,这个条件都能满足。唯一特别的是一个flash盘 ,它 相当于一个IDE接口的硬盘,大小为20M,主要用它作为启动LILO和放置根文件 系统压缩包。2 Ramdisk的使用 Ramdisk就是将内存的一部分分配为一个分区并作为硬盘来使用。对于系统 运行时不断使用的程序,将它们放在Ramdisk中将加快计算机的操作,如大数据 量的网络服务器、无盘工作站等。为了能够使用Ramdisk,我们在编译内核时须 将block device中的Ramdisk支持选上,它下面还有两个选项,一个是设定Ramdisk 的大小,默认是4096k;
    另一个是initrd的支持。它既可以直接编译进内核,也可 以编译成模块,在需要的时候加载。我们由于在启动时就用它,所以必须将它直 接编译进内核。

    如果对Ramdisk的支持已经编译进内核,我们就可以使用它了。首先在/mnt 目录下创建目录ram,运行mkdir /mnt/ram;
    然后对/dev/ram0创建文件系统,运行 mke2fs /dev/ram;
    最后挂载上/dev/ram,运行mount /dev/ram /mnt/ram,就可以象 对普通硬盘一样对它进行操作了。值得注意的是,在创建文件系统的时候,在屏 幕上输出1024 inodes ,4096 blocks,即ramdisk大小为4M=4096个块,但是我们 挂载上之后,用命令df –k /dev/ram查看时,显示出来ramdisk大小只有3963K,这 是由于文件系统本身占用了一些空间。

    我们能根据需要改变ramdisk地大小。如我们要把默认的4M增大到10M,当 ramdisk是直接编译进内核的情况下,可在LILO配置文件lilo.conf中加入一行:
    append=“ramdis_size=10000”,运行LILO后,重启计算机后,ramdisk大小变为10M, 或者在启动是作为启动行参数ramdis_size=10000;
    当ramdisk是作为可加载模块编 译时,需要在模块加载配置文件/etc/modules.conf中加入一行:options rd rd_size=10000,或者在加载rd模块是在后面加上说明,即insmod rd rd_size=10000. 3 实现过程 3.1创建压缩的文件系统 我们的实现过程是依赖于存在的Linux系统。首先启动一般的Linux系统,在 这个系统中根据自己的需要,创建一个适合功能的文件系统。例如我们要实现 Apache网络服务器,那么只要把完成系统启动和基本维护需要的一些命令、脚本、 配置文件和库函数留下,再加上实现Apache服务器所需要的。具体过程为:
    在Linux下建立目录/minlinux,我们在此目录下创建的文件系统。系统的所有 静态链接库,帮助手册(man pages),信息页(info pages),头文件,内核源 码对于系统运行是完全无用的,所以不需要它们。在目录bin下放系统维护的一 些基本工具,如ls、mv、grep、chown、chmod、chgrp、ln、rm等;
    在sbin下是系 统启动过程通常需要的命令,如bash、e2fsck、mke2fs、fdisk、insmod、rmmod、 depmod、modprobe、lsmod、shutdown、reboot、login、init、getty、mount、umount、 等;
    usr/bin下放置Apache应用程序http和其他一些特殊工具。然后根据这些可执行文件需要的动态链接库来确定lib目录下的内容。当然目录etc下的配置文件, dev下的设备文件需要的都必须要有,它们都是和可执行文件对应的,因为许多 可执行文件执行时,一般是打开设备,根据配置文件来运行。有一个特殊的目录 proc应该设置,在内核编译选项文件系统选择中,我们选 image=/mnt/flash/boot/vmlinuz append= “ramdisk_size=30000” label=embedded root=/dev/ram initrd=/mnt/flash/boot/initrd.img.gz 运行命令lilo –C ramlilo.conf ,将启动信息写入flash的主引导区MBR。

    重新启动计算机,登陆后运行mount,我们看到如下两项:
    /dev/ram on / ext2 (rw) none on /proc type proc (rw) 这显示只有ramdisk被挂载,制作成功。

    4 结论 在我们制作的嵌入式Linux中进行各种操作,速度非常快,而且系统很稳定。

    没有出现因为根文件系统损坏而导致系统进入手工维护界面的现象。用它作为 HTTP网络服务器、网络监视器、宽带通信设备管理器或者其他需要长时间不停 运行的机器,都有很高的应用价值。

    • 范文大全
    • 教案
    • 优秀作文
    • 教师范文
    • 综合阅读
    • 读后感
    • 说说
    什么是嵌入式 [一种实现嵌入式Linux的新方法] 》由(写论文网)整理提供,版权归原作者、原出处所有。
    Copyright © 2019 写论文网 All Rights Reserved.