Файловые системы Android.
Файловые системы Android.
Ext2, Ext3, Ext4 – основные файловые системы Android. Они используются для организации работы внутреннего хранилища на большинстве современных гаджетов, и если первые устройства работали под версиями Ext2, то начиная с версии Android 4, основными стали Ext3, а потом и Ext4. Основное отличие между вариациями заключается в наличие журналирования. Если в процессе записи или чтения данных происходит системный сбой, например, неожиданное отключение питания, то при наличии журналирования не произойдет потери или повреждения данных. В основном файловые системы формата Ext используются в блочных накопителях, но пользователи могут установить данный тип и для карт памяти, но без сторонних утилит получить к ним доступ из операционных систем, помимо Linux, будет невозможно. Файловая система флэшки Android обычно форматируются в FAT (VFAT) или NTFS, а флеш-память — в Ext3 или Ext4.
UBIFS – эта файловая система, предназначена исключительно для памяти по типу NAND (флеш-накопители, применяемые на мобильных устройствах). Ее основное преимущество — это снижение износа носителей данных. Состоит такая Файловая система из двух слоев — UBI (отвечает за работу и связь с физическим носителем) и UBIFS (сама файловая система). Разработчиком UBIFS является компания Nokia, но встретить подобную файловую систему можно не только на оригинальных устройствах от данного производителя, но и на других гаджетах, например, китайского изготовления.
Samsung RFS – это файловая система разработанная корейской компанией Samsung для устройств на базе ОС Linux, а одной из разновидностей последнего является Android. Предназначается фирменная Samsung RFS для флеш-памяти NAND и используется во многих гаджетах собственного производства. Для облегчения работы с файлами используется таблица формата FAT, что позволяет максимально просто произвести запись файлов на флэш-память и их чтение. Специфика RFS учитывает особенности NAND накопителей, что позволяет увеличить длительность их эксплуатации, а также снизить вероятность потери данных при системных сбоях и случайных отключениях питания.
SDCardFS. Компания Google долгое время использовала в своих устройствах файловую систему FUSE, но она имела ряд недостатков, среди которых необходимо отметить малое количество памяти, выделяемой под приложения, а также большое потребление хранилища при кэшировнии данных. На замену FUSE пришла SDCardFS, которая решала эти проблемы, но представляла собой своего рода оболочку, эмулирующую FAT32. Она отправляет данные файловым системам нижнего уровня, что позволяет оптимизировать работу смартфонов, а также исправляет ошибки, связанные с передачей данных на компьютер и обратно. SDCardFS по своей сути не является классической файловой системой, но значительно сказывается на скорости работы смартфонов или планшетов на Android.
Файловые системы Android самые разнообразные. Среди них есть как общие файловые системы, предназначенные для работы с ОС на базе Linux, так и специфические, которые используются в NAND-накопителях. Несмотря на такое разнообразие, только производители смартфонов определяют, какая файловая система на Android работает лучше при тех или иных обстоятельствах.
Источник
Файловые системы Android
Файловая система представляет собой своего рода структуру того или иного накопителя. Она отвечает за то, какой максимальный объем файла можно сохранить в памяти, длину их названий, а также за организацию циклов записи или чтения. Файловые системы выступают в роли посредников между программным кодом и физическим вместилищем.
Для разных операционных систем и типов устройств существуют отдельные ФС и гаджеты на ОС Android, не являются исключением. Давайте разберемся, какие файловые системы поддерживает Android и для каких целей используется каждая из них?
Файловые системы Android
1. Yaffs и Yaffs2
Создателем файловой системы Yaffs (Yet Another Flash File System) является Чарльз Мэннинг, родом из Новой Зеландии. Данная ФС предназначается для организации работы флеш-накопителей и оперативной памяти. Основным ее преимуществом является повышение сроков эксплуатации модулей памяти, так как система автоматически пропускает ячейки, предназначенный для однократной записи. Yaffs2 использовалась для организации работы внутренней памяти гаджетов Android версии 2.2 и 2.3.
2. VFAT
Vfat не является полноценной самостоятельной файловой системой, а представляет собой расширение FAT. Доработанная версия позволяет сохранять файлы с длинными именами, но по всем остальным характеристикам является морально устаревшей. Vfat может использоваться на картах памяти, а операционные системы на базе ОС Андроид полностью их поддерживают. В основном, это файловая система флешки android.
3. F2FS
F2FS (Flash Friendly File System) – файловая система, которая предназначена в первую очередь на работу с флеш-памятью и SSD-накопителями. Разработал ее сотрудник компании Samsung, Ким Чэ Гык, а после публикации исходного кода она была доработана другими инженерами компании. F2FS может использоваться на картах памяти SD/MMC, а также со множеством других типов памяти. Для полноценной кастомизации существует целый набор утилит. Из преимуществ можно отметить хорошую гибкость в настройке, высокие показатели сохранения жизненного цикла блоков памяти, а также хранение данных в виде журнала. Хорошую скорость работы обеспечивает то, что индексы данных сохраняются в оперативную память, а поддержка F2FS включена в ядро Linux, начиная с версии 3.8.
4. Ext2-Ext4
Ext2-Ext4 – основные файловые системы Android. Именно они используются для организации работы внутреннего хранилища на большинстве современных гаджетов, и если первые устройства работали под версиями Ext2, то начиная с версии Android 4, основными стали Ext3, а потом и Ext4. Основное отличие между вариациями заключается в наличие журналирования. То есть, если в процессе записи или чтения данных происходит системный сбой, например, неожиданное отключение питания, не произойдет потери или повреждения данных. Несмотря на то, что в основном ФС формата Ext используется в основном в блочных накопителях, пользователи могут установить данный тип и для карт памяти, но без сторонних утилит получить к ним доступ из операционных систем, помимо Linux, будет невозможно. Файловая система флэшки Android обычно форматируются в FAT (VFAT) или NTFS, а флеш-память — в Ext3 или Ext4.
5. UBIFS
mSATA SSD 16 GB Sandisk — SDSA3DD-016G
UBIFS – файловая система, предназначенная исключительно для памяти по типу NAND (флеш-накопители, применяемые на мобильных устройствах). Ее основное преимущество — это снижение износа носителей данных. Состоит такая ФС из двух слоев — UBI (отвечает за работу и связь с физическим носителем) и UBIFS (сама файловая система). Разработчиком UBIFS является компания Nokia, но встретить подобную файловую систему можно не только на оригинальных устройствах от данного производителя, но и на других гаджетах, например, китайского изготовления.
6. Samsung RFS
Samsung RFS – разработанная корейской компанией Samsung файловая система для устройств на базе ОС Linux, а одной из разновидностей последнего является Android. Предназначается фирменная ФС для флеш-памяти NAND и используется во многих гаджетах собственного производства. Для облегчения работы с файлами используется таблица формата FAT, что позволяет максимально просто произвести запись файлов на флэш-память и их чтение. Специфика RFS учитывает особенности NAND накопителей, что позволяет увеличить длительность их эксплуатации, а также снизить вероятность потери данных при системных сбоях и случайных отключениях питания.
7. SDCardFS
Компания Google долгое время использовала в своих устройствах файловую систему FUSE, но она имела ряд недостатков, среди которых необходимо отметить малое количество памяти, выделяемой под приложения под приложения, а также большое потребление хранилища при кэшировнии данных. На замену FUSE пришла SDCardFS, которая решала эти проблемы, но представляла собой своего рода оболочку, эмулирующую FAT32. Она отправляет данные файловым системам нижнего уровня, что позволяет оптимизировать работу смартфонов, а также исправляет ошибки, связанные с передачей данных на компьютер и обратно. SDCardFS по своей сути не является классической файловой системой, но значительно сказывается на скорости работы смартфонов или планшетов на Android.
Выводы
Файловые системы Android самые разнообразные. Среди них есть как общие ФС, предназначенные для работы с ОС на базе Linux, так и специфические, которые используются в NAND-накопителях. Несмотря на такое разнообразие, производители все же прикладывают совместные усилия для продвижения и улучшения той или иной файловой системы, так как именно от работы внутренних составляющих зависит будущее рынка Android-гаджетов.
Стоит также отметить тот факт, что над улучшением различных файловых систем могут одновременно работать конкурирующие концерны, и именно такое объединение заставляет цифровые технологии развиваться, независимо от того, насколько яростна борьба на потребительском рынке. И только производители смартфонов определяют, какая файловая система на Android работает лучше при тех или иных обстоятельствах.
Источник
Что нужно знать об App2sd, и ext3, ext4 разделах
Статья о том, чем отличаются ext3 и ext4, и как с ними работает App2sd.
Источник. Автор перевода: Павел А. Сафронов.
От автора перевода: на сайте-источнике данный материал опубликован довольно давно (19 мая 2011 года), но общий смысл статьи от этого не меняется и основные моменты на 21 октября 2016 остаются актуальными.
Итак, почти у каждого, я думаю, в телефоне есть SD-карта (проще — «карта памяти»), как жесткий диск в любом компьютере, и каждый может «разделить» ее (разбить на два или более разделов из разных файловых систем). Обычно SD-карта имеет один раздел, занимающий весь ее объем, как правило с файловой системой FAT32, которая может хранить изображения, сообщения, почту и т.п.
Также, кроме карты памяти, которой может вовсе не быть, в телефоне существует собственное внутреннее хранилище, внутренняя память (ее еще называют «NAND»). Для Android характерно, что пользователь может устанавливать приложения только во внутреннее хранилище телефона, и не может устанавливать их на SD-карту. Поэтому, даже если в телефоне есть пустая SD-карта объемом 32Гб, а внутренняя память телефона объемом лишь 5Мб, то на такой телефон не удастся установить много приложений, не говоря уже, что с объемом 5Мб и вовсе ничего не установится.
Это сделано для того, чтобы защитить приложения от таких вещей, как пиратство — не так-то просто получить доступ к расположению прилжоений, установленных во внутренней памяти телефона (обычно просто невозможно без прав root (суперпользователя)), поэтому не получится купить приложение, скопировать его, затем вернуть его продавцу с возвратом денег, и установить его из сохраненной копии вновь. Не выйдет.
Для тех, кому нравится устанавливать десятки и сотни приложений, законно, данная ситуация плачевна тем, что свободное место внутренней памяти телефона очень быстро кончается.
В Google придумали способ, чтобы устанавливать приложения на SD-карту. Для этого создается папка, что-то вроде «.android_secure», хранящая (хочется верить) зашифрованные данные приложений, но есть несколько нюансов:
- Приложения не устанавливаются в эту папку автоматически, их нужно вручную «переместить»;
- Не все приложения могут быть перемещены, фактически многие не могут, и разработчики должны обновить эти приложения, сделав эту возможность доступной. Некоторые приложения не могут быть перемещены и не будут обновлены в плане доступности переноса на SD-карту, т.к. разработчики не хотят этого из каких-либо соображений.
- Не все данные приложений могут быть перемещены, большая часть из них — да, но некоторые данные все же хранятся во внутренней памяти, поэтому у неоторых людей свободное место телефона все равно закончится быстро.
- Вы можете «по умолчанию» настроить форсированный перенос ВСЕХ приложений в папку на карте памяти, но это может нарушить работу некоторых из них, таких как виджеты, которые могут не запуститься, пока SD-карта не будет «подготовлена».
До выхода Android Froyo некоторые особенно смышленые люди придумали «Apps2SD». Помните ранее говорилось, что стандартно SD-карта имеет один большой раздел с файловой системой FAT32? Итак, Apps2SD работает с картами, имеющими ДВЕ файловых системы: основную — FAT32 для хранения типовых данных (фото, документы и т.п.), и второстепенную — раздел с файловой системой EXT. EXT это файловая система, такая же как FAT32 или NTFS, но эту файловую систему использует операционная система Android. SD-карта по умолчанию форматируется в FAT32, потому что FAT32 универсальна, ее «увидит» любое устройство, в то время как файловую систему EXT «видит» только операционная система Linux. Но, это отступление от темы.
EXT имеет несколько версий. Наиболее часто встречающаяся — ext3. Основное отличие ext3 от ext2 — журналирование. Проще говоря, если операция (копирование, чтение, запись) будет неожиданно прервана (скажем, выключился телефон), то не должно произойти потери или повреждения данных. Когда мы включаем телефон, часто видим надпись — «Подготовка SD-карты». Подготовка занимает несколько минут, но что происходит в это время — проверка файловой системы на наличие повреждений, в то время, как файловая система FAT (без 32) не «умеет» журналировать. Если вернуться во времена, когда использовалась операционная система Windows 98, вспоминается прекрасный синий экран утилиты «Scandisk», запускавшейся каждый раз, когда работа компьютера не была завершена корректно. Здесь такая же ситуация. Затем на смену пришли ОС Windows 2000/XP с файловой системой NTFS, также с функцией журналирования, уменьшающей вероятность потери данных. Но, я вновь ушел от темы.
Итак, предположим у вас есть карта памяти с файловыми системами EXT и FAT32. В общем не имеет значения, будет EXT версией ext3 или ext4, в данном случае здесь не будет реального преимущества ext4 над ext3. Apps2SD просто запускает специальный скрипт на телефоне, который создает символьные ссылки папок, хранящихся во внутренней памяти телефона, на раздел EXT карты памяти. Символьная ссылка — это как ярлык для папки, невидимый для операционной системы. Другими словами, Android не «знает», что, устанавливая приложение во внутреннюю память телефона, оно на самом деле сохраняется на SD-карту. Это значительно расширяет внутреннюю память телефона от начальных 5Мб, приводимых в примере ранее, до того значения, каоторое було установлено для раздела EXT при форматировании карты памяти (часто 512Мб или 1Гб, зависит от того, сколько программ планируется установить).
Вдобавок, поскольку файловые системы «прожурналированы», их не нужно «подготавливать». Это означает, что они готовы к эксплуатации сразу, как только телелфон загрузился — ваши виджеты и приложения запускаются моментально (в отличие от «форсированнго» запуска в Android Froyo Apps2SD, где виджеты попросту пропадали.
Загвоздка с Apps2SD в том, что сколько бы ни занимал раздел EXT, он будет заимствоваться от SD-карты. Если у вас карта памяти объемом 4 ГБ (где-то около 3,5Гб реально доступного места) и вы сделаете на ней раздел EXT объемом 512Мб, то фактически досутпный объем SD-карты уменьшится до 3Гб. Свободное место на самом деле не потеряно, а используется файловой системой EXT. Если вы отформатируете карту вновь, то снова получите первоначальные 4 (фактические 3,5) Гб.
Наконец, есть разница между «Apps2SD» и «Apps2SD+». Помните, мы говорили, что приложения хранятся в папке на внутренней памяти телефона? Ну, я немного приврал. На самом деле они хранятся в ДВУХ местах. Существует еще одно место — так называемый Dalvik Cache (Далвик Кэш). Вам не стоит беспокоиться о том, для чего он нужен (он создается средой выполнения Java и используется для запуска приложений). Все, что вам нужно знать — приложения используют его, чтобы хранить данные, которые также занимают внутреннюю память телефона. Apps2SD+ умеет перемещать Dalvik Cache в раздел EXT SD-карты, освобождая больше места во внутренней памяти телефона. Некоторые верят, что это может быть в ущерб производительности, т.к. внутренняя память NAND должна быть быстрее, чем память SD-карты (вы могли встречать людей, споривших о том, какой «класс» SD-карты лучше для Apps2SD — смысл в том, что с более быстрой SD-картой будут меньшие потери после переноса данных), но правда такова, что приложения в любом случае запускаются из внутренней памяти, перенос не сильно влияет на производительность. Поскольку многие приложения занимают всего несколько сотен килобай в памяти или пару мегабайт, то это не проблема.
Наонец, любая актуальная версия Apps2SD/Apps2SD+ будет работать с SD-картами которые имеют, либо не имеют файловую систему EXT. При запуске происходит провека на наличие раздела с файловой системой EXT, и, в случае его отсутствия, будет использовано внутреннее хранилище телефона.
Наличие у карты памяти раздела с файловой системой EXT, но БЕЗ использования Apps2SD+ также не вызовет проблем, вы сможете отформатировать карту в любое время, когда захотите, чтобы вернуть первоначальный объем.
- Apps2SD «имитирует» внутреннюю память вашего телефона и сохраняет данные в скрытый раздел на карте памяти;
- Apps2SD+ сохраняет больше данных, освобождая больше места во внутренней памяти телефона;
- «Froyo» Apps2SD имеет разные ограничения, отсутствующие в «старых» apps2SD , но он значитено проще в использовании, т.к. не связан ни с каким делением на разделы.
Источник