Product SiteDocumentation Site

Глава 49. Общие принципы работы ОС

49.1. Процессы и файлы
49.2. Работа с наиболее часто используемыми компонентами
49.3. Использование многозадачности

49.1. Процессы и файлы

ОС ALT Linux является многопользовательской интегрированной системой. Это значит, что она разработана в расчете на одновременную работу нескольких пользователей.
Пользователь может либо сам работать в системе, выполняя некоторую последовательность команд, либо от его имени могут выполняться прикладные процессы.
Пользователь взаимодействует с системой через командный интерпретатор, который представляет собой, как было сказано выше, прикладную программу, которая принимает от пользователя команды или набор команд и транслирует их в системные вызовы к ядру системы. Интерпретатор позволяет пользователю просматривать файлы, передвигаться по дереву файловой системы, запускать прикладные процессы. Все командные интерпретаторы UNIX имеют развитый командный язык и позволяют писать достаточно сложные программы, упрощающие процесс администрирования системы и работы с ней.

49.1.1. Процессы функционирования ОС

Все программы, которые выполняются в текущий момент времени, называются процессами. Процессы можно разделить на два основных класса: системные процессы и пользовательские процессы.
Системные процессы — программы, решающие внутренние задачи ОС, например, организацию виртуальной памяти на диске или предоставляющие пользователям те или иные сервисы (процессы-службы).
Пользовательские процессы — процессы, запускаемые пользователем из командного интерпретатора для решения задач пользователя или управления системными процессами. Linux изначально разрабатывался как многозадачная система. Он использует технологии, опробованные и отработанные другими реализациями UNIX, которые существовали ранее.
Фоновый режим работы процесса — режим, когда программа может работать без взаимодействия с пользователем. В случае необходимости интерактивной работы с пользователем (в общем случае) процесс будет «остановлен» ядром и работа его продолжается только после переведения его в «нормальный» режим работы.

49.1.2. Файловая система ОС

В ОС использована файловая система Linux, которая, в отличие от файловых систем DOS и Windows(™), является единым деревом. Корень этого дерева — каталог, называемый root (рут) и обозначаемый /. Части дерева файловой системы могут физически располагаться в разных разделах разных дисков или вообще на других компьютерах — для пользователя это прозрачно. Процесс присоединения файловой системы раздела к дереву называется монтированием, удаление — размонтированием. Например, файловая система CD-ROM в изделии монтируется по умолчанию в каталог /media/cdrom (путь в изделии обозначается с использованием /, а не \, как в DOS/Windows). Текущий каталог обозначается ./.
Файловая система изделия содержит каталоги первого уровня:
  • /bin — командные оболочки (shell), основные утилиты;
  • /boot — содержит ядро системы;
  • /dev — псевдофайлы устройств, позволяющие работать с ними напрямую;
  • /etc — файлы конфигурации;
  • /home — личные каталоги пользователей;
  • /lib — системные библиотеки, модули ядра;
  • /media — каталоги для монтирования файловых систем сменных устройств;
  • /mnt  — каталоги для монтирования файловых систем сменных устройств и внешних файловых систем;
  • /proc — файловая система на виртуальном устройстве, её файлы содержат информацию о текущем состоянии системы;
  • /root — личный каталог администратора системы;
  • /sbin — системные утилиты;
  • /sys — файловая система, содержащая информациюо текущем состоянии системы;
  • /usr — программы и библиотеки, доступные пользователю;
  • /var — рабочие файлы программ, очереди, журналы;
  • /tmp — временные файлы.

49.1.3. Организация файловой структуры

Система домашних каталогов пользователей помогает организовывать безопасную работу пользователей в многопользовательской системе. Вне своего домашнего каталога пользователь обладает минимальными правами (обычно чтение и выполнение файлов) и не может нанести ущерб системе, например, удалив или изменив файл.
Кроме файлов, созданных пользователем, в его домашнем каталоге обычно содержатся персональные конфигурационные файлы некоторых программ.
Маршрут (путь) — это последовательность имён каталогов, представляющая собой путь в файловой системе к данному файлу, где каждое следующее имя отделяется от предыдущего наклонной чертой (слешем). Если название маршрута начинается со слеша, то путь в искомый файл начинается от корневого каталога всего дерева системы. В обратном случае, если название маршрута начинается непосредственно с имени файла, то путь к искомому файлу должен начаться от текущего каталога (рабочего каталога).
Имя файла может содержать любые символы за исключением косой черты (/). Однако следует избегать применения в именах файлов большинства знаков препинания и непечатаемых символов. При выборе имен файлов рекомендуем ограничиться следующими символам:
  • строчные и ПРОПИСНЫЕ буквы. Следует обратить внимание на то, что регистр всегда имеет значение;
  • символ подчеркивания (_);
  • точка (.).
Для удобства работы точку можно использовать для отделения имени файла от расширения файла. Данная возможность может быть необходима пользователям или некоторым программам, но не имеет значение для shell.

49.1.4. Иерархическая организация файловой системы

Каталог /:
  • /boot — место, где хранятся файлы, необходимые для загрузки ядра системы;
  • /lib — место, где располагаются файлы динамических библиотек, необходимых для работы большей части приложений, и подгружаемые модули ядра;
  • /bin — минимальный набор программ, необходимых для работы в системе;
  • /sbin — набор программ для административной работы с системой (программы, необходимые только суперпользователю);
  • /home — место, где располагаются домашние каталоги пользователей;
  • /etc — в данном каталоге обычно хранятся общесистемные конфигурационные файлы для большинства программ в системе;
  • /etc/rc?.d, /etc/init.d, /etc/rc.boot, /etc/rc.d — директории, где расположены командные файлы, выполняемые при запуске системы или при смене её режима работы;
  • /etc/passwd — база данных пользователей, в которой содержится информация об имени пользователя, его настоящем имени, личном каталоге, его зашифрованный пароль и другие данные;
  • /etc/shadow — теневая база данных пользователей. При этом информация из файла /etc/passwd перемещается в /etc/shadow, который недоступен для чтения всем, кроме пользователя root. В случае использования альтернативной схемы управления теневыми паролями (TCB), все теневые пароли для каждого пользователя располагаются в директории /etc/tcb/имя пользователя/shadow;
  • /dev — в этом каталоге находятся файлы устройств. Файлы в /dev создаются сервисом udev;
  • /usr — обычно файловая система /usr достаточно большая по объему, так как все программы установлены именно здесь. Вся информация в каталоге /usr помещается туда во время установки системы. Отдельно устанавливаемые пакеты программ и другие файлы размещаются в каталоге.
  • /tmp — временный каталог, необходимый некоторым приложениям.
  • /proc — файловая система /proc является виртуальной, и в действительности она не существует на диске. Ядро создает её в памяти компьютера. Система /proc предоставляет информацию о системе.
Некоторые подкаталоги системы /usr рассмотрены ниже:
  • /usr/bin — практически все команды, хотя некоторые находятся в /bin или в /usr/local/bin;
  • /usr/sbin — команды, используемые при администрировании системы и не предназначенные для размещения в файловой системе root;
  • /usr/local — место, где рекомендуется размещать файлы, установленные без использования пакетных менеджеров, внутренняя организация каталогов практически такая же, как и корневого каталога;
  • /usr/man — каталог, где хранятся файлы справочного руководства man;
  • /usr/share — каталог для размещения общедоступных файлов большей части приложений.
Каталог /var:
  • /var/log — место, где хранятся файлы аудита работы системы и приложений;
  • /var/spool — каталог для хранения файлов, находящихся в очереди на обработку для того или иного процесса (очередь на печать, отправку почты и т.д.).

49.1.5. Имена дисков и разделов

Все физические устройства вашего компьютера отображаются в каталог /dev файловой системы изделия (об этом — ниже). Диски (в том числе IDE/SATA/SCSI жёсткие диски, USB-диски) имеют имена:
  • /dev/sda — первый диск;
  • /dev/sdb — второй диск;
  • и т.д.
Диски обозначаются /dev/sdX, где X — a, b, c, d, e, … в зависимости от порядкового номера диска на шине.
Раздел диска обозначается числом после его имени. Например, /dev/sdb4 — четвертый раздел второго диска.

49.1.6. Разделы, необходимые для работы ОС

Для работы ОС необходимо создать на жестком диске (дисках) по крайней мере два раздела: корневой (то есть тот, который будет содержать каталог /) и раздел подкачки (swap). Размер последнего, как правило, составляет от однократной до двукратной величины оперативной памяти компьютера. Если у вас много свободного места на диске, то можно создать отдельные разделы для каталогов /usr, /home, /var.

49.1.7. Утилиты для работы с файловой системой

mkfs — создание файловой системы. В действительности это программа-оболочка, вызывающая для каждого конкретного типа файловых систем свою программу. Например, для файловой системы ext4 будет вызвана mkfs.ext4.
fsck — используется для проверки и восстановления, если это возможно, целостности файловых систем.
df — формирует отчет о доступном и использованном дисковом пространстве на файловых системах. Без аргументов, df выдает отчет по доступному и использованному пространству для всех файловых систем (всех типов), которые смонтированы в данный момент. В противном случае, df на каждый файл, заданный как аргумент, выдается отчет по файловой системе, которая его содержит.
du — формирует отчет об использовании дискового пространства заданными файлами, а также каждым каталогом иерархии подкаталогов каждого указанного каталога. Здесь под использованным дисковым пространством понимается пространство, используемое для всей иерархии подкаталогов указанного каталога. Запущенная без аргументов, команда du выдает отчет о дисковом пространстве для текущего каталога.
Часто используемые утилиты:
  • mount — монтирование файловых систем;
  • umount — размонтирование файловых систем;
  • find — поиск файлов в директориях;
  • which — поиск файла, который будет запущен при выполнении данной команды;
  • cd — смена текущего каталога/директории;
  • pwd — показ текущего каталога/директории;
  • mkdir — создание каталога;
  • ls — выдача информации о файлах или каталогах;
  • cp — копирование файлов;
  • mv — перемещение/переименование файлов;
  • cat — вывод содержимого заданных файлов на стандартный вывод;
  • more — программа постраничного просмотра файлов;
  • ln — создание ссылок (альтернативных имен) для файлов;
  • file — определение типа файла;
  • chmod — изменение прав доступа к файлам;
  • chown — смена прав владения (пользовательских и групповых) для файлов;
  • umask — установка маски прав доступа для вновь создаваемых файлов;
  • chattr — изменение атрибутов файлов;
  • lsattr — просмотр атрибутов файлов.