Stort filstöd

Större filstöd är en egenskap hos operativsystem eller filsystem för att kunna öppna och redigera mycket stora filer. Ofta ligger det system som används före denna gräns, vissa (äldre) Linux- versioner, dessa är ,. B. 2 GiB eller med FAT32 4 GiB. Stora databaser på servrar, bildredigering eller videoredigering men kräver ofta stora filer (engelska stora filer ) som är betydligt större, så det får inte påverkas av en sådan applikation från en liten storlek för filer.

beskrivning

Problemet med 32-bitars operativsystem som har varit utbredda i årtionden är storleksbegränsningen för heltal . Ett 32-bitars heltal värden endast upp till 2 GiB (med tecken som representerar) eller 4 GiB (utan tecken). För att stödja mycket stora filer måste därför en ny datatyp och tillhörande operativsystemfunktioner införas i 32-bitarsprogram , vilket gör det nödvändigt att skriva om gamla program. Äldre versioner och särskilt program som inte längre underhålls kan därför endast bearbeta filer med en maximal storlek på 2 eller 4 GiB, även om det finns stort filstöd.

Utvecklingen av ett API med 64-bitarsegenskaper uppstod genom utveckling av hårddiskar , vilket bröt gigabytegränsen i början av 1990-talet. Senare utvecklade filsystem anpassade till det - bland dem FreeBSD UFS2 , Linux ext2 (1993) och Windows NTFS (1993). Funktionerna i operativsystemets kärna överfördes till applikationerna på olika sätt tills ett gemensamt API överenskommits i Unix-miljön vid det tillverkaroberoende "Large File Summit" 1996. Detta upprättades med Single UNIX Specification Version 2 (UNIX 98).

Aritmetiken i tillhörande C-kompilatorer lades till som en ny 64-bitars "lång lång" datatyp i C med standardisering för C99 (från 1995). Detta följd av utvecklingen av operativsystem för 32-bitars arkitekturer för att använda en ILP32-programmeringsmodell, där de traditionella datatyperna "int", "lång", "pekare" var och en är 32-bitars långa. De traditionella funktionerna "ftell" och "fseek" var således begränsade till 32 bitar. För Posix "ftello" / "fseeko" och Windows "_ftelli64" / "_fseeki64" introducerade tillverkarna en 64-bitars datatyp - initialt med olika namn.

genomförande

Antagandet av LFS API i 32-bitarsprogram förblev ofullständigt under lång tid. En studie från 2002 visade att även de grundläggande biblioteken i operativsystemet fortfarande levererades utan LFS-stöd och därmed indirekt begränsade många applikationer. Det allmänt använda zlib- biblioteket stödde inte 64-bitars tillägg på 32-bitars plattformar förrän 2006.

Inom PC / arbetsstationer löstes problemet i slutändan eftersom endast 64-bitars arkitekturer användes. Microsoft Windows Server 2008 var den sista serverversionen som levererades i 32 bitar. Redhat Enterprise Linux 7 tillhandahölls endast som ett 64-bitars operativsystem när det släpptes 2014. Ubuntu Linux stoppade leveransen som ett 32-bitars operativsystem 2019. Nvidia slutade utveckla 32-bitars drivrutiner 2018 och har inte tillhandahållit några uppdateringar sedan januari 2019. Mac OS från Apple stoppade utvecklingen av 32-bitars 2018, så att macOS Mojave endast är tillgängligt som ett 64-bitars operativsystem. Med Microsoft Windows 10 kommer 32-bitarsstöd på skrivbordet att bibehållas fram till 2025, eftersom det i början av 2020 bara ersatte de senaste gamla versionerna (Windows 7, Windows 8), varav några fortfarande användes i i386-arkitekturer. Microsoft Windows 11 har emellertid endast tillhandahållits som ett 64-bitars operativsystem sedan dess första release 2021.

Inom området mobila enheter har Google krävt inbyggt stöd för 64-bitarsapplikationer av applikationer sedan augusti 2019, så att 32-bitarsstöd i Android avbryts . Övergången till 64-bitars började 2014, då alla nyare processorer bara tillkännagavs i 64-bitars, och ett lämpligt operativsystem gjordes tillgängligt i år med Android 5 ("Lollipop"). Apple hade redan börjat övergången med 64-bitars Apple A7 , som presenterades 2013. Från 2015 levererade Google endast utvecklararbetsstationen under Linux för 64-bitars. I maj 2019 var förekomsten av Android-versioner under 5 fortfarande cirka tio procent. För Google Play App Store föreskrevs att från och med augusti 2019 alltid 64-bitarsversioner av apparna måste tillhandahållas, med undantag för spel för vilka detta krav gäller från augusti 2021. Eftersom apputvecklare koncentrerar sig på en sammanställning har många tillverkare ställt version 5 som minsta version från mitten av 2019, till exempel Niantic. En 32-bitarsversion var då svår att få. Förversionerna av Android 12 från 2020 erbjöd inte längre en 32-bitars emulator för utvecklare. Android 12 kommer att släppas i september 2021, marknadsandelen för Android-versioner fram till version 4 hade sjunkit till under 2% före april 2021.

Med undantag för inbäddade plattformar med deras specialiserade program, kommer uppmärksamheten vid stort filstöd i programkoden att avta från 2020.

Relaterade problem

Den år 2038-problemet i synnerhet visar att den traditionella representationen av tidsstämplar som 32-bitars "lång" kan leda till problem. Dessa kommer också att köra varandra med övergången till rena 64-bitars system. Under tiden har en 64-bitars tidsstämpel också gjorts tillgänglig på 32-bitars system. I Win32 API innebar detta att nya funktioner med 64-bitars tidsstämplar fick suffixet "64" och 64-bitars fillängder markerades med ett bifogat suffix "i64" - säkert i alla fyra kombinationer (findfirst32, findfirst64, findfirst32i64, findfirst64i32). UNIX98 API, å andra sidan, introducerar ytterligare funktioner med suffixet "64" med "_LARGEFILE64_SOURCE".

Blockräknare för masslagringsenheter är relaterade till storfilens API. På grund av den vanliga storleken på datablocken på 512 byte begränsades 32-bitarsnumren först senare. När hårddiskar nådde storleken 2 terabyte (omkring 2010), måste huvudstartposten ersättas som en partitionstabell av GUID-partitionstabellen , som sedan definierade 64-bitars räknare för LBA ( linjär blockadress ). Inodräknarna som användes i Unix- system måste också utvidgas, liksom andra filräknare (till exempel med funktionerna stat64 / setrlimit64). Revisionen av Linux-kärnan till version 2.4 ägde rum runt 2001 tillsammans med införandet av LFS-stöd, som sedan togs över av glibc. Eftersom övergången ägde rum samtidigt med aktiveringen av 64-bitars LFS i 32-bitars arkitekturer i GNU-C-biblioteket för Linux, ändras också inodblockräknare och relaterade funktioner till 64-bitars.

Ext3- filsystemet från 2001 tog sedan över några 64-bitars värden i drivrutinen, men förblev begränsat till 32-bitars blockräknare på masslagringsenheten. Eftersom du oftast arbetar i det avancerade formatet på 4 kilobyteblock är det maximala här vanligtvis 8 eller 16 terabyte. Större masslagringsenheter inom tiotal terabyte måste sedan formateras med XFS , som också stöder 64-bitars inoder i dataformatet och därmed tränger in i exabyte-intervallet. De första 16 terabyte-hårddiskarna levererades från mitten av 2019. Som en solid state-enhet var masslagringsenheter med 32 TiB redan tillgängliga från 2016, och de tillkännagavs för 2020 utöver 100 TiB.

Se även

  • RF64 som en 64-bitars förlängning av RIFF WAVE -ljudfiler
  • FAT32 + som en bakåtkompatibel förlängning av FAT-filsystemet (upp till 256 GiB)
  • ext4 som en 48-bitars förlängning av ext3-filsystemet (> 16 TiB från e2fsprogs version 1.42)

webb-länkar

Individuella bevis

  1. ^ Lägga till stort filstöd till UNIX®-specifikationen . Den öppna gruppen. 14 augusti 1996.
  2. http://ac-archive.sourceforge.net/largefile/distros.html
  3. https://www.zlib.net/ChangeLog.txt
  4. Panagiotis Kolokythas: Windows Server 2008: Microsofts senaste 32-bitars operativsystem för servrar . PC-värld. 28 maj 2007.
  5. Stöds 32-bitarsapplikationer i RHEL 7 eller senare versioner? . Röd hatt. Februari 2014.
  6. Kommer Cooke: Intel 32bit-paket på Ubuntu från 19.10 och framåt . Kanonisk. 2 juni 2019.
  7. Add Matthew Addams: Nvidia avbryter stödet för 32-bitars Windows-plattformar . Windows-rapport. 12 april 2018.
  8. Steven Silver: Mojave är Apples senaste versionen av Mac OS för att stödja 32-bitars program . Apple Insider. 5 juni 2018.
  9. Stöd för Windows 7 slutar den 14 januari 2020 . Microsoft. Hämtad 9 februari 2020.
  10. Florian Müssig: Systemkrav för Windows 11: När gör det, vad kan det misslyckas . Varm. 25 juni 2021.
  11. Andreas Sebayang: På väg till rena 64-bitars Android-appar . Golem. 17 januari 2019.
  12. a b mw: Google tillkännager slutet av 32-bitars Android-appar 2021 . IT-tidningen. 17 januari 2019.
  13. 64-bitars Android: Dessa processorer finns där, dessa förändringar kommer . Android-användare. 26 augusti 2014.
  14. Plattformsverktyg 23.1.0 Linux har ändrats till 64-bit utan förvarning. . Android Public Tracker. 11 december 2015: "Det visar sig att innehållet för android-sdk-linux / plattformsverktyg är 32-bitars ELF i 23.0.1 men 64-bitars ELF i 23.1_rc1 och 23.1.0. [..] Jag ställde in ANDROID_EMULATOR_FORCE_32BIT = true [..] 23.0.1 är den senaste 32-bitars Linux-versionen. "
  15. F. Tenzer: Andel av de olika Android-versionerna på alla enheter med Android OS över hela världen under perioden 1 maj till 7 maj 2019 . Statista. 14 november 2019.
  16. Google tillkännager slutet av 32-bitars Android-appar 2021 . IT-tidningen. 17 januari 2019.
  17. Elia Del Favero: Ingress och Pokémon Go behöver snart åtminstone Android 5 . 10 juni 2019.
  18. Varför är 32bit 0.159.0 version apk fortfarande inte tillgänglig? . Reddit TheSilphRoad /. December 2019.
  19. Skaffa Android 12 . Google.: "Observera att 32-bitars Android-emulatorsystembilder inte stöds i Android 12."
  20. Andel av de olika Android-versionerna i internetanvändning av enheter med Android OS över hela världen i april 2021 . Statista. 3 maj 2021.
  21. CTF-funktionsreferens hitta först . Microsoft. Hämtad 20200210.
  22. a b c Andreas Jaeger: Större filstöd i Linux . SUSE GmbH. 15 februari 2015.
  23. linux / bits / stat.h: / * Obs! Stat64 har samma form som stat för x86-64. * /
  24. MJ Rutter: 64 bitars inodeproblem . Hämtad 10 februari 2020.
  25. a b Ext4 Howto . kernel.org. 11 februari 2019: "Även om mycket stora filsystem finns på ext4: s funktionslista begränsar nuvarande e2fsprogs fortfarande filsystemets storlek till 2 ^ 32 block (16TiB för ett 4KiB-blockfilsystem). Att tillåta filsystem som är större än 16T är en av de nästa högprioritetsfunktionerna för ext4. "
  26. Thomas Scherer: Samsungs 32 TB SSD: början på slutet av hårddisken . Väljare. 15 augusti 2016.