接上一章 手把手教你北邮操作系统小学期实验四——Linux Shell小型化3
1. 实验目的:
- ramdisk 技术利用内存模拟硬盘空间,将一个内存块作为 1 个盘分区使用,可以提高访问速度。多某些特定的访问频率高的文件,将其存储于 ramdisk 上,可以提高访问性能。
- 在嵌入式系统中,利用 ramdisk 技术,可以实现应用程序预加载,即初始化完成后立即加载,而不是等到需要使用时才从硬盘读取, 从而提高系统速度:将一些系统启动后经常使用的程序,如浏览器、Xwindows,利用ramdisk 将整个应用程序的可执行 文件及其库复制到内存,然后修改可执行程序加载的搜索路径,用 ramdisk 所在的目录代替原来的可执行文件的目录路径。
- 本实验通过 Linux 环境下 ramdisk 的配置使用,了解 ramdisk 的原理和实现机制,验 证其对改善系统运行速度的有效性。
2. 实验内容:
按照参考文献[1]“6.3 ramdisk 技术”相关内容:
1. 察看内核选项 CONFIG_BLK_DEV_RAM,确认 Linux 内核支持 ramdisk 选项。
2. 创建/格式化 1 个 ramdisk 设备,并安装到文件系统的相应目录结构下 。
3. 运行命令“df –k /dev/ram0”,查看可使用的 ramdisk 空间大小。
4. 重新修改 ramdisk 空间大小。
5. 将 Linux 系统内常用的目录,如/temp 目录安装为 ramdisk,通过打开一个大文件, 并对文件进行读、写操作,观察验证系统运行速度是否加快。可以利用系统自身 的时间测量函数。(要求: 文件>100M)
6. 编写一个文件访问程序,对比将此文件分别存储于外设硬盘、ramdisk 分区时,程 序的执行速度。
要求:程序反复多次读、写文件,以便对比不同方式下的访问时间差异。
3. 实验内容与步骤
3.1. 查看内核选项
make menuconfig
在Block devices下查看是否选择了Initial RAM DISK (initrd) support。
使用命令ls -al /dev/ram查看系统可利用的ramdisk设备数目。
3.2. 格式化1个ramdisk设备,并安装到文件系统的相应目录结构下
先创建一个挂载点
mkdir /mnt/ramdisk0
创建一个文件系统,即格式化ram0
mke2fs /dev/ram0或/sbin/mke2fs /dev/ram0
装载ramdisk到挂载点
mount /dev/ram0 /mnt/ramdisk0
3.3. 运行命令“df –k /dev/ram0”,查看可使用的 ramdisk 空间大小
3.4. 重新修改 ramdisk 空间大小
修改/etc/grub.conf中启动项,加入ramdisk_size = xxxM
修改前:
修改后:
重启计算机后查看大小:
3.5. 将 Linux 系统内常用的目录,如/temp 目录安装为 ramdisk,通过打开一个大文件, 并对文件进行读、写操作,观察验证系统运行速度是否加快。可以利用系统自身 的时间测量函数。
制作一个大于100M的文件
dd if=/dev/zero of=test1 bs=110M count=1
if=FILE: 指定输入文件,若不指定则从标注输入读取。这里指定为/dev/zero是Linux的一个伪文件,它可以产生连续不断的null流(二进制的0)
of=FILE: 指定输出文件,若不指定则输出到标准输出
bs=BYTES: 每次读写的字节数,可以使用单位K、M、G等等。另外输入输出可以分别用ibs、obs指定,若使用bs,则表示是ibs和obs都是用该参数
count=BLOCKS: 读取的block数,block的大小由ibs指定(只针对输入参数)
则命令的意思是从/dev/null每次读取110M数据,读1次,写入到test1这个文件中。
初始化一个ramdisk,并将其挂载到/tmp下
打开文件读速度比较:
不挂载ramdisk:
挂载ramdisk
代码:
读测试比较:
不挂载ramdisk:
挂载ramdisk:
代码:
写测试比较:
不挂载ramdisk:
挂载ramdisk
代码:
下一章 手把手教你北邮操作系统小学期实验五——Linux环境下的Ramdisk技术及其实验2