Файловая система: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Спасено источников — 1, отмечено мёртвыми — 0. Сообщить об ошибке. См. FAQ.) #IABot (v2.0.9.5
 
(не показано 15 промежуточных версий 13 участников)
Строка 1: Строка 1:
{{Обобщённая архитектура ОС}}{{ук}}
{{ук}}
'''Фа́йловая систе́ма''' ({{lang-en|file system}}) — порядок, определяющий способ организации, хранения и именования данных на [[носитель информации|носителях информации]] в компьютерах, а также в другом [[электроника|электронном]] оборудовании: [[цифровой фотоаппарат|цифровых фотоаппаратах]], [[мобильный телефон|мобильных телефонах]] и т. п. Файловая система определяет [[формат файла|формат]] содержимого и способ физического хранения информации, которую принято группировать в виде [[файл]]ов. Конкретная файловая система определяет размер имен файлов (и [[Каталог (файловая система)|каталогов]]), максимальный возможный размер файла и раздела, набор [[Файл#Свойства файла|атрибутов]] файла. Некоторые файловые системы предоставляют сервисные возможности, например, [[Права доступа|разграничение доступа]] или [[шифрование]] файлов.
'''Фа́йловая систе́ма''' ({{lang-en|file system}}) — порядок, определяющий способ организации, хранения и именования данных на [[носитель информации|носителях информации]] в компьютерах, а также в другом [[электроника|электронном]] оборудовании: [[цифровой фотоаппарат|цифровых фотоаппаратах]], [[мобильный телефон|мобильных телефонах]] и т. п. Файловая система определяет [[формат файла|формат]] содержимого и способ физического хранения информации, которую принято группировать в виде [[файл]]ов. Конкретная файловая система определяет размер имен файлов (и [[Каталог (файловая система)|каталогов]]), максимальный возможный размер файла и раздела, набор [[Файл#Свойства файла|атрибутов]] файла. Некоторые файловые системы предоставляют сервисные возможности, например, [[Права доступа|разграничение доступа]] или [[шифрование]] файлов.


Файловая система связывает [[носитель информации]] с одной стороны и [[интерфейс программирования приложений|API]] для доступа к файлам — с другой. Когда прикладная программа обращается к файлу, она не имеет никакого представления о том, каким образом расположена информация в конкретном файле, так же как и о том, на каком физическом типе носителя ([[Компакт-диск|CD]], [[жёсткий диск|жёстком диске]], [[магнитная лента|магнитной ленте]], блоке [[флэш-память|флеш-памяти]] или другом) он записан. Всё, что знает программа — это имя файла, его размер и атрибуты. Эти данные она получает от [[драйвер]]а файловой системы. Именно файловая система устанавливает, где и как будет записан файл на физическом носителе (например, жёстком диске).
Файловая система связывает [[носитель информации]] с одной стороны и [[интерфейс программирования приложений|API]] для доступа к файлам — с другой. Когда прикладная программа обращается к файлу, она не имеет никакого представления о том, каким образом расположена информация в конкретном файле, так же как и о том, на каком физическом типе носителя ([[Компакт-диск|CD]], [[жёсткий диск|жёстком диске]], [[магнитная лента|магнитной ленте]], блоке [[флэш-память|флеш-памяти]] или другом) он записан. Всё, что знает программа — это имя файла, его размер и атрибуты. Эти данные она получает от [[драйвер]]а файловой системы. Именно файловая система устанавливает, где и как будет записан файл на физическом носителе (например, жёстком диске).


С точки зрения [[операционная система|операционной системы]] (ОС), весь диск представляет собой набор [[Кластер (единица хранения данных)|кластеров]] (как правило, размером, кратным 512 [[байт]])<ref>В современных (2010 год) жёстких дисках размер [[Кластер (единица хранения данных)|кластера]] [[Жёсткий диск#Адресация данных|стал 4096 байт]]</ref>. Драйверы файловой системы организуют кластеры в файлы и каталоги (реально являющиеся файлами, содержащими список файлов в этом каталоге). Эти же драйверы отслеживают, какие из кластеров в настоящее время используются, какие свободны, какие помечены как неисправные.
С точки зрения [[операционная система|операционной системы]] (ОС), весь диск представляет собой набор [[Кластер (единица хранения данных)|кластеров]] (как правило, размером, кратным 512 [[байт]])<ref>В современных (2010 год) жёстких дисках размер [[Кластер (единица хранения данных)|кластера]] [[Жёсткий диск#Адресация данных|стал 4096 байт]]</ref>. Драйверы файловой системы организуют кластеры в файлы и каталоги (реально являющиеся файлами, содержащими список файлов в этом каталоге). Эти же драйверы отслеживают, какие из кластеров в настоящее время используются, какие свободны, какие помечены как неисправные.


Однако файловая система не обязательно напрямую связана с физическим [[носитель информации|носителем информации]]. Существуют [[Виртуальная файловая система|виртуальные файловые системы]], а также [[компьютерная сеть|сетевые]] файловые системы, которые являются лишь способом доступа к файлам, находящимся на удалённом компьютере.
Однако файловая система не обязательно напрямую связана с физическим [[носитель информации|носителем информации]]. Существуют [[Виртуальная файловая система|виртуальные файловые системы]], а также [[компьютерная сеть|сетевые]] файловые системы, которые являются лишь способом доступа к файлам, находящимся на удалённом компьютере.
Строка 11: Строка 11:
Практически всегда файлы на дисках объединяются в ''[[Папка (файловая система)|каталоги]]''.
Практически всегда файлы на дисках объединяются в ''[[Папка (файловая система)|каталоги]]''.


В простейшем случае все файлы на данном диске хранятся в одном каталоге. Такая ''одноуровневая'' схема использовалась в [[CP/M]] и в первой версии [[MS-DOS]] 1.0. ''Иерархическая файловая система'' со вложенными друг в друга каталогами впервые появилась в [[Multics]], затем - в [[UNIX]].
В простейшем случае все файлы на данном диске хранятся в одном каталоге. Такая ''одноуровневая'' схема использовалась в [[CP/M]] и в первой версии [[MS-DOS]] 1.0. ''Иерархическая файловая система'' со вложенными друг в друга каталогами впервые появилась в [[Multics]], затем — в [[UNIX]].


В настоящее время одноуровневые файловые системы используются очень редко, за исключением устройств с малой вычислительной мощностью и объёмом памяти, например, [[микроконтроллер]]а [[ESP8266]], использующий в собственной [[Флеш-память|флэш-памяти]] (до 16 Мб) собственную файловую систему [[SPIFFS]].
В настоящее время одноуровневые файловые системы используются очень редко, за исключением устройств с малой вычислительной мощностью и объёмом памяти, например, [[микроконтроллер]]а [[ESP8266]], использующего в собственной [[Флеш-память|флэш-памяти]] (до 16 Мб) собственную файловую систему [[SPIFFS]].


Wiki.txt
Wiki.txt
Строка 75: Строка 75:


* размещение и упорядочивание на носителе данных в виде файлов;
* размещение и упорядочивание на носителе данных в виде файлов;
* определение максимально поддерживаемого объема данных на носителе информации;
* определение максимально поддерживаемого объёма данных на носителе информации;
* создание, чтение и удаление файлов;
* создание, чтение и удаление файлов;
* назначение и изменение атрибутов файлов (размер, время создания и изменения, владелец и создатель файла, доступен только для чтения, скрытый файл, временный файл, архивный, исполняемый, максимальная длина имени файла и т. п.);
* назначение и изменение атрибутов файлов (размер, время создания и изменения, владелец и создатель файла, доступен только для чтения, скрытый файл, временный файл, архивный, исполняемый, максимальная длина имени файла и т. п.);
Строка 83: Строка 83:
По предназначению файловые системы можно классифицировать на нижеследующие категории.
По предназначению файловые системы можно классифицировать на нижеследующие категории.


* Для носителей с [[произвольный доступ|произвольным доступом]] (например, [[жёсткий диск]]): [[FAT32]], [[HPFS]], [[ext2]] и др. Поскольку доступ к дискам в несколько раз медленнее, чем доступ к оперативной памяти, для прироста производительности во многих файловых системах применяется асинхронная запись изменений на диск. Для этого применяется либо [[журналируемая файловая система|журналирование]], например, в [[ext3]], [[ReiserFS]], [[JFS]], [[NTFS]], [[XFS]], либо механизм [[soft updates]] и др. Журналирование широко распространено в Linux, применяется в NTFS. [[Soft updates]] — в BSD системах.
* Для носителей с [[произвольный доступ|произвольным доступом]] (например, [[жёсткий диск]]): [[FAT32]], [[HPFS]], [[ext2]]/[[ext3]]/[[ext4]] и др. Поскольку доступ к дискам в несколько раз медленнее, чем доступ к оперативной памяти, для прироста производительности во многих файловых системах применяется асинхронная запись изменений на диск. Для этого применяется либо [[журналируемая файловая система|журналирование]], например, в [[ext3]], [[ReiserFS]], [[JFS]], [[NTFS]], [[XFS]], либо механизм [[soft updates]] и др. Журналирование широко распространено в Linux, применяется в NTFS. [[Soft updates]] — в BSD системах.
* Для носителей с [[последовательный доступ|последовательным доступом]] (например, [[магнитная лента|магнитные ленты]]): [[QIC]] и др.
* Для носителей с [[последовательный доступ|последовательным доступом]] (например, [[магнитная лента|магнитные ленты]]): [[QIC]] и др.
* Для оптических носителей — [[Компакт-диск|CD]] и [[DVD]]: [[ISO9660]], [[HFS (файловая система)|HFS]], [[Universal Disk Format|UDF]] и др.
* Для оптических носителей — [[Компакт-диск|CD]] и [[DVD]]: [[ISO9660]], [[HFS (файловая система)|HFS]], [[Universal Disk Format|UDF]] и др.
* [[Виртуальная файловая система|Виртуальные файловые системы]]: [[AEFS]] и др.
* [[Виртуальная файловая система|Виртуальные файловые системы]]: [[AEFS]] и др.
* Сетевые файловые системы: [[Network File System|NFS]], [[CIFS]], [[SSHFS]], [http://arquivo.pt/wayback/20090707151753/http%3A//richard.jones.name/google%2Dhacks/gmail%2Dfilesystem/gmail%2Dfilesystem.html GmailFS] и др.
* Сетевые файловые системы: [[Network File System|NFS]], [[CIFS]], [[SSHFS]], [http://arquivo.pt/wayback/20090707151753/http%3A//richard.jones.name/google%2Dhacks/gmail%2Dfilesystem/gmail%2Dfilesystem.html GmailFS] и др.
* Для флэш-памяти: [[YAFFS]], [[ExtremeFFS]], [[exFAT]].
* Для флэш-памяти: [[YAFFS]], [[ExtremeFFS]], [[exFAT]], [[F2FS]].
* Немного выпадают из общей классификации специализированные файловые системы: [[ZFS]] (собственно файловой системой является только часть ZFS), {{нп5|VMware VMFS||en|VMware VMFS}} (т. н. кластерная файловая система, которая предназначена для хранения других файловых систем) и др.
* Немного выпадают из общей классификации специализированные файловые системы: [[ZFS]] (собственно файловой системой является только часть ZFS), {{нп5|VMware VMFS||en|VMware VMFS}} (т. н. кластерная файловая система, которая предназначена для хранения других файловых систем) и др.


Строка 102: Строка 102:
В многопользовательских системах появляется ещё одна задача: защита файлов одного пользователя от несанкционированного доступа другого пользователя, а также обеспечение совместной работы с файлами, к примеру, при открытии файла одним из пользователей, для других этот же файл временно будет доступен в режиме «только чтение».
В многопользовательских системах появляется ещё одна задача: защита файлов одного пользователя от несанкционированного доступа другого пользователя, а также обеспечение совместной работы с файлами, к примеру, при открытии файла одним из пользователей, для других этот же файл временно будет доступен в режиме «только чтение».


ФС позволяет оперировать не нулями и единицами, а более удобными и понятными объектами — файлами. Ради удобства в работе с файлами используются их символьные идентификаторы — имена. Само содержимое файлов записано в ''кластеры'' (''clusters'') — мельчайшие единицы данных, которыми оперирует файловая система, размер их кратен 512 байтам (512 байт — размер сектора жесткого диска, минимальной единицы данных, которая считывается с диска или записывается на диск)<ref>[[Жёсткий диск|В современных (2010 год) жёстких дисках размер кластера стал 4096 байт]]</ref>. Для организации информации, кроме имени файла, используются также каталоги (или папки), как некая абстракция, позволяющая группировать файлы по определённому критерию. По своей сути каталог — это файл, содержащий информацию о как бы вложенных в него каталогах и файлах.
ФС позволяет оперировать не нулями и единицами, а более удобными и понятными объектами — файлами. Ради удобства в работе с файлами используются их символьные идентификаторы — имена. Само содержимое файлов записано в ''кластеры'' (''clusters'') — мельчайшие единицы данных, которыми оперирует файловая система, размер их кратен 512 байтам. 512 байт — размер сектора у старых жёстких дисков, минимальной единицы данных, которая считывалась или записывалась на них ([[Жёсткий диск|К 2000-м годам типичным размером кластера стал 4096 байт]]). Для организации информации, кроме имени файла, используются также каталоги (или папки), как некая абстракция, позволяющая группировать файлы по определённому критерию. По своей сути каталог — это файл, содержащий информацию о как бы вложенных в него каталогах и файлах.


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


На жёстких дисках компьютеров под управлением систем семейства Windows используются два типа файловых систем: '''FAT''' (FAT16 и FAT32) и '''NTFS'''.
На жёстких дисках компьютеров под управлением систем семейства Windows используются три типа файловых систем: '''FAT''' (FAT16 и FAT32), '''NTFS''' и '''ReFS'''<ref>{{Cite web|url=https://learn.microsoft.com/en-us/windows-server/storage/refs/refs-overview|title=Resilient File System (ReFS) overview|lang=en|author=Billy Smolen, Microsoft|website=Microsoft Learn|date=2023-02-15|publisher=Microsoft|url-status=live|access-date=2024-01-17|archive-date=2024-01-05|archive-url=https://web.archive.org/web/20240105230740/https://learn.microsoft.com/en-us/windows-server/storage/refs/refs-overview}}</ref>.


== Примечания ==
== Примечания ==

Текущая версия от 02:20, 6 октября 2024

Операционная система
ПользовательПрикладное ПООперационная системаАппаратное обеспечение
Схема изображает взаимодействие ОС со всеми необходимыми компонентами.
Основные возможности
Файловая система
Изображение
Логотип Викисклада Медиафайлы на Викискладе

Фа́йловая систе́ма (англ. file system) — порядок, определяющий способ организации, хранения и именования данных на носителях информации в компьютерах, а также в другом электронном оборудовании: цифровых фотоаппаратах, мобильных телефонах и т. п. Файловая система определяет формат содержимого и способ физического хранения информации, которую принято группировать в виде файлов. Конкретная файловая система определяет размер имен файлов (и каталогов), максимальный возможный размер файла и раздела, набор атрибутов файла. Некоторые файловые системы предоставляют сервисные возможности, например, разграничение доступа или шифрование файлов.

Файловая система связывает носитель информации с одной стороны и API для доступа к файлам — с другой. Когда прикладная программа обращается к файлу, она не имеет никакого представления о том, каким образом расположена информация в конкретном файле, так же как и о том, на каком физическом типе носителя (CD, жёстком диске, магнитной ленте, блоке флеш-памяти или другом) он записан. Всё, что знает программа — это имя файла, его размер и атрибуты. Эти данные она получает от драйвера файловой системы. Именно файловая система устанавливает, где и как будет записан файл на физическом носителе (например, жёстком диске).

С точки зрения операционной системы (ОС), весь диск представляет собой набор кластеров (как правило, размером, кратным 512 байт)[1]. Драйверы файловой системы организуют кластеры в файлы и каталоги (реально являющиеся файлами, содержащими список файлов в этом каталоге). Эти же драйверы отслеживают, какие из кластеров в настоящее время используются, какие свободны, какие помечены как неисправные.

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

Иерархия каталогов

[править | править код]

Практически всегда файлы на дисках объединяются в каталоги.

В простейшем случае все файлы на данном диске хранятся в одном каталоге. Такая одноуровневая схема использовалась в CP/M и в первой версии MS-DOS 1.0. Иерархическая файловая система со вложенными друг в друга каталогами впервые появилась в Multics, затем — в UNIX.

В настоящее время одноуровневые файловые системы используются очень редко, за исключением устройств с малой вычислительной мощностью и объёмом памяти, например, микроконтроллера ESP8266, использующего в собственной флэш-памяти (до 16 Мб) собственную файловую систему SPIFFS.

Wiki.txt
Tornado.jpg
Notepad.exe
(Одноуровневая файловая система)

Каталоги на разных дисках могут образовывать несколько отдельных деревьев, как в DOS/Windows, или же объединяться в одно дерево, общее для всех дисков, как в UNIX-подобных системах.

C:
  \Program files
      \CDEx
           \CDEx.exe
           \CDEx.hlp
           \mppenc.exe
  \Мои документы
      \Wiki.txt
      \Tornado.jpg
D:
  \Music
      \ABBA
           \1974 Waterloo
           \1976 Arrival
               \Money, Money, Money.ogg
           \1977 The Album
(Иерархическая файловая система Windows/DOS)

В UNIX существует только один корневой каталог, а все остальные файлы и каталоги вложены в него. Чтобы получить доступ к файлам и каталогам на каком-нибудь диске, необходимо смонтировать этот диск командой mount. Например, чтобы открыть файлы на CD, нужно, говоря простым языком, сказать операционной системе: «возьми файловую систему на этом компакт-диске и покажи её в каталоге /mnt/cdrom». Все файлы и каталоги, находящиеся на CD, появятся в этом каталоге /mnt/cdrom, который называется точкой монтирования (англ. mount point).[2] В большинстве UNIX-подобных систем съёмные диски (дискеты и CD), флеш-накопители и другие внешние устройства хранения данных монтируют в каталог /mnt, /mount или /media. Unix и UNIX-подобные операционные системы также позволяют автоматически монтировать диски при загрузке операционной системы.

/
    /usr                                  
        /bin                              
            /arch                        
            /ls                         
            /raw                     
        /lib                           
            /libhistory.so.5.2           
            /libgpm.so.1                
    /home                                
        /lost+found                      
            /host.sh                    
        /guest                         
            /Pictures                   
                /example.png        
            /Video                     
                /matrix.avi            
                /news                
                    /lost_ship.mpeg    
(Иерархическая файловая система в Unix и UNIX-подобных операционных системах)

Обратите внимание на использование слешей в файловых системах Windows, UNIX и UNIX-подобных операционных системах (в Windows используется обратный слеш «\», а в UNIX и UNIX-подобных операционных системах — простой слеш «/»)

Кроме того, вышеописанная система позволяет монтировать не только файловые системы физических устройств, но и отдельные каталоги (параметр --bind) или, например, образ ISO (опция loop). Такие надстройки, как FUSE, позволяют также монтировать, например, целый каталог на FTP и ещё очень большое количество различных ресурсов.

Ещё более сложная структура применяется в NTFS и HFS. В этих файловых системах каждый файл представляет собой набор атрибутов. Атрибутами считаются не только традиционные только для чтения, системный, но и имя файла, размер и даже содержимое. Таким образом, для NTFS и HFS то, что хранится в файле, — это всего лишь один из его атрибутов.

Если следовать этой логике, один файл может иметь несколько вариантов содержимого[источник не указан 2351 день]. Таким образом, в одном файле можно хранить несколько версий одного документа, а также дополнительные данные (значок файла, связанная с файлом программа). Такая организация типична для HFS на Macintosh.

Основные функции файловых систем

[править | править код]

Основными функциями файловой системы являются:

  • размещение и упорядочивание на носителе данных в виде файлов;
  • определение максимально поддерживаемого объёма данных на носителе информации;
  • создание, чтение и удаление файлов;
  • назначение и изменение атрибутов файлов (размер, время создания и изменения, владелец и создатель файла, доступен только для чтения, скрытый файл, временный файл, архивный, исполняемый, максимальная длина имени файла и т. п.);
  • определение

Классификация файловых систем

[править | править код]

По предназначению файловые системы можно классифицировать на нижеследующие категории.

Задачи файловой системы

[править | править код]

Основные функции любой файловой системы нацелены на решение следующих задач:

  • именование файлов;
  • программный интерфейс работы с файлами для приложений;
  • отображения логической модели файловой системы на физическую организацию хранилища данных;
  • организация устойчивости файловой системы к сбоям питания, ошибкам аппаратных и программных средств;
  • содержание параметров файла, необходимых для правильного его взаимодействия с другими объектами системы (ядро, приложения и пр.).

В многопользовательских системах появляется ещё одна задача: защита файлов одного пользователя от несанкционированного доступа другого пользователя, а также обеспечение совместной работы с файлами, к примеру, при открытии файла одним из пользователей, для других этот же файл временно будет доступен в режиме «только чтение».

ФС позволяет оперировать не нулями и единицами, а более удобными и понятными объектами — файлами. Ради удобства в работе с файлами используются их символьные идентификаторы — имена. Само содержимое файлов записано в кластеры (clusters) — мельчайшие единицы данных, которыми оперирует файловая система, размер их кратен 512 байтам. 512 байт — размер сектора у старых жёстких дисков, минимальной единицы данных, которая считывалась или записывалась на них (К 2000-м годам типичным размером кластера стал 4096 байт). Для организации информации, кроме имени файла, используются также каталоги (или папки), как некая абстракция, позволяющая группировать файлы по определённому критерию. По своей сути каталог — это файл, содержащий информацию о как бы вложенных в него каталогах и файлах.

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

На жёстких дисках компьютеров под управлением систем семейства Windows используются три типа файловых систем: FAT (FAT16 и FAT32), NTFS и ReFS[3].

Примечания

[править | править код]
  1. В современных (2010 год) жёстких дисках размер кластера стал 4096 байт
  2. Здесь создаётся виртуальная файловая система, служащая стыковочным элементом между разными форматами файловых систем
  3. Billy Smolen, Microsoft. Resilient File System (ReFS) overview (англ.). Microsoft Learn. Microsoft (15 февраля 2023). Дата обращения: 17 января 2024. Архивировано 5 января 2024 года.

Литература

[править | править код]
  • Александр Толстой. Сравнение: Файловые системы // Linux Format. — 2015. — Декабрь (№ 12 (203)). — С. 22—27.
  • Дэн Гукин. Компьютер для чайников