写在开头
我不是专业的内核玩家, 对于内核也是平时有兴趣了看一看, 这里写下来的东西主要为了把学习之路上的风景记录一二, 当然了, 如果能够给你带来帮助, 那就算是意外收获了.
代码版本
linux-4.8.4, 前不久从官网www.kernel.org刚下载的版本, 感觉内核发展好快, 目前大部分服务器用的是还是2.6的版本. 要跟上时代还是从新版的代码来看吧, 倒也不是说越新越好, 只是基于两点:
- 新的版本会修复很多bug
- 新的版本更能反映以后的方向
Ram Disk 简介
简单直白, 直接翻译就是内存中的 ‘磁’ 盘. 对内核来说, 磁盘的抽象概念是一个存储介质, 即可以存在传统硬盘的磁片上, 也可以存在与SSD中的flash上, 也可以存在内存中, 只要它能提供一般磁盘的接口功能即可. 在内核中, 与磁盘对应的设备是block类型, 即按照固定块大小读取数据的设备.
如何在Linux上面玩呢?
第一步: 加载模块
内核中与Ram Disk对应的驱动模块名称叫brd(Ram backed block device driver). 设置Ram Disk大小(123456K)并加载:
modprobe brd rd_size=123456
由于在我的电脑上brd模块是内置的, 无法演示动态设置大小, 如果需要设置只能通过启动参数来达到, 太麻烦了, 就用默认的参数玩吧. 模块加载后, 就可以在/dev目录下发现创建好了很多ram*的设备:
lqp@lqp-ThinkPad-T540p:~$ ls /dev/ram*
/dev/ram0 /dev/ram10