Способность операционной системы «скрывать» сложности реальной работы с аппаратурой наиболее ярко проявляется в одной из основных подсистем – файловой системе. Операционная система представляет отдельный набор данных, хранящихся на внешнем накопителе, в виде файла – простой неструктурированной последовательности байтов, имеющей символьное имя и набор атрибутов (длина, время создания, время модификации и т. д.). Здесь происходит виртуализация набора данных, отдельные части которых могут быть произвольным образом разбросаны по накопителю, в логический образ – файл. Для удобства работы файлы группируются в каталоги, которые могут группироваться в каталоги более высокого уровня и т. д. Различные операционные системы позволяют использовать различное число уровней каталогов (вложений). Обычно уровень вложения ограничивается максимальным количеством символов, указывающих полный путь к файлу.
Операционная система позволяет пользователю выполнять с файлами и каталогами различные действия:
- поиск по имени или типу,
- создание,
- удаление,
- вывод содержимого на внешнее устройство,
- изменение и сохранение содержимого.
Для представления большого количества наборов данных и их фрагментов, расположенных на цилиндрах и поверхностях дисков различных типов, на флэш-накопителях, а также на накопителях всех других существующих или будущих типов, в виде иерархической структуры файлов и каталогов файловая система решает множество задач. Так, файловая система:
- отображает символьные имена файлов во внутренние идентификаторы;
- преобразует символьные имена или внутренние идентификаторы файлов, с которыми работает пользователь или прикладная программа в физические адреса на дисках и других накопителях;
- организует совместный доступ к файлам;
- защищает файлы от несанкционированного доступа и т. д.
Функционирование файловой системы тесно связано с функционированием подсистемы управления внешними устройствами, которая по запросам файловой системы осуществляет передачу данных между внешними накопителями и оперативной памятью.