Возможно ли создать блок-устройство Linux (2.6) (например, устройство петли) с нечетным размером? Я не мог этого добиться. losetup
, похоже, округляет до 512 байт. Устройства ubd
устройств User-mode Linux ubd
, похоже, округляют до 512 байт. В struct request
у нас есть sector_t __sector
для смещения блока для операций чтения/записи.Блочное устройство Linux с нечетным (даже не) размером
Я задаю этот вопрос только для образовательных целей. Я могу справиться с границей 512 байт, но мне все равно интересно, можно ли обойти его. В этом вопросе меня не интересуют другие уровни абстракции (например, использование обычных файлов или символьных устройств).
Я в порядке с гранулярностью блоков, но с этим мы все еще можем иметь нечетный размер устройства: просто сделайте последний блок меньше остальных. Однако акцент на моем вопросе не философский: меня интересует реализация Linux kernel 2.6. – pts
Это именно то, что я имел в виду под «более дорогостоящим вычислением». Окружающий каждый доступ с помощью «это последний частичный блок?» предикаты являются дорогостоящими при применении к каждой операции ввода-вывода. – msw