Файловая система OS Android. Введение.

Тема в разделе "Android", создана пользователем ScriptMakeR, 12 ноя 2014.

  1. ScriptMakeR
    Оффлайн

    ScriptMakeR Студент 1 курс

    Сообщения:
    1.307
    Симпатии:
    449
    Скажем так, проба пера.
    И так что же из себя представляют особенности файловой системы OS Android?
    Изначально, пользователь аппарата на OS Android видит привычные память аппарата и память карты памяти. Но, установив какой-нибудь из сторонних файловых менеджеров, да еще и с приобретением прав Root, пользователь может столкнуться с тем, что во, вроде бы, находящейся в памяти аппарата папке отоброжаются папки и файлы из карты памяти.
    Почму это проиодит?
    Очень рекомендую к прочтению Файловая система Ubuntu.
    Дело в том, что в файловой системе OS Android нет привычного разделения на диски, как в OS Windows. Тут все находится в одной корневой папке. Все Ваши флеши, карты и т.д. монтируются/прописываются в указанную папку.
    Если привести аналогию с OS Windows, то выклядит это примерно так. У Вас есть изначальный диск C выполняющий роль корневой папки. Все последующие подключаемые диски/флешки монтируются/отображаются в указанной папке, находящейся на диске C. Физически, у Вас получается несколько разных дисков, а в файловой системе у Вас только одна корневая папка, к которой в указанных местах подключены Ваши диски/флешки. Причем, монтироваться может как диск/флешка целиком, так и отдельная папка. Сразу скажу, что монтировать папку с немонтированного диска/флешки не получится, его (диска/флеши) просто еще нет в системе.
    В OS Android реализовано автоматическое монтирование/подключение дисков/флешек, при этом во встоенных (и большинстве сторонних) файловых менеджерах они отображаются (для удобства пользователя) как отдельные диски/флешки, но, фактически, в файловой систаме они монтируются/прописываются в одну из папок, находящихся в корневой папке.
    Теперь о самом монтировании.
    В монтировании есть два основных пункта. Это точка монтирования и объект монтирования. Точка монтирования - это указанная папка, в которую монтируется объект монтирования. Объект монтирования - это то, что монтируется в точку монтирования.
    Приведу пример, как бы это выглядело на OS Windows. На диске C у меня есть папки Program Files и Windows. В папке Windows я создаю папку Mount и в нее монтирую папку Program Files. Теперь, переходя в папку Windows/Mount/ мне отображается содержимое папки Program Files. При этом, содержимое папки Program Files мне доступно как из самой этой папки, так и из папки Windows/Mount/.
    Надеюсь, я достаточно понятно изъяснил свои мысли.
    Жду замечаний, комментариев и, конечно, критиков.
     
    Drongo, shestale, Kиpилл и ещё 1-му нравится это.
  2. glax24
    Оффлайн

    glax24 Разработчик

    Сообщения:
    2.000
    Симпатии:
    1.450
    Данный пример больше похож на символьную ссылку, а не монтирование. Под монтирование я понимаю, подключение раздела или устройства.
    --- Объединённое сообщение, 12 ноя 2014 ---
    Сами читали?
     
    ScriptMakeR нравится это.
  3. ScriptMakeR
    Оффлайн

    ScriptMakeR Студент 1 курс

    Сообщения:
    1.307
    Симпатии:
    449
    А в тут нет разделения на разделы/устройства/каталоги. Все они монтируются одинаково. Можно монтировать как физический диск, так и логический диск, так и каталог. В самой файловой системе нет разделения на диски. Есть только дерево каталогов.
    Да. Правда давно это было. Пытался изложить наиболее понятным, для неподготовленного пользователя, языком.
     
  4. glax24
    Оффлайн

    glax24 Разработчик

    Сообщения:
    2.000
    Симпатии:
    1.450
    Попробуйте на ubunte смонтировать в /mnt какой нибудь существующий каталог и сообщите о результатах.
    А то что они просто отображаются каталогами это да.
     
    ScriptMakeR нравится это.
  5. ScriptMakeR
    Оффлайн

    ScriptMakeR Студент 1 курс

    Сообщения:
    1.307
    Симпатии:
    449
    glax24,
    Я, конечно, извиняюсь, но я не собираюсь сейчас спорить о принципах монтирования в Linux. Тем более, что я в этом не достаточно подкован. Но, как я уже сказал:
    И как Вы уже сказали:
    Этого, на мой взгляд, достаточно, для того, чтобы иметь начальное представление об особенностях файловой системы OS Android.
    Я просто не знаю, как обычному пользователю по другому объяснить, что тут просто нет никаких дисков/флешек. Физически они есть, а в файловой системе их нет. Т.е. они есть, но не как отдельные диски, а как часть, уже существующей, файловой системы.
    Да, манера изъяснения совсем не точная. Но и указанную мной информацию я сам осознал не с первого прочтения. Поэтому и пытался отобразить все на пальцах.
    Прошу оценивать данный материал, как вводную информацию. Скажим так, предисловие/подготовительная группа.
    Не сочтите это за отказ от критики. Не отрицаю того, что я могу быть не прав. Просто, раз уж пошел разбор полетов, то хотелось бы узнать, что и как нужно изменить. Чтобы и суть сохранить, и в излишние подробности не удариться. Как-никак =введение=.
     
  6. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.224
    Симпатии:
    4.979
    Ничего не могу сказать про linux и убунту,не пользовался.
    Но насчет остального - я лично понял,было интересно.
    По тексту - надо бы оформление красиво сделать и картинки залить.
     
  7. ScriptMakeR
    Оффлайн

    ScriptMakeR Студент 1 курс

    Сообщения:
    1.307
    Симпатии:
    449
    Прав таких не имею :(
    А какими картинками данный текст можно оформить? Пару скринов с файлового менеджера, да профиль самого робота? Что-то не вяжутся у меня картинки с данным текстом.
     
  8. Theriollaria
    Оффлайн

    Theriollaria Активный пользователь

    Сообщения:
    605
    Симпатии:
    869
    Соглашусь с glax24. "Монтирование" -совсем не то слово, которое можно было бы употребить к файловой системе Android. Тем более, Вы ScriptMakeR, сами отметили, что монтирование - тоже штука достаточно широкая (физические, логические разделы можно монтировать). Потому просто замените слово "монтировать" другим применительно к Android и все будет хорошо.
     
    ScriptMakeR нравится это.
  9. ScriptMakeR
    Оффлайн

    ScriptMakeR Студент 1 курс

    Сообщения:
    1.307
    Симпатии:
    449
    Theriollaria,
    Статью перерабатываю, вчера на сон грядущий делал. Замечания принимаю. Постараюсь учесть недочеты, но и оставить все простым языком.
     
  10. Theriollaria
    Оффлайн

    Theriollaria Активный пользователь

    Сообщения:
    605
    Симпатии:
    869
    Либо, если употребляете слово "примонтировать" то уточняйте, что что процесс отличается от классического для линуксоидов. Тогда тоже вопросов и докапываний не будет. Хотя это тоже странно т.к. Андроид, по сути, сам является надстройкой а не полноценной ОС.
     
  11. ScriptMakeR
    Оффлайн

    ScriptMakeR Студент 1 курс

    Сообщения:
    1.307
    Симпатии:
    449
    Theriollaria,
    Хочу еще раз обратить внимание на то, что данный материал нацелен на людей не подкованных в тонкостях и терминах не то что Linux систем, но и любых других ОС в принципе. Я сам не претендую на звание гуру линукса, мне и до уверенного пользователя далеко. Просто, когда человек, не знакомый с некоторыми особенностями данной ФС, вдруг обнаруживает, что содержимое его флешки отображается не только в привычно выделенной флешке, а еще и в трех местах памяти аппарата, возникает вопрос. Как так-то?
     
  12. Theriollaria
    Оффлайн

    Theriollaria Активный пользователь

    Сообщения:
    605
    Симпатии:
    869
    Тогда, как вариант,:


    Если привести аналогию с OS Windows, то выглядит это примерно так. У Вас есть изначальный диск C выполняющий роль корневой папки. Все последующие подключаемые диски/флешки отображаются в указанной папке, находящейся на диске C. При этом, физически, у Вас есть память Android отдельно и отдельно подключаемые устройства.

    Тоже криво но что-то такое надо. А то у Вас несколько предложения подряд описывают одно и тоже. Попробуйте этот момент сократить и поубирать слово "монтируются" т.к, учитывая, широкий круг читающих, вряд ли они понимают значение этого слова.

    PS: У меня было 2 диска "С:\" и один я стер. Потому что зачем мне 2 одинаковых диска "С:\"?:Biggrin:
     
  13. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.492
    Симпатии:
    4.309
    Поддержу glax24 на счет символьных ссылок (точнее говоря, точек монтирования для каталога) и вставлю еще свои 5 копеек.
    Тавтология. Не понятно, что подразумевается. Может, что объекту монтирования еще не назначен идентификатор,
    т.к. устройство не было инициализировано или не подключено.
    Все сказанное - очень и очень относительное различие, тем более что:
    Дело в том, что в Windows можно организовать абсолютно такую же иерархию
    и даже работать с объектами монтирования напрямую, не подключая их к точке монтирования тома.
    Рекомендую для чтения: команда mountvol. Но полный шик начинается с возможности загрузки ОС с виртуального диска VHD,
    который можно создать средствами самой системы командами diskpart.
    К сожалению, про Linux добавить мне нечего, так как мало знаком.
     
    ScriptMakeR и Theriollaria нравится это.
  14. Сашка
    Оффлайн

    Сашка Активный пользователь

    Сообщения:
    4.670
    Симпатии:
    2.650
    Dragokas, ScriptMakeR и Theriollaria нравится это.
  15. -SEM-
    Оффлайн

    -SEM- Пользователь

    Сообщения:
    111
    Симпатии:
    93
    По первой формулировке тоже как-то запутано, мне показалось. Я понял о чем речь...

    А вот скажем, для меня, корневой каталог андроида(с точки зрения школьника) - это бельевая веревка с прищепками)). Можно привесить все что угодно, хоть модули, хоть диски. Причем можно подвесить одну папку как рукава у рубашки - один к веревке, а второй к другой прищепке, на которой уже что-то висит))
     
    Последнее редактирование: 13 ноя 2014
  16. Phoenix
    Оффлайн

    Phoenix Активный пользователь

    Сообщения:
    1.853
    Симпатии:
    1.837
    Команды эмулятора терминала Android
    один ньюанс
    faq
    PHP:
    Теперь нужно примонтировать Ваш Linux раздел (здесь это sda1) и еще несколько важных директорий:
    sudo mount /dev/sda1 /mnt
    sudo mount --bind /dev /mnt/dev
    sudo mount --bind /proc /mnt/proc
    sudo mount --bind /sys  /mnt/sys
    --- Объединённое сообщение, 21 дек 2014, Дата первоначального сообщения: 21 дек 2014 ---
    :~$ mount --help

    Использование:
    mount [-lhV]
    mount -a [options]
    mount [options] [--source] <source> | [--target] <directory>
    mount [options] <source> <directory>
    mount <operation> <mountpoint> [<target>]

    Опции:
    -a, --all mount all filesystems mentioned in fstab
    -c, --no-canonicalize don't canonicalize paths
    -f, --fake dry run; skip the mount(2) syscall
    -F, --fork fork off for each device (use with -a)
    -T, --fstab <path> alternative file to /etc/fstab
    -h, --help display this help text and exit
    -i, --internal-only don't call the mount.<type> helpers
    -l, --show-labels lists all mounts with LABELs
    -n, --no-mtab don't write to /etc/mtab
    -o, --options <list> comma-separated list of mount options
    -O, --test-opts <list> limit the set of filesystems (use with -a)
    -r, --read-only mount the filesystem read-only (same as -o ro)
    -t, --types <list> limit the set of filesystem types
    --source <src> explicitly specifies source (path, label, uuid)
    --target <target> explicitly specifies mountpoint
    -v, --verbose say what is being done
    -V, --version display version information and exit
    -w, --rw, --read-write mount the filesystem read-write (default)

    -h, --help display this help and exit
    -V, --version output version information and exit

    Source:
    -L, --label <label> synonym for LABEL=<label>
    -U, --uuid <uuid> synonym for UUID=<uuid>
    LABEL=<label> specifies device by filesystem label
    UUID=<uuid> specifies device by filesystem UUID
    PARTLABEL=<label> specifies device by partition label
    PARTUUID=<uuid> specifies device by partition UUID
    <device> specifies device by path
    <directory> mountpoint for bind mounts (see --bind/rbind)
    <file> regular file for loopdev setup

    Operations:
    -B, --bind mount a subtree somewhere else (same as -o bind)
    -M, --move move a subtree to some other place
    -R, --rbind mount a subtree and all submounts somewhere else
    --make-shared mark a subtree as shared
    --make-slave mark a subtree as slave
    --make-private mark a subtree as private
    --make-unbindable mark a subtree as unbindable
    --make-rshared recursively mark a whole subtree as shared
    --make-rslave recursively mark a whole subtree as slave
    --make-rprivate recursively mark a whole subtree as private
    --make-runbindable recursively mark a whole subtree as unbindable

    For more details see mount(8)
    :~$ umount --help

    Использование:
    umount [-hV]
    umount -a [options]
    umount [options] <source> | <directory>

    Опции:
    -a, --all unmount all filesystems
    -A, --all-targets unmount all mountpoints for the given device in the
    current namespace
    -c, --no-canonicalize don't canonicalize paths
    -d, --detach-loop if mounted loop device, also free this loop device
    --fake dry run; skip the umount(2) syscall
    -f, --force force unmount (in case of an unreachable NFS system)
    -i, --internal-only don't call the umount.<type> helpers
    -n, --no-mtab don't write to /etc/mtab
    -l, --lazy detach the filesystem now, clean up things later
    -O, --test-opts <list> limit the set of filesystems (use with -a)
    -R, --recursive recursively unmount a target with all its children
    -r, --read-only in case unmounting fails, try to remount read-only
    -t, --types <list> limit the set of filesystem types
    -v, --verbose say what is being done

    -h, --help display this help and exit
    -V, --version output version information and exit

    For more details see umount(8).
     
    orderman, ScriptMakeR, Theriollaria и ещё 1-му нравится это.
  17. ScriptMakeR
    Оффлайн

    ScriptMakeR Студент 1 курс

    Сообщения:
    1.307
    Симпатии:
    449
    Что ж. Мысли в слух.
    На досуге обратился к гуглу, для разъяснения вопроса. Информации много, но, как на зло, вся она раскидана по разным местам, да еще и на буржуйском языке.
    Если хватит мозгов, то соберу все это в одну кучку и постараюсь изложить простым и понятным языком.
    В самой файловой системе присутствует множество точек монтирования и симлинков. Плюс, еще не совсем мной осознанная файловая система в пользовательском пространстве (FUSE). Хотелось бы собрать наиболее полную информацию по сабжу, но не перегруженную тех. терминами и понятную простому обывателю.
     
    Dragokas и Phoenix нравится это.
  18. Phoenix
    Оффлайн

    Phoenix Активный пользователь

    Сообщения:
    1.853
    Симпатии:
    1.837
    В моём примере загрузочные файлы монтируются в /mnt , производится настройка, потом отмонтируется обратно в /
    p.s. imho То есть это делается для разблокировки работающих файлов и устройств, так как иначе они будут не доступны на изменение.

     
    Последнее редактирование: 22 дек 2014
  19. ScriptMakeR
    Оффлайн

    ScriptMakeR Студент 1 курс

    Сообщения:
    1.307
    Симпатии:
    449
    Phoenix,
    Дело в том, что в Вашем примере идет речь про восстановление загрузчика Linux. К Android данная информация относится весьма относительно. Извиняюсь за тавтологию :)
    Там все ох как интересно. Но, постепенно, в голове складывается более менее осознанная картинка. Мешает то, что его версий ужасно много. И так же, ну или почти так же, много вариаций монтирования основных разделов. Есть между ними много общего, но некоторые особенности могут кардинально отличаться. Каждый производитель изгаляется как хочет.
     
    Phoenix нравится это.

Поделиться этой страницей