具有奇数(不均匀)大小的Linux块设备

时间:2010-11-21 11:00:29

标签: linux size block device padding

是否可以创建奇数大小的Linux(2.6)块设备(例如环回设备)?我无法实现。 losetup似乎向下舍入到512字节边界。用户模式Linux ubd设备的ubd设备似乎向上舍入到512字节边界。在struct request中,对于读/写操作的块偏移,我们有sector_t __sector

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

没有。 Linux 2.6块层不包含小于512字节的任何内容。任何小的(特别是不是2的幂)都需要重写大量的代码。