Large File Support

Systemeigenschaft für große Dateien
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 10. Februar 2020 um 04:09 Uhr durch Guidod (Diskussion | Beiträge). Sie kann sich erheblich von der aktuellen Version unterscheiden.

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 sind dies z. B. 2 GiB oder bei FAT32 4 GiB. Große Datenbanken auf Servern, Bildbearbeitung oder Videoschnitt benötigen aber häufig große Dateien (engl. Large Files), die deutlich umfangreicher sind, so dass eine solche Anwendung von einer kleinen Größenbeschränkung für Dateien nicht betroffen sein darf.

Das Problem liegt bei den über Jahrzehnte sehr verbreiteten 32-Bit-Betriebssystemen in der Größenbeschränkung von Integer-Zahlen. Eine 32-Bit-Integer-Zahl kann nur Werte bis 2 GiB (mit Vorzeichen) oder 4 GiB (ohne Vorzeichen) darstellen. Zur Unterstützung sehr großer Dateien muss daher in 32-Bit-Programmen ein neuer Datentyp und zugehörige Betriebssystemfunktionen eingeführt werden, was ein Umschreiben alter Programme erforderlich macht. Ältere Versionen und insbesondere nicht mehr gewartete Programme können daher selbst bei Existenz eines Large File Support nur Dateien mit einer maximalen Größe von 2 oder 4 GiB verarbeiten.

Die Entwicklung einer API mit 64-Bit Eigenschaften kam durch die Entwicklung der Festplatten zustande, die Anfang der 1990er Jahre die Gigabyte-Grenze durchbrachen. Anschließend entwickelte Dateisysteme stellten sich darauf ein – darunter das FreeBSD UFS2, das Linux ext2 (1993) und Windows NTFS (1993). Die Funktionalität des Betriebssystemkerns wurde dabei in verschiedener Art an die Applikationen durchgereicht, bis man sich im Unix-Umfeld beim herstellerübergreifenden „Large File Summit“ von 1996 auf eine gemeinsame API einigte.[1] Diese wurde mit Single UNIX Specification Version 2 (UNIX 98) festgeschrieben.

Die Arithmetik in den zugehörigen C Compilern wurde als neuer 64-Bit "long long" Datentyp in C mit der Standardisierung für C99 (ab 1995) hinzugefügt. Dies folgte aus der Entwicklung der Betriebssysteme für 32-Bit-Architekturen zur Nutzung eines ILP32-Programmiermodells, bei der die traditionellen Datentypen "int", "long", "pointer" jeweils 32-Bit lang sind. Die traditionellen Funktionen "ftell" und "fseek" waren damit auf 32 Bit beschränkt. Für Posix "ftello" / "fseeko" sowie Windows "_ftelli64" / "_fseeki64" führten die Hersteller einen 64-Bit-Datentyp ein – anfangs mit unterschiedlicher Benennung.

Umsetzung

Die Übernahme der LFS API in 32-Bit Programme blieb lange unvollständig. Eine Untersuchung aus dem Jahre 2002 zeigte, dass auch Basisbibliotheken des Betriebssystems noch ohne LFS Unterstützung ausgeliefert wurden, und damit indirekt zahlreiche Anwendungen beschränkten.[2] Die vielgenutzte zlib Bibliothek unterstützte den 64-Bit Zusatz auf 32-Bit Plattformen erst ab 2006.[3]

Im Bereich der PC/Workstations erledigte sich das Problem letztlich dadurch, dass nur noch 64-Bit-Architekturen eingesetzt wurden. Microsoft Windows Server 2008 wurde schon früh ausschließlich als 64-Bit Version ausgeliefert[4] Redhat Enterprise Linux 7 wurde bei der Erstveröffentlichung 2014 nur noch als 64-Bit Betriebssystem bereitgestellt.[5] Das Ubuntu Linux stoppte 2019 die Auslieferung als 32-Bit Betriebssystem.[6] Nvidia stoppte die Entwicklung von 32-Bit Treibern 2018 und liefert seit Januar 2019 auch keine Updates mehr.[7] Mac OS von Apple stoppte 2018 die Entwicklung von 32-Bit, sodass macOS Mojave nur noch als 64-Bit Betriebssystem zur Verfügung steht.[8] Für Microsoft Windows 10 auf dem Desktop ist derzeit noch kein End-Of-Life bekannt, da es Anfang 2020 überhaupt erst die letzten Altversionen (Windows-7, Windows-8) ersetzt hat, die teils noch auf i386 Architekturen eingesetzt wurden.[9]

Im Bereich der mobilen Geräte fordert Google die native Unterstützung von 64-Bit durch Applikationen seit August 2019,[10] sodass eine Abkündigung der 32-Bit Unterstützung in Android vorbereitet wird.[11] Die Umstellung auf 64-Bit begann 2014, als alle neueren Prozessoren nur noch in 64-Bit angekündigt wurden, und mit Android 5 ("Lollipop") ein passendes Betriebssystem in diesem Jahr bereitgestellt wurde.[12][11] Apple hatte die Umstellung schon vorher mit dem 64-Bit Apple A7 begonnen, der 2013 vorgestellt wurde. Google lieferte den Entwicklerarbeitsplatz unter Linux dann ab 2015 nur noch für 64-Bit aus.[13] 2019 lage die Verbreitung von Android Versionen unterhalb 5 noch bei etwa zehn Prozent.[14]

Einzelnachweise

  1. Adding Large File Support to the Single UNIX® Specification. The Open Group, 14. August 1996;.
  2. http://ac-archive.sourceforge.net/largefile/distros.html
  3. https://www.zlib.net/ChangeLog.txt
  4. https://www.pcwelt.de/news/Windows-Server-2008-Microsofts-letztes-32-Bit-Betriebssystem-fuer-Server-334946.html
  5. https://access.redhat.com/solutions/509373
  6. https://discourse.ubuntu.com/t/intel-32bit-packages-on-ubuntu-from-19-10-onwards/11263
  7. https://windowsreport.com/nvidia-32-bit-windows-end-support/
  8. https://appleinsider.com/articles/18/06/05/mojave-is-apples-last-version-of-macos-to-support-32-bit-apps
  9. https://support.microsoft.com/de-de/help/4057281/windows-7-support-ended-on-january-14-2020
  10. Andreas Sebayang: Auf dem Weg zu reinen 64-Bit-Android-Apps. Golem, 17. Januar 2019;.
  11. a b mw: Google kündigt Ende von 32-Bit-Android-Apps per 2021 an. IT Magazin, 17. Januar 2019;.
  12. 64-Bit-Android: Diese Prozessoren gibt es, diese Veränderungen kommen. Android User, 26. August 2014;.
  13. Platform-tools 23.1.0 Linux changed to 64-bit without notice. Android Public Tracker, 11. Dezember 2015;: „It turns out the android-sdk-linux/platform-tools content is 32-bit ELF in 23.0.1 but 64-bit ELF in 23.1_rc1 and 23.1.0. [..] I set ANDROID_EMULATOR_FORCE_32BIT=true [..] 23.0.1 is the last 32-bit Linux build.“
  14. F. Tenzer: Anteile der verschiedenen Android-Versionen an allen Geräten mit Android OS weltweit im Zeitraum 01. bis 07. Mai 2019. Statista, 14. November 2019;.