Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Unix File System
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Implementations == Vendors of some proprietary Unix systems, such as [[SunOS]] / [[Solaris (operating system)|Solaris]], [[System V Release 4]], [[HP-UX]], and [[Tru64 UNIX]], and open Unix derived systems like [[illumos]], have adopted UFS. Most of them adapted UFS to their own uses, adding proprietary extensions that may not be recognized by other vendors' versions of Unix. Many{{Which|date=March 2015}} have continued to use the original block size and data field widths as the original UFS, so some degree of read compatibility remains across platforms.{{Which|date=January 2017}}{{Citation needed|date=March 2015}}{{According to whom|date=June 2017}} Compatibility between implementations as a whole is spotty at best.{{According to whom|date=March 2015}} As of [[Solaris 7]], [[Sun Microsystems]] included UFS Logging, which brought [[Journaling file system|filesystem journaling]] to UFS, which is still available in current versions of Solaris and illumos.<ref>{{Cite web |url=https://docs.oracle.com/cd/E19253-01/817-5093/fsoverview-43/index.html |title=UFS Logging |access-date=2022-09-27 |website=Oracle Documentation}}</ref> Solaris UFS also has extensions for large files and large disks and other features. In 4.4BSD and [[Berkeley Software Distribution|BSD]] Unix systems derived from it, such as [[FreeBSD]], [[NetBSD]], [[OpenBSD]], and [[DragonFly BSD]], the implementation of UFS1 and UFS2 is split into two layers: an upper layer that provides the directory structure and supports metadata (permissions, ownership, etc.) in the inode structure, and lower layers that provide data containers implemented as inodes. This was done to support both the traditional FFS and the [[Log-structured File System (BSD)|LFS]] log-structured file system with shared code for common functions. The upper layer is called "UFS", and the lower layers are called "FFS" and "LFS". In some of those systems, the term "FFS" is used for the combination of the FFS lower layer and the UFS upper layer, and the term "LFS" is used for the combination of the LFS lower layer and the UFS upper layer. Kirk McKusick implemented block reallocation, a technique that reorders the blocks in the file system just before the writes are done to reduce fragmentation and control file system aging. He also implemented [[soft updates]], a mechanism that maintains the file system consistency without limiting the performance in the way the traditional sync mode did. This has the side effect of reducing the requirement of file system checking after a crash or power failure. To overcome the remaining issues after a failure, a background fsck utility was introduced. In UFS2, Kirk McKusick and [[Poul-Henning Kamp]] extended the FreeBSD FFS and UFS layers to add 64-bit block pointers (allowing volumes to grow up to 8 [[zebibyte]]s), variable-sized blocks (similar to [[extent (file systems)|extents]]), extended flag fields, additional 'birthtime' stamps, extended attribute support and POSIX1.e ACLs. UFS2 became the supported UFS version starting with FreeBSD 5.0. FreeBSD also introduced soft updates and the ability to make file system [[snapshot (computer storage)|snapshots]] for both UFS1 and UFS2. These have since been ported to NetBSD, but eventually soft updates (called soft dependencies in NetBSD) was removed from NetBSD 6.0 in favor of the less complex file system journaling mechanism called [[WAPBL]] (also referred as logging), which was added to FFS in NetBSD 5.0. OpenBSD supported soft updates from version 2.9<ref>{{cite web | url = http://www.openbsd.org/29.html | title = OpenBSD 2.9 Release | date = 2001-06-01 | publisher = [[OpenBSD]] | access-date = 2013-04-08}}</ref> until support was dropped in version 7.4,<ref>{{cite web | url=https://undeadly.org/cgi?action=article;sid=20230706044554 | title=Soft updates disabled for future VFS work | publisher=[[OpenBSD_Journal]] | date=2023-07-05 | access-date=2024-03-09}}</ref> and it has had UFS2 (FFS2) support (no ACLs) since version 4.2.<ref>{{cite web | url = http://www.openbsd.org/42.html | title = OpenBSD 4.2 Release | date = 2007-11-01 | publisher = OpenBSD | access-date = 2013-04-08}}</ref> OpenBSD has now made UFS2 the default UFS version and will be included with the 6.7 release.<ref>{{cite web | url = https://marc.info/?l=openbsd-cvs&m=158609976014693&w=2 | title = Make FFS2 the default filesystem | date = 2020-04-05 | publisher = OpenBSD | access-date = 2020-04-07}}</ref> Since FreeBSD 7.0, UFS also supports [[Journaling file system|filesystem journaling]] using the gjournal [[GEOM]] provider. FreeBSD 9.0 adds support for lightweight journaling on top of soft updates (SU+J), which greatly reduces the need for background fsck, and NFSv4 ACLs. FreeBSD, NetBSD, OpenBSD, and DragonFly BSD also include the [[Dirhash]] system, developed by Ian Dowse. This system maintains an in-memory hash table to speed up directory lookups. Dirhash alleviates a number of performance problems associated with large directories in UFS. [[Linux]] includes a UFS implementation for binary compatibility at the read level with other Unixes, but since there is no standard implementation for the vendor extensions to UFS, Linux does not have full support for writing to UFS. The native Linux [[ext2]] filesystem was inspired by UFS1 but does not support fragments and there are no plans to implement soft updates.{{Citation needed|date=March 2015}} (In some 4.4BSD-derived systems, the UFS layer can use an ext2 layer as a container layer, just as it can use FFS and LFS.) [[NeXTStep]], which was BSD-derived, also used a version of UFS. In [[Apple Inc.|Apple]]'s [[macOS|Mac OS X]], it was available as an alternative to [[HFS Plus|HFS+]], their proprietary filesystem. However, as of [[Mac OS X Leopard]], it was no longer possible to install Mac OS X on a UFS-formatted volume. In addition, one cannot upgrade older versions of Mac OS X installed on UFS-formatted volumes to Leopard; upgrading requires reformatting the startup volume.<ref>{{cite web | url = https://support.apple.com/kb/HT2316 | title = Archived β Mac OS X 10.5 Leopard: Installing on a UFS-formatted volume | publisher = [[Apple, Inc]] | date = 2012-06-12 | access-date = 2013-04-08}}</ref> There was a 4 GB file limit for disks formatted as UFS in Mac OS X. As of [[Mac OS X Lion]], UFS support was completely dropped.<ref>{{cite web | url = https://discussions.apple.com/message/15668353 | title = Lion won't mount any disk images with the built-in utility or Disk Utility | work = Apple Support Communities | publisher = [[Apple, Inc]] | date = 2011-08-05 | access-date = 2013-12-24}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)