ОС :: Работа с носителями информации

Автор:

 

Давным давно, когда в мире еще жили последние динозавры, и протоукры все еще занимались выкапыванием Черного моря, компьютеры не умели ничего сохранять, никаких запоминающих устройств(ЗУ) у них не было. Ответ вычисления мог выводиться на некоторое время, после чего, результат традиционно записывали на бумагу. Но человеку это показалось слишком скучным, и воспаленный мозг гения придумал ЗУ для перфокарт, а потом уже и магнитных носителей и прочей радости. Но цель этой статьи не в том, чтобы описать принцип работы носителей информации(НИ) как физических устройств, а в том, чтобы описать логику работы ОС с ними.

 

 

1) Принцип обращения ОС к носителям информации.

Итак, представим себе первые компьютеры типа PC/MAC/Comodore/или любой другой той же эпохи. Носители информации только начинали появляться в общем доступе. Форматирование, а иногда и их тип, в разных компьютерах различались. Отсутствовала любая стандартизация в принципе. Носители информации были небольшого размера, файловые системы не поддерживали каталогизацию. К примеру, в MS-DOS 1.0 все файлы можно было хранить только в корне. Также не было такого понятия как ссылка, по этому на носители с ПО создавали копии всех системных библиотек.
Но прогресс не стоял на месте, размеры носителей становились все больше, нужно было каким-то образом систематизировать файлы. Собственно и были придуманы каталоги.

 

Было бы все хорошо, вроде как все договорились, но нет, в мире образовалось два конкурирующего стандарта, один применялся в системах Microsoft, другой в системах Unix. До сих пор, фактически никто так и не договорился.
Разница в том, что ОС Microsoft при создании нового каталога копируют туда кроме того и системные файлы DOS 1,0, для обеспечения обратной совместимости со старыми приложениями. В Unix системах была разработана система каталогов и ссылок, в которой существует несколько видов этих ссылок, вместо копирования системных файлов, на них просто давались ссылки, а пользовательское ПО по сути не видело разницы между ссылкой и простым файлом. И это было только начало.

 

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


Принцип работы с разделами в разных ОС также разный.

  • ОС от Microsoft используют принцип разделения на логические устройства: каждый раздел определяется как накопитель, и отображается в корневой каталог.
  • ОС Unix-семейства пошли по другому пути развития. Система каталогов была использована для создания точек монтирования устройств, была создано древесное представление расположения информации. Носители информации подключаются к конкретным каталогам, по тем правилам, которые указаны в /etc/fstab. При размонтировании раздела каталог монтирования снова становится пустым, вся информация остается на отключенном разделе.

 

2) Дополнение

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

 

Остановимся на этом, рассмотрим подробнее:

В *nix в отличие от Windows, где имеется один логический диск «C:\», хранящий каталоги и файлы операционной системы и не только, имеется один корневой раздел, обозначающийся как — «/». Все остальные разделы жесткого диска, другие жесткие диски, подключаемые флешки, даже общие папки сети, представляют собой структуру как бы подкаталогов входящих в общей корневой каталог «/» (/home; /boot, … и.т.п.). Получается, что в *nix одно большое дерево, а не логические устройства как в Windows.

 

Типы файлов в Linux так же отличаются от привычных нам файлов в ОС Windows. Такое понятие как расширение файлов, тут отсутствует, хотя и может использоваться, играет роль, и регистр букв которыми назван файл. Вообще файлы в *nix подразделяются на несколько типов:- обычные файлы с данными; каталоги (как не привычно это звучит, но в *nix каталог является файлом); мягкая (символичная) ссылка — это по аналогии с Windows, ярлык файла, т.е. она содержит информацию, где находится сам запрашиваемый файл; жесткая ссылка — это более сложное понятие, которому нет аналогов в Windows, каждый файл Linux, содержит индексный дескриптор (инод), в котором хранится вся информация о файле. Сам же файл представляет собой область данных размещенных на диске. Инод есть для каждого файла. Когда нам необходимо создать жесткую ссылку на файл, в индексном дескрипторе делается ссылка на его имя. После чего практически невозможно определить, где сам файл, а где ссылка на него.

 

 

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

 

3) На этом я завершаю данную статью. Если остались какие-либо вопросы/пожелания/предложения, можно их оставить в комментариях в группе Вконтакте….