Операционная система 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) — специальный файл, содержащий путь к другому файлу. При удалении исходного файла такая ссылка остаётся, но становится недействительной.