我明白了为什么内存需要根据总线的数据位宽对齐到4字节和8字节。但是以下语句让我感到困惑:“IoDrive要求使用O_DIRECT执行的所有I/O必须对齐到512字节,并且大小必须是512字节的倍数。” 为什么需要将地址对齐到512字节呢?
如果你不知道自己在做什么,就不要使用 O_DIRECT。
O_DIRECT 意味着“直接设备访问”。这意味着它绕过了所有操作系统缓存,直接访问磁盘(或可能是 RAID 控制器等)。磁盘访问是基于每个扇区的。
编辑:对齐要求是针对 IO 偏移量/大小的;通常不是内存对齐要求。
编辑:如果你正在查看 this page(它似乎是唯一的搜索结果),它还说内存必须是页面对齐的。