Основы основ: введение в операционные, файловые и символьные системы

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

1) пользовательские операционные системы - к ним относится мобильная Android, платная Windows от корпорации Microsoft и бесплатная Ubuntu от энтузиастов философии Linux - компании Canonical, зарабатывающей на платной поддержке их бесплатного продукта;

2) специализированные операционные системы - такие как серверные ОС и гипервизоры виртуализации или контейнеризации, а так же "сетевые" операционные системы, такие как SONiC;

3) узко-специализированные операционные системы, работающие с определённым оборудованием - такие как Oracle Solaris и HP-UX.

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

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

Символьная система - более известная как таблица кодировок или таблица символов (character table) - общепринятые обозначения уникальных комбинаций битов в байтах, где каждому уникальному байту соответствует какой-то определённый человеческий символ - любой, от цифр и букв алфавита до всяких "графических" закорючек. Исторически первая таблица символов (1963) - ASCII (American standard code for information interchange) кодирует символы всего одним байтом. Затем эту таблицу символов расширил "Юникод" (unicode), в версии UTF-8 кодируя символы от 1 до 4 байтами; двумя либо четырьмя байтами в версии UTF-16 и четырьмя байтами в версии UTF-32. Это означает, что один и тот же текст, но сохранённый в ASCII и в UTF-32 - будет отличаться по занимаемому на диске месту в четыре раза - следовательно, взаимодействие (ввод и вывод информации) в кодировке UTF-32 в четыре раза медленнее, чем в кодировке ASCII. При этом - Юникод "обратно совместим" с ASCII - это значит, что файл ASCII можно (хотя и медленнее) открыть "в юникоде", однако не каждый юникод-файл получится прочитать через ASCII.

Файловая система определяет размер имен файлов (и каталогов), максимальный возможный размер файла и раздела, набор атрибутов файла. Некоторые файловые системы предоставляют сервисные возможности, например, разграничение доступа или шифрование файлов.

FAT - File Allocation Table - самая "базовая" файловая система, исторически одна из первых - образовалась в 1977 году для использования на дискетах. В её семейство входят FAT12, FAT16 и FAT32, на котором разработчик файловой системы - корпорация Макйрософт - прекратила работу над FAT в пользу нового названия - NTFS. Файловые системы семейства FAT на сегодняшний день считаются устаревшими по причине их ограничений, однако, за счёт отсутствия журналирования в FAT32 уменьшается износ блоков флеш-накопителя для модулей памяти, изготовленных по flash-технологиям, что позволяет продлить их срок службы.

NTFS - New Technology File System - самая распространённая на сегодня файловая система - благодаря тому, что используется "по умолчанию" в самом распространённом семействе операционных систем - Windows.

Ключевые моменты NTFS:
- Безопасность данных: NTFS предлагает различные механизмы для защиты файлов и папок. Один из них — система прав доступа, которая позволяет задавать индивидуальные права для каждого пользователя или группы пользователей.
- Надежность: NTFS обладает встроенным механизмом проверки и восстановления файловой системы, который позволяет автоматически исправлять ошибки, возникающие во время работы компьютера.
- Поддержка больших дисков и файлов: NTFS позволяет управлять дисками объемом до 256 терабайт и файлами размером до 16 терабайт.
- Журналирование: NTFS использует журнал для отслеживания всех изменений, происходящих с файловой системой. Это позволяет быстрее восстанавливать данные в случае аварийного завершения работы компьютера.
- Сжатие данных: NTFS предоставляет возможность сжимать файлы и папки для экономии места на диске без потери данных. Сжатие может быть применено как к отдельным файлам, так и к целым дискам или папкам.
- Разрешение имен файлов: NTFS поддерживает длинные имена файлов (до 255 символов) и позволяет использовать Unicode для представления имён файлов. Это упрощает использование файлов на разных языках и с различными алфавитами.

EXT4 - аналог NTFS в мире Linux - современная пользовательская файловая система, обладающая примерно теми же "фишками", что и её "конкурент" NTFS. Однако между ними всё же можно выделить некоторые отличия: Ext4 обеспечивает гораздо меньшую фрагментацию, чем NTFS, что позволяет быстрее читать данные. Ext4 также кажется более быстрым при создании файлов/папок, хотя это может быть из-за других различий в соответствующих ОС, на которых работают файловые системы. Но NTFS, в отличие от EXT4 имеет возможность выполнять проверку диска и изменение размера тома "на горячую" - прямо из работающей на этом диске системы.

Выбор наиболее подходящей файловой системы в первую очередь зависит от физической архитектуры накопителей данных - способы размещения информации и доступа к ней в разных типах накопителей могут быть совершенно разные. Компакт-диски - по сути как грампластинки, магнитные ленты - как киноплёнки, а флеш-память - это вообще особая система полевых транзисторов, так же известных как MOSFET с плавающим затвором. К примеру - информация, сохранённая на жёстких дисках (HDD) в формате NTFS или EXT, при записи на оптический диск будет конвертирована в ISO (базовая фаловая система) или UDF (более продвинутая, позволяет перезаписывать данные на накопителях *-RW). Для записи на магнитные ленты в кассетах (в ленточных библиотеках) - информация конвертируется в LTFS (Linear Tape File System).

Помимо первостепенной классификации по физическим носителям данных - файловые системы принято классифицировать по доступу и распределению: файловые системы с общим доступом (shared filesystems) и распределённые файловые системы (distributed filesystems) - причём второе обычно подразумевает и первое. Пик технологий - это распределённые параллельные отказоустойчивые файловые системы (Distributed parallel fault-tolerant file systems) - это самые "навороченные" файловые системы, правильное "развёртывание" (deployment) которых может потребовать отдельных навыков и продолжительного погружения в их среду, в результате которого можно построить хорошо масштабируемую систему хранения данных высокой доступности.

ОЧЕНЬ ПОЛЕЗНЫЕ ССЫЛКИ:

Список файловых систем

Сравнение файловых систем (на русском)

Сравнение файловых систем

Сравнение распределённых файловых систем


Если (вдруг) кто не понял - картинка шуточная. Источник: https://www.reddit.com/r/pcmasterrace/comments/q5j2h1/evolution_of_windows_logos/
Если (вдруг) кто не понял - картинка шуточная. Источник: https://www.reddit.com/r/pcmasterrace/comments/q5j2h1/evolution_of_windows_logos/