首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有奇数(非偶数)大小的Linux块设备

具有奇数(非偶数)大小的Linux块设备
EN

Stack Overflow用户
提问于 2010-11-21 19:00:29
回答 2查看 292关注 0票数 1

是否可以创建具有奇数大小的Linux (2.6)块设备(例如环回设备)?我不能让它发生。losetup似乎向下舍入到512字节边界。用户模式Linux ubd设备的ubd设备似乎舍入到512字节边界。在struct request中,我们为读/写操作的块偏移量设置了sector_t __sector

我问这个问题只是出于教育目的。我可以处理512字节的边界,但我仍然对是否有可能绕过它感兴趣。在这个问题中,我对其他抽象层(例如使用常规文件或字符设备)不感兴趣。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-21 20:11:44

不是的。Linux2.6块层不支持小于512字节的任何内容。任何更小的代码(特别是不是2的幂)都需要大量重写代码。

票数 1
EN

Stack Overflow用户

发布于 2010-11-21 19:23:11

这就是块设备而不是字符设备的原因:块的粒度。之所以存在二分法,是因为将一次处理一个块的真实硬件建模为也处理块的抽象,效率要高得多。否则,每个操作都会变成成本更高的计算。

正如您所提到的,绕过它的方法是使用面向字符的设备或抽象。这是Unix设备模型的核心:所有东西都是一系列八位字节,除了只能虚拟化为一个的东西。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4237493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档