Section 15.1. UFS Development History


15.1. UFS Development History

The original version of UFS is derived from the Berkeley Fast File System (FFS) work from BSD UNIX, architected by Marshall Kirk McKusick and Bill Joy in the mid 1980s. The Berkeley FFS was the second major file system available for UNIX and was a leap forward from the original System V file system. The System V file system was lightweight and simple but had significant shortcomings: poor performance, unreliability, and lack of functionality.

During the development of Sun OS 2.0, a file-system-independent interface was introduced to support concurrent, different file systems within an operating system instance. This interface, today known as the vnode/vfs interface, is the mechanism that all file systems use to interface with the file-related system calls. (The vnode/vfs architecture is discussed further in Section 14.6.) UFS was modified so that it could be used within this new vnode/vfs framework and since has been the focus of much of the file system development effort in Solaris.

A second major overhaul for UFS came about at the time of SunOS 4.0, when the virtual memory (VM) system was redeveloped to use the vnode as the core of virtual memory operations. The new VM system implemented the concept of virtual file cachinga departure from the traditional physical file cache (known as the "buffer cache" in previous versions of UNIX). The old buffer cache was layered under the file systems and was responsible for caching physical blocks from the file system to the storage device. The new model is layered above the file systems and allows the VM system to act as a cache for files rather than blocks. The new system caches page-sized pieces of files, whereby the file and a particular offset are cached as pages of memory. From this point forward, the buffer cache was used only for file system metadata, and the VM system implemented the file system caching. The introduction of the virtual file caching affected file systems in many ways and required significant changes to the vnode interface. At that point, UFS was substantially modified to support the new vnode and VM interfaces.

The third major change to UFS came about in Solaris 2.4 in the year 1994 with the introduction of file system metadata logging in an effort to provide better reliability and faster reboot times after a system crash or outage. The first versions of logging were introduced with the unbundled Online: DiskSuite 3.0 software package, the precursor to Solstice DiskSuite (SDS) product and the Solaris Volume Manager (SVM) as it is known today. Solaris 7 saw the integration of logging into UFS, and after six years of development, Solaris 10 shipped with logging turned on by default. Table 15.1 summarizes the major UFS development milestones.

Table 15.1. UNIX File System Evolution

1984

SunOS 1.0

FFS from 4.2 BSD.

1985

SunOS 2.0

UFS rearchitected to support vnodes/vfs.

1988

SunOS 4.0

UFS integrated with new VM virtual file cache.

1991

SunOS 4.1

I/O clustering added to allow extentlike performance.

1992

SunOS 4.1

1TB file system and ability to grow UFS file systems with Online: Disk Suite 1.0.

1992

Solaris 2.0

1TB file system support included in base Solaris.

1994

Solaris 2.4

Metadata logging option with Online: DiskSuite 3.0.

1995

Solaris 2.5

Access Control Lists.

1995

Solaris 2.6

Large file support allows 1TB files. Direct I/O uncached access added.

1998

Solaris 7

Metadata logging integrated into base Solaris UFS.

2002

Solaris 9

File System Snapshots Extended Attributes

2003

Solaris 9 Update 4

Multi-terabyte UFS support was added.

2004

Solaris 10 and Solaris 9 Update 7

Logging on by default in UFS.





SolarisT Internals. Solaris 10 and OpenSolaris Kernel Architecture
Solaris Internals: Solaris 10 and OpenSolaris Kernel Architecture (2nd Edition)
ISBN: 0131482092
EAN: 2147483647
Year: 2004
Pages: 244

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net