Solaris文件系统:64位文件支持与特性解析
1. 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; };1.1 Solaris 2.0的部分64位设备支持
Solaris 2.0借助64位数据类型longlong_t实现了部分64位设备支持。它引入了额外的磁盘地址类型lldaddr_t、偏移类型lloff_t,以及支持64位的uio结构。这些扩展使得设备支持能够突破2GB的限制,文件系统理论上最大可达到$2^