Операционная система Unix — ядро ОС и файловая система

UNIX — семейство кроссплатформенных, многозадачных и многопользовательских ОС. UNIX позволяет одновременно работать нескольким пользователям, каждый из которых может запускать множество процессов. Благодаря тому, что ядро написано на языке высокого уровня, систему сравнительно легко адаптировать к различным аппаратным платформам.

Характерные особенности UNIX:

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

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

Взаимодействие пользовательских программ с ядром осуществляется через интерфейс системных вызовов — стандартизированное средство доступа к сервисам ядра. Напрямую обращаться к оборудованию пользовательские программы не могут.

Ядро UNIX разработано таким образом, что его сравнительно легко адаптировать под различные аппаратные платформы и микропроцессоры.

Основные подсистемы ядра:

  • управление памятью (MMU);
  • управление процессами и потоками (Scheduler);
  • виртуальная файловая система (VFS);
  • сетевая подсистема;
  • драйверы устройств;
  • платформозависимый код.

Файловая система UNIX

Файл является основным объектом хранения информации в UNIX. Все файлы организованы в единую иерархическую файловую систему, имеющую древовидную структуру. Внутренние вершины дерева представляют каталоги, а листья — файлы.

Когда говорят, что в UNIX всё представлено в виде файлов, это значит ВСЁ: обычные файлы, каталоги, процессы (/proc), ВУ (/dev), информация о ядре (/sys), каналы, сокеты и др.

Корневой каталог имеет имя /. Каждый файл и каталог имеет уникальный полный путь от корня файловой системы. Также может использоваться относительный путь, задаваемый относительно текущего каталога.

В каждом каталоге присутствуют специальные ссылки: “.” — текущий каталог; “..” — родительский каталог. 

Для хранения информации о файле используется структура inode (index node). Она содержит метаданные файла: тип, права доступа, владельца, размер, время создания и изменения и другую служебную информацию. Имя файла в inode не хранится.

Единое дерево каталогов может объединять несколько файловых систем, расположенных на разных носителях. Для их подключения к дереву каталогов ядро выполняет монтирование, присоединяя файловую систему к точке монтирования. Каждая файловая система имеет уникальный UUID, а каждый файл внутри нее — inode

Ссылки на файлы: - Жёсткая ссылка (hard link) — дополнительное имя файла, имеющее тот же inode, что и исходный файл; - Символическая ссылка (symbolic link) — специальный файл, содержащий путь к другому файлу. При удалении исходного файла такая ссылка остаётся, но становится недействительной.