Үлкен файлдық қолдау - Large-file support

Үлкен файлды қолдау (LFS) - бұл 2 немесе 4-тен үлкен файлдарды жасау мүмкіндігіне жиі қолданылатын терминGiB қосулы 32 бит файлдық жүйелер.

Егжей

Дәстүр бойынша көптеген операциялық жүйелер және олардың негізі файлдық жүйе қолданылған іске асырулар 32 бит бүтін сандар ұсыну файл өлшемдер мен позициялар. Демек, ешқандай файл 2-ден үлкен болуы мүмкін емес32 - 1 байт (4 GiB - 1). Көптеген іске асыруларда проблемалар өлшемдерді келесідей қарау арқылы күшейе түсті қол қойылған сандар, бұл шекті одан әрі 2-ге түсірді31 - 1 байт (2 GiB - 1). 32 биттік операциялық жүйелер үшін өте үлкен файлдар белгілі болды үлкен файлдар.

Шектеулі уақытта бұл өте қолайлы болды қатты дискілер аз болса, сақтау сыйымдылығының жалпы өсімі сервер мен жұмыс үстелі файлдарының көбеюімен бірге, әсіресе дерекқор және мультимедия файлдар, шектеулерді еңсеру үшін ОС жеткізушілеріне қатты қысым әкелді.

1996 жылы бірнеше сатушылар жауап берді Үлкен файл саммиті POSIX-те үлкен файлдарға қолдау көрсету үшін (Windows NT NTFS-те үлкен файлдарды қолдайтын болған) гетроним «LFS». Саммитке ауысудың стандартталған әдісін анықтау міндеті қойылды 64 бит файл өлшемдерін көрсететін сандар.[1]

Бұл қосқыш орналастыру мәселелерін тудырды және жобаның қажетті модификациясын тудырды, оның салдары әлі де көрінеді:

  • 64 биттік файлдардың өлшемдерін өзгерту файлдық жүйенің орналасуына сәйкес келмейтін өзгертулерді жиі қажет етті, бұл үлкен файлды қолдау кейде файлдық жүйені өзгертуді қажет ететіндігін білдірді. Мысалға, Microsoft Windows ' FAT32 файлдық жүйе 4 GiB − 1-ден үлкен файлдарды қолдамайды; біреуін пайдалану керек NTFS немесе exFAT орнына.
  • Ескі екілік үйлесімділікті қолдау үшін қосымшалар, операциялық жүйе интерфейстер 32 биттік файл өлшемдерін қолдануды сақтауға мәжбүр болды және жаңа интерфейстер үлкен файлдарды қолдау үшін арнайы жасалынуы керек еді.
  • Жазуды қолдау портативті мүмкіндігінше LFS қолданатын код, C стандартты кітапхана авторлары тетіктерін ойлап тапты алдын ала процессор тұрақтылар, функцияларды 64-биттік үлкен файлға дейін анық қайта анықтады.
  • Көптеген ескі интерфейстер, әсіресе C 64-разрядты түрлерге тікелей немесе мөлдір өтуге мүмкіндік бермейтін, дәл көрсетілген аргумент типтеріне негізделген. Мысалы, C функциялары қасаң және Фтелл файл түріндегі позициялар бойынша жұмыс істейді ұзақ инт, ол 32 биттік платформаларда ені 32 битті құрайды және оны артқы үйлесімділікке жол бермей ұлғайтуға болмайды. (Бұл жаңа функцияларды енгізу арқылы шешілді fseeko және фтелло жылы POSIX.[2] Windows машиналарында Visual C ++ астында жұмыс істейді _fseeki64 және _ftelli64 қолданылады.)

Бала асырап алу

Ірі файлды API-ны 32 биттік бағдарламаларда қолдану ұзақ уақыт бойы аяқталмаған болатын. 2002 жылы жүргізілген талдау көрсеткендей, көптеген базалық кітапханалар амалдық жүйелердің үлкен файлдық қолдауынсыз жеткізіліп, оларды қолдануды шектейді.[3] Көп қолданылатын zlib кітапхана 2006 жылдан бұрын 32 биттік платформада 64 биттік үлкен файлдарды қолдай бастады.[4]

Мәселе компьютер мен жұмыс станцияларына толығымен ауысқан кезде баяу жойылды 64 биттік есептеу. Microsoft Windows Server 2008 - 32 биттік жіберілген сервердің соңғы нұсқасы.[5] Redhat Enterprise Linux 7 2014 жылы тек 64 биттік операциялық жүйе ретінде шығарылды.[6] Ubuntu Linux 2019 жылы 32 биттік нұсқасын жеткізуді тоқтатты.[7] Nvidia 2018 жылы 32 биттік драйверлерді дамытуды тоқтатты және олар 2019 жылдың қаңтарынан кейін жаңартуларды жеткізуді тоқтатты.[8] Apple 2018 жылы 32 биттік Mac OS нұсқаларын әзірлеуді тоқтатты macOS Mojave тек 64 биттік амалдық жүйе ретінде.[9] Жоқ өмірдің соңы Windows 10 үшін жұмыс үстелінде танымал, бұл Windows 7 және Windows 8 сияқты ескі жүйелердің соңғы жаңартуларымен байланысты, 2020 ж. қаңтарда, кейбір жүйелер i386 архитектурасында салынған ескі компьютерлерде жұмыс істеді.[10]

Ұқсас дамуды мобильді аймақтан да көруге болады. Google 2019 жылдың тамызына дейін қолданбалар дүкенінде қосымшалардың 64 биттік нұсқаларын қолдауы керек,[11] үшін 32-биттік қолдауды тоқтатуға мүмкіндік береді Android кейінірек.[12] 64 биттікке ауысу 2014 жылы барлық жаңа процессорлар 64 биттік архитектураға арналған кезде басталды Android 5 («Lollipop») сол жылы басылып, амалдық жүйенің 64-биттік нұсқасын ұсынды.[13][12] Apple 64-битті шығаруды бастамас бұрын бір жыл өткен болатын Apple A7 Google Linux-ті дамыту ортасын 2015 жылға қарай тек 64-биттік режимде ұсына бастады.[14] 2019 жылдың мамырында 5-тен төмен Android нұсқаларының үлесі он пайызға дейін төмендеді.[15] Қалай қолданба әзірлеушілер шоғырландырады жинақтау нұсқа, көптеген өндірушілер Android 5-ті минималды нұсқасы ретінде 2019 жылдың ортасына қарай талап ете бастады, мысалы Niantic.[16] Кейін 32-биттік нұсқаларды алу қиынға соқты.[17]

Қоспағанда ендірілген жүйелер олардың арнайы бағдарламаларымен әртүрлі файлдық қолдауды қарастыру 2020 жылдан кейін бағдарлама кодында ескіреді.

Байланысты проблемалар

The 2038 жыл 32 биттік платформалардағы 32 биттік «ұзындық» проблемаларға әкелетін тағы бір жағдаймен жақсы танымал. Файлдардың үлкен шектеулігі сияқты, жүйелер тек 64 биттікке ауысқанда ескіреді. Бұл арада 64 биттік уақыт белгісі енгізілді. Win32 API-де ол алдыңғы «32» жұрнағы бойымен «64» жұрнағы бар функцияларда көрінеді. Win32 API-ге үлкен файлдық қолдауды қосқан кезде, кейде төрт тіркесімді құрайтын қосымша «i64» суффиксі бар функцияларға әкелді. (Findfirst32, findfirst64, findfirst32i64, findfirst64i32).[18] Салыстыру үшін UNIX98 API «_LARGEFILE64_SOURCE» пайдаланылған кезде функцияларды «64» суффиксімен ұсынады.

Ірі файлды API-ге байланысты блок нөмірлерінің шектелуі бар жаппай сақтау бұқаралық ақпарат құралдары. Жалпы өлшемі 512 байт деректер блогы 32 биттік сандардан туындайтын кедергі кейінірек пайда болды. Қашан қатты диск жетектері 2 терабайт мөлшеріне жетті (шамамен 2010 ж.) негізгі жүктеу жазбасы ауыстыру керек болды GUID бөлімдер кестесі ол LBA сандары үшін 64 битті қолданады (логикалық блок мекен-жайы ). Қосулы Unix тәрізді операциялық жүйелер, сондай-ақ оны ұлғайтуды қажет етті inode кейбір функцияларда қолданылатын сандар (stat64, setrlimit64). The Linux ядросы 2001 жылы оны glibc таңдаған 2.4 нұсқасына әкелді.[19] Үлкен файлды қолдау және үлкен дискіні қолдау бір уақытта енгізілгендіктен GNU C кітапханасы Unix LFS API бағдарламалық кодында белсендірілген кезде 64 биттік инодты құрылымдарды 32 биттік архитектураларға экспорттайды.[20]

Ядро 64 биттік файлдық жүйеге көшкен кезде ext3 оларды драйверде 2001 жылға дейін қолданды. Алайда сақтау құралындағы иноды форматы 32 биттік сандарда қалып қойды.[19] Жаппай сақтау құрылғылары жылжытылған кезде Кеңейтілген формат бір блок үшін 4 килобайт, бұл файлдық жүйенің нақты шегі 8 немесе 16 терабайтты құрайды.[19] Үлкенірек дискілік бөлімдермен жұмыс істеу басқа файлдық жүйені пайдалануды талап етеді XFS ол экзабайттық файлдар мен бөлімдерге мүмкіндік беретін басынан бастап 64 биттік инодтармен жасалған.[21][22] Алғашқы 16 терабайт магниттік диск жетектері 2019 жылдың ортасына дейін жеткізілді. Қатты күйдегі диск деректер орталықтарына арналған 32 TiB-мен 2016 жылдың өзінде-ақ кейбір өндірушілер 2020 жылға дейін 100 TiB SSD болжауымен қол жетімді болды.[23]

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ Solaris OS тобы (наурыз 1996 ж.). «Solaris-тегі үлкен файлдар: ақ қағаз» (PDF). Sun Microsystems. Архивтелген түпнұсқа (PDF) 2007-02-28.
  2. ^ «Бірыңғай UNIX сипаттамасына үлкен файлдық қолдауды қосу». Х / Ашық жұмыс тобы. 1996-08-14. Алынған 2006-09-10.
  3. ^ http://ac-archive.sourceforge.net/largefile/distros.html
  4. ^ https://www.zlib.net/ChangeLog.txt
  5. ^ Колокитас, Панагиотис (2007-05-28). «Windows Server 2008: Server 32 биттік Betriebssystem жібереді» (неміс тілінде). PC Welt.
  6. ^ «32 биттік қосымшаларға RHEL 7 немесе одан кейінгі шығарылымдарда қолдау көрсетіле ме?». Қызыл қалпақ. Ақпан 2014.
  7. ^ Кук, ерік (2019-06-02). «Ubuntu-дағы Intel 32bit пакеттері 19.10 бастап». Канондық.
  8. ^ Аддамс, Матай (2018-04-12). «Nvidia 32 биттік Windows платформаларын қолдауды тоқтатады». Windows есебі.
  9. ^ Күміс, Стивен (2018-06-05). «Mojave - бұл Apple-дің 32 биттік қосымшаларды қолдайтын macOS-тың соңғы нұсқасы». Apple Insider.
  10. ^ «Windows 7-дегі қолдау. 14 қаңтар 2020» (неміс тілінде). Microsoft. Алынған 2020-02-09.
  11. ^ Себаянг, Андреас (2019-01-17). «Auf dem Weg zu reinen 64-bit-Android-Apps» (неміс тілінде). Голем.
  12. ^ а б mw (2019-01-17). «Google kündigt Ende von 32-Bit-Android-Apps for 2021 an» (неміс тілінде). IT журналы.
  13. ^ «64 биттік Android: Diese Prozessoren gibt es, diese Veränderungen kommen» (неміс тілінде). Android қолданушысы. 2014-08-26.
  14. ^ «Platform-tools 23.1.0 Linux 64 битке ескертусіз өзгертілді». Android Public Tracker. 2015-12-11. Android-sdk-linux / platform-tools мазмұны 23.0.1-де 32 биттік ELF, бірақ 23.1_rc1 және 23.1.0-де 64 биттік ELF құрайды. […] ANDROID_EMULATOR_FORCE_32BIT = true [...] орнаттым 23.0.1 - бұл Linux-тың 32-биттік соңғы 32 биттік құрылымы.
  15. ^ Тенцер, Ф. (2019-11-14). «Android OS нұсқасы Zeitraum-ге сәйкес келеді. Windows 7-де мамырдың 07-інде мамыр айы өтеді» (неміс тілінде). Статиста.
  16. ^ Дель Фаверо, Элия (2019-06-10). «Ingress und Pokémon Go ақылды Android 5-ті ақылды етеді».
  17. ^ «Неге 32bit 0.159.0 apk нұсқасы әлі күнге дейін қол жетімді емес?». TheSilphRoad /. Reddit. Желтоқсан 2019.
  18. ^ «C жұмыс уақытының кітапханасына (CRT) сілтеме: findfirst». Microsoft. Алынған 2020-02-17.
  19. ^ а б c Джагер, Андреас (2015-02-15). «Linux-тегі үлкен файлдық қолдау». SuSE GmbH.
  20. ^ linux / bits / stat.h: / * stat64 ескертуі x86-64 үшін stat сияқты пішінге ие. * /
  21. ^ Руттер, Дж. «64 биттік инод мәселесі». Алынған 2020-02-10.
  22. ^ «Ext4 Howto». kernel.org. 2019-02-11. Ext4-тің мүмкіндіктер тізімінде өте үлкен файлдық жүйелер болғанымен, қазіргі e2fsprogs файлдық жүйенің өлшемін 2 ^ 32 блокпен шектейді (4KiB блоктық файлдық жүйе үшін 16TiB). 16T-ден үлкен файлдық жүйелерге рұқсат беру ext4 үшін аяқталатын кезекті жоғары басымдылықтың бірі болып табылады.
  23. ^ Шерер, Томас (2016-08-15). «Samsungs 32-TB-SSD: Der Anfang vom Ende der Festplatte» (неміс тілінде). Электор.
  24. ^ Кунт, Удо; Георгиев, Лучезар I .; Дэвис, Джереми (2007). «FAT + қайта қарау жобасы 2» (FATPLUS.TXT) (2 ред.). Алынған 2015-08-05.

Сыртқы сілтемелер