Solaris 中的文件系统:64 位文件支持与特性解析
64 位文件在 Solaris 中的发展
在早期,Sun 系统的最大文件系统和文件大小被限制在 2GB,这是由于内核中偏移量数据类型的位数所导致的。这种限制主要体现在三个方面:磁盘地址类型daddr_t、文件系统接口的off_t数据类型,以及用于设备驱动程序和一些文件系统接口的uio结构。在 Solaris 2.0 之前,这些类型都是 32 位的,如下所示:
typedef long daddr_t; typedef long off_t; struct uio { struct iovec *uio_iov; int uio_iovcnt; off_t uio_offset; short uio_segflg; short uio_fmode; int uio_resid; };Solaris 2.0 的 64 位设备支持
Solaris 2.0 借助 64 位数据类型longlong_t实现了部分 64 位设备支持。它引入了额外的磁盘地址类型lldaddr_t、偏移类型lloff_t以及支持 64 位的uio结构。这些扩展允许设备支持超过 2GB 的文件