Large file support

Large file support

Large file support, often abbreviated to LFS, is the term frequently applied to the ability to create files larger than 2 GiB on 32-bit operating systems.

Rationale

Traditionally, many operating systems and their underlying file system implementations used 32-bit integers to represent file sizes and positions. Consequently no file could be larger than 232 bytes (4 GiB). The problem was exacerbated by treating the sizes as signed numbers, which further lowered the limit to 231 bytes (2 GiB). Files larger than 2 GiB, too large for 32-bit operating systems to handle, came to be known as "large files".

While the 2 GiB limit was quite acceptable at a time when hard disks were smaller, the general increase in storage capacity combined with increased server and desktop file usage, especially for database and multimedia files, led to intense pressure for OS vendors to remove the limitation.

In 1996, multiple vendors responded by forming an industry initiative known as the Large File Summit (thus "LFS" can be considered to stand for either "Large file support" or "Large File Summit"), tasked to define a standardized way to switch to 64-bit numbers to represent file sizes. (Merely ensuring the sizes were treated as unsigned numbers would only up the limit from 2 GiB to 4 GiB, which would have been only a stopgap measure given the explosive growth in data storage.) It is worth noting that 64-bit operating systems such as Tru64 UNIX never had a 32-bit limit to begin with, and hence needed no additional "large file support".

This switch caused deployment issues and required design choices the consequences of which can still be seen:
* The change to 64-bit file sizes frequently required incompatible changes to file system layout, which meant that large file support sometimes necessitated a file system change. For example, Microsoft Windows' FAT32 file system does not support files larger than 4 GiB; one has to use NTFS instead.
* To support binary compatibility with old applications, operating system interfaces had to retain their use of 32-bit file sizes and new interfaces had to be designed specifically for large file support.
* To support writing portable code that makes use of LFS where possible, C standard library authors devised mechanisms that, depending on preprocessor constants, transparently redefined the functions to the 64-bit large file aware ones.
* Many old interfaces, especially C-based ones, explicitly specified argument types in a way that did not allow straightforward nor transparent transition to 64-bit types. For example, the C functions fseek and ftell operate on file positions of type long int, which is typically 32 bits wide on 32-bit architecture, and cannot be made larger without sacrificing backward compatibility. (This was resolved by introducing new functions fseeko and ftello. On Windows machines, under Visual C++, functions _lseeki64 and _telli64 are used.)
* The above efforts notwithstanding, all applications had to be recompiled to make them LFS-aware. The resulting binaries were typically not runnable on older releases of the same operating system. This was, and to some extent still remains, a problem for some application vendors.

As a result of the aforementioned transition issues, many present-day applications still do not support large files.

External links

* cite paper
date= August 14, 1996
url = http://opengroup.org/platform/lfs.html
title= Adding Large File Support to the Single UNIX Specification
publisher= X/Open Base Working Group
accessdate= 2006-09-10

* cite paper
author = Andreas Jaeger
date = Feb 15 2005
url = http://www.suse.de/~aj/linux_lfs.html
title = Large File Support in Linux
publisher = SuSE GmbH (now Novell, Inc.)
accessdate = 2006-09-10

* cite paper
author = Solaris OS group
date = March 1996
url = http://www.sun.com/software/whitepapers/wp-largefiles/largefiles.pdf
title = Large Files in Solaris: A White Paper
publisher = Sun Microsystems, Inc.
accessdate = 2006-09-10


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Look at other dictionaries:

  • Large File Support — (engl. Unterstützung großer Dateien) ist eine Eigenschaft von Betriebssystemen oder Dateisystemen, sehr große Dateien öffnen und bearbeiten zu können. Häufig gibt das verwendete System diesen Grenzwert vor, bei einigen (älteren) Linux Versionen… …   Deutsch Wikipedia

  • File system — For library and office filing systems, see Library classification. Further information: Filing cabinet A file system (or filesystem) is a means to organize data expected to be retained after a program terminates by providing procedures to store,… …   Wikipedia

  • File Allocation Table — For other uses, see Fat (disambiguation). FAT Developer Microsoft Full Name File Allocation Table FAT12 (12‑bit version) FAT16/FAT16B (16‑bit versions) FAT32 (32‑bit version with 28 bits used) Introduced …   Wikipedia

  • File viewer — A file viewer is application software that presents the data stored in a computer file in a human friendly form. The file contents are generally displayed on the screen, or they may be printed. Also, they may be read aloud using speech synthesis …   Wikipedia

  • File Transfer Protocol — (FTP) is a network protocol used to transfer data from one computer to another through a network such as the Internet.FTP is a file transfer protocol for exchanging and manipulating files over a TCP computer network. A FTP client may connect to a …   Wikipedia

  • File locking — is a mechanism that enforces access to a computer file by only one user or process at any specific time. The purpose of locking is to prevent the classic interceding update scenario. The interceding update problem may be illustrated as in the… …   Wikipedia

  • File area network — File Area Networking refers to various methods of sharing files over a network such as storage devices connected to a file server or network attached storage (NAS). Background Data storage technology over the years has evolved from a direct… …   Wikipedia

  • Journaled File System — Este artículo o sección necesita referencias que aparezcan en una publicación acreditada, como revistas especializadas, monografías, prensa diaria o páginas de Internet fidedignas. Puedes añadirlas así o avisar …   Wikipedia Español

  • Large Hadron Collider — LHC redirects here. For other uses, see LHC (disambiguation). Coordinates: 46°14′N 06°03′E / 46.233°N 6.05°E / 46.233; 6.05 …   Wikipedia

  • File format — A file format is a particular way that information is encoded for storage in a computer file. Since a disk drive, or indeed any computer storage, can store only bits, the computer must have some way of converting information to 0s and 1s and vice …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”