Однородность файлов Linux

Как это происходит, если вы находитесь в папке с различными файлами — изображениями, бинарными исполняемыми файлами, скриптами, даже каталогами, zip-файлами, почти обо всем – как это происходит, когда вы нажимаете ls -l , вы получаете результат что похоже (для формы) для всех файлов?

Это похоже на то, что файлы сами по себе помещаются в суперфайлы, которые являются однородными и содержат метаданные, вроде структуры блока управления процессами.

И как получится, что файлы, которые вы ожидаете, не будут иметь никакого отношения к Unix или Linux, не представляют проблемы? Есть ли как препроцессор файловой системы для работы с файлами из мира Windows? Или файлы, которые кросс-платформенные, что это не нужно? (Это было бы что-то!)

Есть ли способ увидеть этот скрытый (?) Слой? (Даже HTML (не говоря уже о Lisp и т. Д.) Трудно понять, просто прочитав об этом, но когда вы это видите, вы сразу поймете.)

  • Сценарий разрешения FS
  • найти причину повреждения файла при копировании файлов на сетевой ресурс на машине Ubuntu
  • Корневая файловая система vs файловая система раздела
  • Что такое btrfs generation_errs?
  • Почему cd-ing для // устанавливает PWD на //, но больше слэшей просто дает /?
  • Не удалось удалить файлы с USB-накопителя (ни по dd / dev / zero, ни по rm -r)
  • Разметка массива RAID неверно заявляет, что она заполнена
  • Как перейти из одной файловой системы в другую без изменения структуры каталогов?
  • 2 Solutions collect form web for “Однородность файлов Linux”

    Вы получили почти точно правильные ответы. Вам просто нужны детали.

    По большей части (исключение специальных файлов) каждый файл обрабатывается точно так же, и каталоги (например, «папки») могут быть фактически реализованы в виде файлов. Файлы на самом деле всего лишь серия блоков диска. «Метаданные», которые вы пишете, называются «inodes» (см. Раздел « Что такое Superblock, Inode, Dentry, File и What is inode на этом сайте»). Каталоги (или «папки») – это просто способ сопоставления имени файла с inode. Метаданные, кроме имени (тип файла, разрешения, владельцы и т. Д.), Живут в inode. Эти метаданные находятся в двоичной форме, в основном для компактности и скорости доступа: синтаксический анализ XML или даже любого другого текстового формата займет слишком много времени.

    Вы можете увидеть текстовое представление метаданных файла с помощью команды stat /bin/cat : stat /bin/cat вас заинтересовать. stat – это команда GNU, поэтому она не будет общедоступной, но большинство дистрибутивов Linux должны иметь ее.

    Что касается «чужих» файлов, то концепция файла / inode / directory происходит от времени, когда изменчивость операционных систм была намного больше, чем сегодня. Разработчики Unix и его исходной файловой системы имели большой опыт работы с тем, что сегодня будет считаться очень странными операционными системами и файловыми системами. Концепция file / inode / directory почти наверняка воплощает в себе все их переживания, и поэтому мягкие вариации в «том, что является файлом», который обеспечивают сегодня более однородные ОС, на самом деле не проблема. Для получения этого от 20 лет назад см. «Файловая система» принадлежит в ядре . Немного более свежий пример см. В разделе Hideoous Name . Это сообщение в блоге Russ Cox, также прочитайте статью Роб Пайка в блогах, а также. Вы получите от него просветление.

    Все файлы представляют собой последовательность байтов под капотом. Неважно, что в них. Системе нужно только знать, сколько байтов есть в файле, и организовать место для хранения этих байтов. Независимо от содержимого файла, это куча байтов.

    Для каждого файла система также хранит некоторые метаданные . Метаданные не зависят от содержимого файла; на самом деле вы можете сказать, что контент является одним из этих элементов метаданных (но его обычно рассматривают отдельно, потому что контент имеет переменный размер и потенциально может быть очень большим). Какие метаданные хранятся, зависит от типа файловой системы . Файловые системы Unix обычно предоставляют то, что вы видите в ls : разрешениях, времени модификации и т. Д. Имя файла также является частью метаданных со слегка особым статусом: оно уникально, т. Е. Не может быть двух файлов с одинаковым именем (в том же каталоге).

    Файлы организованы в каталогах . Каталог может содержать обычные файлы, подкаталоги и некоторые специальные типы файлов, такие как символические ссылки . Существует каталог, называемый корневым каталогом, который все каталоги являются подкаталогами n раз удалены.

    Путь к файлу указывает, как найти его, начиная с корневого каталога. Каждому каталогу, который нужно пройти, задается поочередно, переходя от корня вниз, с косой чертой / символами после каждого имени каталога. Например, /usr/bin/env означает запуск в корневом каталоге / , перейдите в поддиректорию usr , перейдите в подкаталог bin и найдите элемент env в этом подкаталоге.

    Когда вы указываете содержимое каталога, ядро (включая драйверы файловой системы) выполняет задание чтения байтов, представляющих каталог на диске, и преобразует их в список имен файлов, метаданных и содержимого. Программа ls вызывает функцию opendir для открытия каталога, а затем делает повторные вызовы readdir для чтения каждой записи в каталоге по очереди, то есть для получения списка имен файлов в этом каталоге (включая подкаталоги и другие специальные файлы). В ls -l программе ls требуется больше информации о файле, чем просто имя, поэтому он также вызывает stat для извлечения метаданных каждого файла.

    Некоторые операционные системы позволяют просматривать представление на диске на диске с любой программой просмотра текста, такой как cat . Однако Linux не позволяет вам. Вы можете использовать программу debugfs для изучения файловой системы (используйте ее только в режиме только для чтения!).

    Interesting Posts

    Ответы от многоадресной рассылки 255.255.255.255

    Что происходит с моими файлами, если я scp-ed в не существующую директорию

    Что такое «структуры данных ядра»?

    Пользовательский графический интерфейс без среды рабочего стола

    GNOME 3 Различные параметры меню для пользователя root и пользователя

    Как я могу проверить наличие плохих блоков на физическом томе LVM?

    Используйте imagemagick для преобразования непрозрачного цвета в альфа

    Есть ли способ манипулировать строками в правилах проверки перед отправкой?

    Как установить все видеокоды в vlc-плеер?

    Один вкладыш для заполнения колонок (аналогично printf) вывода из предыдущей команды трубы?

    Счет электронной почты в автономном режиме не соответствует настройкам Gmail

    Как исправить загрузку в приглашение initramfs и «mount: не могу прочитать» / etc / fstab: Нет такого файла или каталога »и« Нет init found »?

    Добавление новых пакетов на сервер репозитория

    Использование FFMPEG для потоковой передачи в Twitch.tv с помощью настольного аудио?

    Перемещение / usr / lib без нарушения всего

    Linux и Unix - лучшая ОС в мире.