如何通过内核访问块级存储(不使用 scsi 库)?
我的意图是通过网络实现块级存储协议以用于学习目的,几乎与 SCSI 的工作方式相同。请求将由发起者生成并发送到目标(两个用户空间程序),目标调用内核模块并使用 TCP 协议将数据返回给发起者。
到目前为止,我已经设法构建了一个简单的“Hello”模块并运行它(我是内核编程的新手),但无法继续进行块访问。
经过大量搜索,我在 中找到struct buffer_head * bread(int dev,int block)
了linux/fs.h
,但编译器抛出错误。
error: implicit declaration of function ‘bread’
请提供帮助,也请随时就内核编程提出建议。
谢谢!
bread
在旧内核中使用。
调查struct request *blk_get_request(struct request_queue *, int, gfp_t);
_linux/blkdev.h
访问块设备必须通过内核完成。