Ramdisk简介以及嵌入式Linux上实现
2015-08-19 17:05
639 查看
作者: Sam (甄峰) sam_code@hotmail.com
Sam多年前在刚接触Linux时第一个项目是个DVR项目,此项目当时谁作谁辞职。在Sam加入之前,几乎已经换了3拨人了。Sam作为一个外行加入其中,并最终几乎重写了所有模块,虽然现在想来程序架构和代码质量相当不好。但总算把东西给作出来了。呵呵,闲话不说,回到主题:在那个项目中,我们一些频繁修改的文件,放置于Ramdisk中,一方面加快访问速度,另一方面也防止文件写坏。
Ramdisk简单的来说,就是用内存模拟为硬盘,并在其上存储临时文件(因为重新启动后,文件会消失)
Ramdisk技术在Windows,Linux下均可实现。Windows下可选用类似RAMDISK4G这样的软件实现。Linux下,则需要Kernel配置。我们主要关注Linux下实现。
0. 准备工作:
在Linux下创建Ramdisk,需要mkfs.ext2。但Sam遇到的嵌入式平台并不支持。最简单的方法当然是重新编译busybox.
#cd busybox
#make menuconfig
Linux System Utilities ---> [*] mkfs_ext2
#make
编译出busybox.
运行之:
#./busybox mkfs.ext2
发现可用。
1.Kernel配置支持Ramdisk:
#make menuconfig
Device Drivers ---> [*] Block devices ---><M> RAM block device support
选择将其编译为modules.
(4096) Default RAM disk size (kbytes)
缺省值为4096。所以Ramdisk缺省为4M.
想要创建150M Ramdisk. 设置为:153600(1024*150) kbytes
2.创建Ramdisk:
当Kernel有Ramdisk support支持时,就会有/dev/ramX这样的设备。设备未被格式化时,不占内存,也不能被使用。
#./busybox mkfs.ext2 /dev/ram0 //此时才真正可用,并占用缺省大小内存。运行此命令时,系统会显示这个块设备具体有多大。
#mount /dev/ram0 /tmp //将设备mount到mount 点。此时可以使用df 命令查看。
3. 创建指定大小的Ramdisk:
3.
其实内存文件系统中最方便的是:tmpfs.
创建方便,也可以随意改变大小。
用法:
先创建挂载点。
#mkdir /data/game
#mount Game_Tmpfs /data/game -t tmpfs -o -o size=10m
创建了一个名为:Game_Tmpfs,大小为10M, 挂载点为/data/game的内存文件系统。
给定名字Game_Tmpfs的优点是,在mount 或df中可以很容易找到自己的内存文件系统。
Wget用法:
busybox的wget很不好用。可以下载并交叉编译。
http://ftp.gnu.org/gnu/wget/
#CC=arm-hisiv200-linux-gnueabi-gcc ./configure --host=arm-linux --without-ssl
#make
wget username:password@Site/dir/filename.ext
wget -rm --ftp-user=public --ftp-password=3dijoy ftp://ftp.3dijoy.com/To_BCM/
Sam多年前在刚接触Linux时第一个项目是个DVR项目,此项目当时谁作谁辞职。在Sam加入之前,几乎已经换了3拨人了。Sam作为一个外行加入其中,并最终几乎重写了所有模块,虽然现在想来程序架构和代码质量相当不好。但总算把东西给作出来了。呵呵,闲话不说,回到主题:在那个项目中,我们一些频繁修改的文件,放置于Ramdisk中,一方面加快访问速度,另一方面也防止文件写坏。
Ramdisk简单的来说,就是用内存模拟为硬盘,并在其上存储临时文件(因为重新启动后,文件会消失)
Ramdisk技术在Windows,Linux下均可实现。Windows下可选用类似RAMDISK4G这样的软件实现。Linux下,则需要Kernel配置。我们主要关注Linux下实现。
0. 准备工作:
在Linux下创建Ramdisk,需要mkfs.ext2。但Sam遇到的嵌入式平台并不支持。最简单的方法当然是重新编译busybox.
#cd busybox
#make menuconfig
Linux System Utilities ---> [*] mkfs_ext2
#make
编译出busybox.
运行之:
#./busybox mkfs.ext2
发现可用。
1.Kernel配置支持Ramdisk:
#make menuconfig
Device Drivers ---> [*] Block devices ---><M> RAM block device support
选择将其编译为modules.
(4096) Default RAM disk size (kbytes)
缺省值为4096。所以Ramdisk缺省为4M.
想要创建150M Ramdisk. 设置为:153600(1024*150) kbytes
2.创建Ramdisk:
当Kernel有Ramdisk support支持时,就会有/dev/ramX这样的设备。设备未被格式化时,不占内存,也不能被使用。
#./busybox mkfs.ext2 /dev/ram0 //此时才真正可用,并占用缺省大小内存。运行此命令时,系统会显示这个块设备具体有多大。
#mount /dev/ram0 /tmp //将设备mount到mount 点。此时可以使用df 命令查看。
3. 创建指定大小的Ramdisk:
3.
其实内存文件系统中最方便的是:tmpfs.
创建方便,也可以随意改变大小。
用法:
先创建挂载点。
#mkdir /data/game
#mount Game_Tmpfs /data/game -t tmpfs -o -o size=10m
创建了一个名为:Game_Tmpfs,大小为10M, 挂载点为/data/game的内存文件系统。
给定名字Game_Tmpfs的优点是,在mount 或df中可以很容易找到自己的内存文件系统。
Wget用法:
busybox的wget很不好用。可以下载并交叉编译。
http://ftp.gnu.org/gnu/wget/
#CC=arm-hisiv200-linux-gnueabi-gcc ./configure --host=arm-linux --without-ssl
#make
wget username:password@Site/dir/filename.ext
wget -rm --ftp-user=public --ftp-password=3dijoy ftp://ftp.3dijoy.com/To_BCM/
相关文章推荐
- CentOS系统下的Hadoop集群(第3期)_VSFTP安装配置
- linux下删除乱码文件,目录
- CentOS系统下的Hadoop集群(第2期)_机器信息分布表
- linux 编辑 php 扩展
- linux
- 看 Linux kernel 應具備的首要觀念是?
- Linux系统日常管理
- Linux下fork()、vfork()、clone()和exec()的区别
- centos6.5下安装mysql,远程访问
- Linux进程间通信 共享内存+信号量+简单例子
- Linux常用命令大全 (非常有用)
- 查看linux系统信息命令(kernel、os、cpu等)
- linux笔记之3--常用命令
- Linux0.11的内核引导启动流程
- Linux 下常见目录及其功能
- [置顶] LINUX新手常用命令[长期更新]
- centos7 lamp环境配置及多域名设置
- 在Centos下安装部署SVN方法
- linux强制umount设备的方法
- 在Centos下安装部署SVN的步骤和遇到的问题