Файловая система — это часть операционной системы, которая определяет, как
Обновлено: 21.11.2024
I, определение и типы
Операционная система ( ОС ) может считаться самой важной программой, работающей на компьютере. Каждый компьютер общего назначения должен иметь операционную систему, обеспечивающую программную платформу, поверх которой могут работать другие программы (прикладное программное обеспечение). Это также основная программа управления компьютером, которая планирует задачи, управляет хранилищем и обеспечивает связь с периферийными устройствами. Центральным модулем операционной системы является «ядро». Это часть операционной системы, которая загружается первой и остается в основной памяти. Поскольку он остается в памяти, важно, чтобы ядро было как можно меньше, но при этом предоставляло все основные службы, необходимые для других частей операционной системы и приложений. Как правило, ядро отвечает за управление памятью, процессами и задачами, а также управление дисками.
Как правило, прикладное программное обеспечение должно быть написано для работы поверх определенной операционной системы. Таким образом, ваш выбор операционной системы в значительной степени определяет приложения, которые вы можете запускать. Для ПК наиболее популярными операционными системами являются Windows 95/98, MS-DOS (Microsoft-Disk Operating System), OS/2, но доступны и другие, такие как Linux, BeOS�
Для больших систем операционная система имеет еще большие обязанности и полномочия. Это как гаишник: следит, чтобы разные программы и одновременно запущенные пользователи не мешали друг другу. Операционная система также отвечает за безопасность, гарантируя, что неавторизованные пользователи не получат доступ к системе. С этой точки зрения операционные системы можно классифицировать следующим образом:
Операционная система является 16-разрядной операционной системой, если она одновременно обрабатывает 16 бит данных, например: DOS. С другой стороны, Windows 98 и OS/2 Warp являются 32-разрядными операционными системами, поскольку они могут одновременно обрабатывать 32 бита данных.
Сетевая операционная система (NOS) – это операционная система, которая позволяет компьютерам находиться в сети и управляет различными аспектами сети. Некоторые примеры: Windows для рабочих групп, Windows NT, AppleTalk, DECnet и LANtastic�
II, Управление хранилищем
Операционная система имеет систему управления файлами для организации и отслеживания файлов. Хотя все операционные системы предоставляют собственную систему управления файлами, вы можете установить другую систему управления файлами, взаимодействующую с операционной системой и обеспечивающую дополнительные функции, такие как улучшенные процедуры резервного копирования и более строгая защита файлов. Наиболее часто используемая файловая система — иерархическая, использующая каталоги для организации файлов в древовидную структуру. Может быть одна древовидная структура на единицу хранения или одна древовидная структура, включающая все единицы хранения и представленная некоторыми специальными каталогами.
Каталог – это файл особого типа, используемый для организации других файлов. Он содержит бухгалтерскую информацию о файлах, которые, образно говоря, находятся под ними. Вы можете думать о каталоге как о папке или кабинете, который содержит файлы и, возможно, другие папки. На самом деле, во многих графических пользовательских интерфейсах вместо каталога используется термин «папка».
В компьютерных руководствах каталоги и файловые структуры часто описываются в виде перевернутого дерева. Файлы и каталоги на любом уровне содержатся в каталоге над ними. Самый верхний каталог называется корневым каталогом. Каталог, который находится ниже другого каталога, называется подкаталогом. Каталог над подкаталогом называется родительским каталогом.
Чтобы получить доступ к файлу, вам может потребоваться указать имена всех каталогов над ним, то есть указать его путь доступа (сокращенно: path ). Абсолютный путь файла — это список имен всех каталогов над ним от корня. Операционная система также отслеживает каталог, в котором вы сейчас работаете. Пути, которые не начинаются с корневого каталога, операционная система предполагает, что они начинаются с рабочего каталога; это относительные пути. Каждая операционная система имеет свои правила указания путей. В системах DOS, например, корневой каталог называется «\», родительский каталог может называться «..», а каждый подкаталог отделяется дополнительной обратной косой чертой. В UNIX корневой каталог называется /, а за каждым подкаталогом следует косая черта. В среде Macintosh каталоги разделяются двоеточием.
\DOS\Example.txt и \Other\Mine\Account.xls
..\DOS\Example.txt и Mine\Account.xls
Подстановочный знак — это специальный символ, обозначающий один или несколько символов. Многие операционные системы и приложения поддерживают подстановочные знаки для идентификации файлов и каталогов. Это позволяет выбрать несколько файлов с одной спецификацией.Например, в DOS и Windows звездочка (*) — это подстановочный знак, обозначающий любую комбинацию букв, а вопросительный знак — это подстановочный знак, обозначающий любую отдельную букву. Таким образом, спецификация файла «m*» относится ко всем файлам, начинающимся с m. Точно так же спецификация «m*.doc» относится ко всем файлам, которые начинаются с m и заканчиваются на .doc. Многие текстовые процессоры также поддерживают подстановочные знаки для выполнения текстового поиска.
Разные операционные системы налагают разные ограничения на имена файлов. Большинство операционных систем, например, запрещают использование определенных символов (особенно подстановочных знаков) в имени файла и налагают ограничение на длину имени файла (DOS ограничивает имя файла до 8 символов и расширение до 3 символов). В пределах одного каталога имена файлов должны быть уникальными. Однако два файла в разных каталогах могут иметь одно и то же имя. Некоторые операционные системы, такие как UNIX и операционная система Macintosh, позволяют файлу иметь более одного имени, называемого псевдонимом, ссылкой или символической ссылкой.
При открытии файла операционная система временно присваивает ему номер, который называется дескриптором файла. Операционная система использует дескриптор файла внутри при доступе к файлу. Специальная область основной памяти зарезервирована для дескрипторов файлов, и размер этой области определяет, сколько файлов может быть открыто одновременно. Например, в DOS и Windows вы можете установить максимальное количество открытых файлов с помощью оператора FILES= в файле CONFIG.SYS, который содержит некоторые параметры конфигурации ОС.
Для поиска файлов на диске операционная система использует таблицу: Таблица размещения файлов ( FAT ). Из-за фрагментации файл может быть разделен на множество разделов, разбросанных по диску. FAT отслеживает все эти фрагменты. В системах DOS файлы FAT хранятся в скрытых файлах, называемых файлами FAT. VFAT — это сокращение от Virtual File Allocation Table, файловой системы, используемой в Windows для рабочих групп и Windows 95. VFAT — это 32-разрядная версия старой 16-разрядной FAT, которая поддерживает длинные имена файлов. Новая версия VFAT доступна в Windows 95 OSR 2 и Windows 98: FAT32, которая увеличивает количество битов, используемых для адресации кластеров, а также уменьшает размер каждого кластера. В результате он может поддерживать большие диски (до 2 терабайт) и более эффективное хранение (меньше свободного места).
NTFS — это сокращение от NT File System, одной из файловых систем операционной системы Windows NT (Windows NT также поддерживает файловую систему FAT). В NTFS есть функции для повышения надежности, такие как журналы транзакций, помогающие восстанавливаться после сбоев диска. Чтобы контролировать доступ к файлам, вы можете установить разрешения для каталогов и/или отдельных файлов. Файлы NTFS недоступны из других операционных систем, таких как DOS. Для больших приложений NTFS поддерживает составные тома, что означает, что файлы и каталоги могут быть распределены по нескольким физическим дискам.
Чтобы подготовить носитель данных, обычно диск, к чтению и записи, его необходимо отформатировать. Когда вы форматируете диск, операционная система стирает всю учетную информацию с диска, проверяет диск, чтобы убедиться, что все сектора надежны, помечает плохие сектора (то есть те, которые поцарапаны) и создает внутренние таблицы адресов, которые она позже использует. чтобы найти информацию. Вы должны отформатировать диск, прежде чем сможете его использовать.
III, Пользовательский интерфейс
Как и большая часть программного обеспечения, операционная система имеет пользовательский интерфейс. Пользовательский интерфейс — это часть программы, которая связывает компьютер с человеком-оператором (пользователем). Существуют также интерфейсы для подключения программ, для подключения устройств и для подключения программ к устройствам.
Первым и старейшим типом интерфейса является интерфейс, управляемый командами. Это относится к программам и операционным системам, которые принимают команды в виде специальных слов или букв. Напротив, говорят, что программы, которые позволяют вам выбирать из списка опций в меню, управляются меню. Программное обеспечение, управляемое командами, часто более гибкое, чем программное обеспечение, управляемое меню, но его труднее освоить, поскольку оно требует изучения командного языка. Этот язык представляет собой язык программирования, с помощью которого пользователь общается с операционной системой или приложением. Например, язык команд DOS включает в себя команды DIR, COPY и DEL, и это лишь некоторые из них. Часть операционной системы, отвечающая на команды операционной системы, называется командным процессором. Когда отображается командная строка, командный процессор ожидает команды. После ввода команды командный процессор анализирует синтаксис, чтобы убедиться, что команда действительна, а затем либо выполняет команду, либо выдает предупреждение об ошибке. Другой термин для командного процессора — интерпретатор командной строки.
Графический пользовательский интерфейс (GUI) позволяет вводить команды, указывая и нажимая на объекты, которые появляются на экране. Он использует графические возможности компьютера, чтобы упростить использование программы.Хорошо спроектированные графические пользовательские интерфейсы могут освободить пользователя от изучения сложных командных языков. С другой стороны, многие пользователи считают, что интерфейс, управляемый командами, работает более эффективно, особенно если они уже знают командный язык.
Графические пользовательские интерфейсы, такие как Microsoft Windows и интерфейс Apple Macintosh, содержат следующие основные компоненты:
Первый графический пользовательский интерфейс был разработан Исследовательским центром Xerox Corporation в Пало-Альто в 1970-х годах, но только в 1980-х годах и с появлением Apple Macintosh графические пользовательские интерфейсы стали популярными. Одной из причин их медленного принятия было то, что они требуют значительной мощности процессора и высококачественного монитора, которые до недавнего времени были чрезмерно дорогими.
Помимо своих визуальных компонентов, графические пользовательские интерфейсы также упрощают перемещение данных из одного приложения в другое. Настоящий графический интерфейс включает стандартные форматы для представления текста и графики. Поскольку форматы четко определены, разные программы, работающие под общим графическим интерфейсом, могут совместно использовать данные. Это позволяет, например, скопировать график, созданный программой для работы с электронными таблицами, в документ, созданный текстовым процессором («копировать-вставить»). Для этого операционная система реализует буфер обмена, который представляет собой специальный файл или область памяти (буфер), где данные временно хранятся перед копированием в другое место.
Выражение "перетаскивание" описывает приложения, которые позволяют перетаскивать объекты в определенные места на экране для выполнения над ними действий. Например, в среде Macintosh или в Windows 95/98 можно перетащить документ на значок корзины, чтобы удалить его. При правильной реализации функция перетаскивания работает быстрее и интуитивно понятнее, чем альтернативные варианты, такие как выбор параметров из меню или ввод команд.
Мне интересно, является ли файловая система на устройстве хранения частью ОС?
Я так не думаю. Вместо этого он является частью устройства хранения и существует вне какой-либо ОС, хотя и был создан ОС. Правильно ли я понимаю?
Большинство операционных систем имеют файловую систему, поскольку файловая система является неотъемлемой частью любой современной операционной системы.
Для LVM это часть ОС? Если да, то виртуальная файловая система, построенная на LVM, является частью ОС?
Поскольку сама ОС находится в файловой системе, я бы сказал, что это неотъемлемая часть ОС, и никак иначе.
На самом деле я думаю, что файловая система является обязательным требованием к носителю данных, поскольку ОС может находиться в памяти без использования жесткого диска или другого устройства хранения.
6 ответов 6
Сама файловая система, представленная физическим порядком информации в хранилище-представлении, не зависит от ОС. ОС содержит драйвер, который позволяет ей работать с файловой системой. Некоторые файловые системы могут иметь только одну ОС, которая может с ней общаться, и в этой ОС эта файловая система жестко запрограммирована (вспомните исходную файловую систему Novell NetWare); но это не мешает какому-нибудь предприимчивому человеку просто так написать такой драйвер для другой ОС.
LVM — это не файловая система, это менеджер томов. Менеджеры томов, как и файловые системы, полагаются на данные, хранящиеся в представлении логического хранилища, для дальнейшего определения того, как получить доступ к этому хранилищу для дальнейших логических томов. В случае LVM и Linux, и BSD могут использовать один и тот же формат хранилища для своих соответствующих реализаций LVM.
Диспетчером томов Windows является Dynamic Disk, и некоторые предприимчивые люди создали драйверы Linux для доступа к ним.
Если вы возьмете набор дисков, установите какой-нибудь Linux, настроите их с помощью LVM, установите несколько файловых систем ext3 на логические тома, а затем поместите диски в машину FreeBSD, эта машина FreeBSD сможет читать диски. Наверное. Это связано с тем, что во FreeBSD есть драйверы, которые понимают физическое расположение как LVM, так и ext3, и реализуют необходимую память в ОС и структуры доступа, необходимые для взаимодействия с ними.
драйверы, необходимые для интерпретации схемы хранения, почти всегда находятся "в ОС", но фактическая схема хранения не считается таковой.
Я ответил на этот вопрос на ServerFault. Вот ответ снова:
Проблема здесь в слове "файловая система". В мире POSIX/Unix/Linux оно используется для обозначения нескольких разных вещей.
- «Файловая система» иногда представляет собой всю систему файлов, укорененную в / и представленную прикладному программному обеспечению ядром операционной системы. В этом смысле люди говорят об операционных системах POSIX, например, об «едином дереве файловой системы».
- «Файловая система» иногда представляет собой один (или несколько) фрагментов (или несколько) устройств хранения с прямым доступом или DASD — один или несколько наборов непрерывные секторы диска, отформатированные как единый том с заданным форматом — в соответствии с некоторой схемой разбиения диска.В этом смысле люди говорят, например, о «форматировании моей файловой системы /usr».
- «Файловая система» иногда представляет собой абстрактное объединяемое дерево файлов и каталогов, представленное драйвером файловой системы (т. е. уровнем VFS) остальной части системы. В этом смысле люди говорят, скажем, о «монтировании файловой системы proc в /proc».
Файловая система создается, поддерживается и используется операционной системой, но вы правы, заключая, что ее представление может существовать независимо от операционной системы.
Формального определения "операционной системы" не существует. Некоторые утверждали, что «операционная система» и «API управления файлами» — это одно и то же, а ОС не может ничего делать, кроме как предоставлять анализатор команд. (В конце концов, это все, что первоначально делала MS-DOS.)
Я всегда утверждал, что DOS — это не настоящая операционная система, а задача операционной системы — абстрагировать и виртуализировать аппаратное обеспечение, а также управлять аппаратными ресурсами. DOS по сути ничего из этого не делал.
Что касается того, является ли файловая система частью ОС или частью «устройства хранения данных», многое, в свою очередь, зависит от того, что вы подразумеваете под «файловой системой». Существует физическое расположение, такое как расположение на гибком диске или компакт-диске, и есть ФУНКЦИЯ файловой системы, которая зависит от наличия некоторого разумного объекта (процессора или периферийного процессора), который берет ерунду на диске и возвращает ее. это как осмысленная последовательность байтов. Макет предположительно соответствует какому-то стандарту, поэтому вы можете, например, записать компакт-диск на одном устройстве, а читать/воспроизводить его на другом. Вопрос в том, является ли этот макет «файловой системой» или «система» находится в устройствах, достаточно умных для чтения/записи макета.
В большинстве компьютерных контекстов термин "файловая система" используется для обозначения API-интерфейсов, которые позволяют вам читать/записывать файлы, а также комбинации ЦП и периферийных устройств, работающих под управлением некоторой ОС, которые реализуют эти API — этот термин обычно не относится к физическому формату носителя или отдельным носителям, съемным или нет.
Конкретная реализация является частью ОС. Абстрактная идея, спецификации и сохраненные данные — нет.
Диски и устройства, подобные дисководам, "глупые". Вы запрашиваете у него LBA, он возвращает вам содержащиеся в нем 512, 2048 или 4096 байт; наоборот для письма.
Уровень файловой системы позволяет вам сказать: "Я хочу c:\users\public\documents\whatever.doc" и выполнять с ним потоковые операции (открывать, читать, записывать, искать, закрывать) – он транслируется из мест, адресуемых по имени. к серии запросов на чтение/запись LBA.
Таким образом, уровень файловой системы имеет две стороны: одна сторона взаимодействует с дисковым (или блочным) устройством, а другая — с операционной системой. Здесь в игру вступает специфика операционной системы. Обычно на стороне блочного устройства файловой системы находится драйвер устройства, а на стороне операционной системы — API, используемый приложениями. Но это всего лишь интерфейсы, и они не должны влиять на основную работу уровня файловой системы.
Все файловые системы вызывают запись и чтение дополнительных данных вне файловых данных, чтобы отслеживать информацию о файлах, т. е. записывать разрешения, атрибуты и т. д.
С загрузкой возникает небольшая проблема, связанная с курицей и яйцом: файлы операционной системы хранятся в файловой системе, но как они загружаются, если уровень файловой системы еще не активен? Linux решает эту проблему либо с помощью начального RAM-диска, либо путем встраивания кода файловой системы как части ядра. Windows решает эту проблему, предоставляя загрузчику Windows возможность читать разделы FAT и NTFS. Загрузчики могут быть тупыми, как большинство классических загрузчиков BIOS, которые загружают только LBA 0 и выполняют его, ожидая, что этот код подхватится впоследствии, или довольно умными и с собственными небольшими уровнями файловой системы, такими как UEFI, U-boot и т. д.< /p>
LVM не является файловой системой. Он берет одно или несколько блочных устройств и абстрагирует их в другое «виртуальное» блочное устройство (в /dev/mapper — все, что находится в /dev/mapper, является виртуальным блочным устройством). Вы помещаете файловую систему «поверх» LVM точно так же, как вы помещаете файловую систему «поверх» раздела. LVM — это еще один уровень между одним или несколькими драйверами устройств и файловой системой, преобразующий операции чтения и записи в LBA на виртуальном блочном устройстве для одного или нескольких других блочных устройств. Да, LVM может быть виртуальным блочным устройством, и вы можете иметь их каскад.
Файл – это именованный набор связанной информации, записанный во вторичном хранилище, например на магнитных дисках, магнитных лентах и оптических дисках. В общем случае файл представляет собой последовательность битов, байтов, строк или записей, смысл которых определяется создателем файла и пользователем.
Структура файла
Структура файла должна соответствовать требуемому формату, понятному операционной системе.
Файл имеет определенную структуру в зависимости от его типа.
Текстовый файл – это последовательность символов, организованная в строки.
Исходный файл — это последовательность процедур и функций.
Объектный файл — это последовательность байтов, организованная в блоки, понятные машине.
Когда операционная система определяет различные файловые структуры, она также содержит код для поддержки этой файловой структуры. Unix, MS-DOS поддерживают минимальное количество файловых структур.
Тип файла
Тип файла относится к способности операционной системы различать различные типы файлов, такие как текстовые файлы, исходные файлы, двоичные файлы и т. д. Многие операционные системы поддерживают множество типов файлов. Операционная система, такая как MS-DOS и UNIX, имеет следующие типы файлов —
Обычные файлы
- Это файлы, содержащие информацию о пользователе.
- Они могут содержать текст, базы данных или исполняемую программу.
- Пользователь может применять к таким файлам различные операции, такие как добавление, изменение, удаление или даже удаление всего файла.
Файлы каталога
- Эти файлы содержат список имен файлов и другую информацию, связанную с этими файлами.
Специальные файлы
- Эти файлы также называются файлами устройств.
- Эти файлы представляют физические устройства, такие как диски, терминалы, принтеры, сети, ленточные накопители и т. д.
Эти файлы бывают двух типов —
Специальные файлы символов — данные обрабатываются посимвольно, как в случае с терминалами или принтерами.
Блокировать специальные файлы — данные обрабатываются блоками, как в случае с дисками и лентами.
Механизмы доступа к файлам
Механизм доступа к файлам относится к способу доступа к записям файла. Есть несколько способов доступа к файлам —
- Последовательный доступ
- Прямой/случайный доступ
- Индексированный последовательный доступ
Последовательный доступ
Последовательный доступ — это доступ к записям в некоторой последовательности, т. е. информация в файле обрабатывается по порядку, одна запись за другой. Этот способ доступа является самым примитивным. Пример: компиляторы обычно обращаются к файлам таким образом.
Прямой/случайный доступ
Организация файлов с произвольным доступом обеспечивает прямой доступ к записям.
Каждая запись имеет собственный адрес в файле, с помощью которого к ней можно получить прямой доступ для чтения или записи.
Записи не обязательно должны располагаться в файле в какой-либо последовательности и не должны располагаться в смежных местах на носителе данных.
Индексированный последовательный доступ
- Этот механизм основан на последовательном доступе.
- Для каждого файла создается индекс, содержащий указатели на различные блоки.
- Индекс просматривается последовательно, и его указатель используется для прямого доступа к файлу.
Распределение пространства
Для файлов выделяется дисковое пространство операционной системой. Операционные системы развертываются с использованием трех основных способов выделения дискового пространства для файлов.
Мне интересно, является ли файловая система на устройстве хранения частью ОС?
Я так не думаю. Вместо этого он является частью устройства хранения и существует вне какой-либо ОС, хотя и был создан ОС. Правильно ли я понимаю?
Большинство операционных систем имеют файловую систему, поскольку файловая система является неотъемлемой частью любой современной операционной системы.
Для LVM это часть ОС? Если да, то виртуальная файловая система, построенная на LVM, является частью ОС?
Поскольку сама ОС находится в файловой системе, я бы сказал, что это неотъемлемая часть ОС, и никак иначе.
На самом деле я думаю, что файловая система является обязательным требованием к носителю данных, поскольку ОС может находиться в памяти без использования жесткого диска или другого устройства хранения.
6 ответов 6
Сама файловая система, представленная физическим порядком информации в хранилище-представлении, не зависит от ОС. ОС содержит драйвер, который позволяет ей работать с файловой системой. Некоторые файловые системы могут иметь только одну ОС, которая может с ней общаться, и в этой ОС эта файловая система жестко запрограммирована (вспомните исходную файловую систему Novell NetWare); но это не мешает какому-нибудь предприимчивому человеку просто так написать такой драйвер для другой ОС.
LVM — это не файловая система, это менеджер томов. Менеджеры томов, как и файловые системы, полагаются на данные, хранящиеся в представлении логического хранилища, для дальнейшего определения того, как получить доступ к этому хранилищу для дальнейших логических томов. В случае LVM и Linux, и BSD могут использовать один и тот же формат хранилища для своих соответствующих реализаций LVM.
Диспетчером томов Windows является Dynamic Disk, и некоторые предприимчивые люди создали драйверы Linux для доступа к ним.
Если вы возьмете набор дисков, установите какой-нибудь Linux, настроите их с помощью LVM, установите несколько файловых систем ext3 на логические тома, а затем поместите диски в машину FreeBSD, эта машина FreeBSD сможет читать диски. Наверное. Это связано с тем, что во FreeBSD есть драйверы, которые понимают физическое расположение как LVM, так и ext3, и реализуют необходимую память в ОС и структуры доступа, необходимые для взаимодействия с ними.
драйверы, необходимые для интерпретации схемы хранения, почти всегда находятся "в ОС", но фактическая схема хранения не считается таковой.
Я ответил на этот вопрос на ServerFault. Вот ответ снова:
Проблема здесь в слове "файловая система". В мире POSIX/Unix/Linux оно используется для обозначения нескольких разных вещей.
- «Файловая система» иногда представляет собой всю систему файлов, укорененную в / и представленную прикладному программному обеспечению ядром операционной системы. В этом смысле люди говорят об операционных системах POSIX, например, об «едином дереве файловой системы».
- «Файловая система» иногда представляет собой один (или несколько) фрагментов (или несколько) устройств хранения с прямым доступом или DASD — один или несколько наборов непрерывные секторы диска, отформатированные как единый том с заданным форматом — в соответствии с некоторой схемой разбиения диска. В этом смысле люди говорят, например, о «форматировании моей файловой системы /usr».
- «Файловая система» иногда представляет собой абстрактное объединяемое дерево файлов и каталогов, представленное драйвером файловой системы (т. е. уровнем VFS) остальной части системы. В этом смысле люди говорят, скажем, о «монтировании файловой системы proc в /proc».
Файловая система создается, поддерживается и используется операционной системой, но вы правы, заключая, что ее представление может существовать независимо от операционной системы.
Формального определения "операционной системы" не существует. Некоторые утверждали, что «операционная система» и «API управления файлами» — это одно и то же, а ОС не может ничего делать, кроме как предоставлять анализатор команд. (В конце концов, это все, что первоначально делала MS-DOS.)
Я всегда утверждал, что DOS — это не настоящая операционная система, а задача операционной системы — абстрагировать и виртуализировать аппаратное обеспечение, а также управлять аппаратными ресурсами. DOS по сути ничего из этого не делал.
Что касается того, является ли файловая система частью ОС или частью «устройства хранения данных», многое, в свою очередь, зависит от того, что вы подразумеваете под «файловой системой». Существует физическое расположение, такое как расположение на гибком диске или компакт-диске, и есть ФУНКЦИЯ файловой системы, которая зависит от наличия некоторого разумного объекта (процессора или периферийного процессора), который берет ерунду на диске и возвращает ее. это как осмысленная последовательность байтов. Макет предположительно соответствует какому-то стандарту, поэтому вы можете, например, записать компакт-диск на одном устройстве, а читать/воспроизводить его на другом. Вопрос в том, является ли этот макет «файловой системой» или «система» находится в устройствах, достаточно умных для чтения/записи макета.
В большинстве компьютерных контекстов термин "файловая система" используется для обозначения API-интерфейсов, которые позволяют вам читать/записывать файлы, а также комбинации ЦП и периферийных устройств, работающих под управлением некоторой ОС, которые реализуют эти API — этот термин обычно не относится к физическому формату носителя или отдельным носителям, съемным или нет.
Конкретная реализация является частью ОС. Абстрактная идея, спецификации и сохраненные данные — нет.
Диски и устройства, подобные дисководам, "глупые". Вы запрашиваете у него LBA, он возвращает вам содержащиеся в нем 512, 2048 или 4096 байт; наоборот для письма.
Уровень файловой системы позволяет вам сказать: "Я хочу c:\users\public\documents\whatever.doc" и выполнять с ним потоковые операции (открывать, читать, записывать, искать, закрывать) – он транслируется из мест, адресуемых по имени. к серии запросов на чтение/запись LBA.
Таким образом, уровень файловой системы имеет две стороны: одна сторона взаимодействует с дисковым (или блочным) устройством, а другая — с операционной системой. Здесь в игру вступает специфика операционной системы. Обычно на стороне блочного устройства файловой системы находится драйвер устройства, а на стороне операционной системы — API, используемый приложениями. Но это всего лишь интерфейсы, и они не должны влиять на основную работу уровня файловой системы.
Все файловые системы вызывают запись и чтение дополнительных данных вне файловых данных, чтобы отслеживать информацию о файлах, т. е. записывать разрешения, атрибуты и т. д.
С загрузкой возникает небольшая проблема, связанная с курицей и яйцом: файлы операционной системы хранятся в файловой системе, но как они загружаются, если уровень файловой системы еще не активен? Linux решает эту проблему либо с помощью начального RAM-диска, либо путем встраивания кода файловой системы как части ядра.Windows решает эту проблему, предоставляя загрузчику Windows возможность читать разделы FAT и NTFS. Загрузчики могут быть тупыми, как большинство классических загрузчиков BIOS, которые загружают только LBA 0 и выполняют его, ожидая, что этот код подхватится впоследствии, или довольно умными и с собственными небольшими уровнями файловой системы, такими как UEFI, U-boot и т. д.< /p>
LVM не является файловой системой. Он берет одно или несколько блочных устройств и абстрагирует их в другое «виртуальное» блочное устройство (в /dev/mapper — все, что находится в /dev/mapper, является виртуальным блочным устройством). Вы помещаете файловую систему «поверх» LVM точно так же, как вы помещаете файловую систему «поверх» раздела. LVM — это еще один уровень между одним или несколькими драйверами устройств и файловой системой, преобразующий операции чтения и записи в LBA на виртуальном блочном устройстве для одного или нескольких других блочных устройств. Да, LVM может быть виртуальным блочным устройством, и вы можете иметь их каскад.
Читайте также: