Архив автора: Дмитрий Алексеев

Привилегии как атрибуты процесса Linux

Еще одним важным атрибутом процесса, определяющим его возможности по использованию системных вызовов, являются привилегии процесса cababilities. Например, обладание привилегией CAP_SYS_PTRACE разрешает процессам трассировщиков strace и ltrace, использующих системный вызов ptrace, трассировать процессы любых пользователей (а не только «свои», EUID которых совладает с EUID трассировщика). Аналогично, привилегия CAP_SYS_NIСЕ разрешает изменять приоритет, устанавливать привязку к процессорам и… Читать далее »

Маркеры доступа как атрибуты процесса в Linux

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

Дерево процессов Linux

Процессы, попарно связанные дочерне-родительскими отношениями, формируют дерево процессов операционной системы. Первый процесс init, называемый прародителем процессов порождается ядром операционной системы после инициализации и монтирования корневой файловой системы, откуда и считывается программа /sbin/init. Прародитель процессов всегда имеет PID=1, а его основной задачей является запуск разнообразных системных служб, включая запуск обработчиков, алфавитно-цифрового терминального доступа getty, менеджера дисплеев… Читать далее »

Двойственность процессов и нитей Linux

Как указывалось ранее, процессы и нити в ядре Linux сводятся к универсальному понятию «задача». Задача, все ресурсы которой (память, открытые файлы и т. д.) используются совместно с другими такими же задачами является «нитью». И наоборот, «процессами» являются такие задачи, которые обладают набором своих частных, индивидуальных ресурсов. Универсальный системный вызов clone позволяет указать, какие ресурсы станут… Читать далее »

Параллельные многопроцессные и многонитиевые программы Linux

Как указывалось ранее, параллельные программы зачастую используют процессы для выполнения отдельных ветвей. В эту категорию часто попадают программы сетевых служб, например сервер баз данных W:[PostgreSQL], служба удаленного доступа W:[SSH] и подобные. Листинг ниже иллюстрирует программу postgres, выполняющуюся в шести параллельных процессах, один из которых — диспетчер, четыре служебных и еще один вызван подключением пользователя fitz к… Читать далее »

Порождение процессов и нитей, запуск программ Linux

Несмотря на очевидные различия, историю возникновения и развития, нити и процессы объединяет общее назначение  они являются примитивами выполнения некоторого набора последовательных инструкций. Откровенно говоря, нити, в общем, появились в операционных системах раньше, чем изолированные UNIX-процессы, в которые со временем вернулись UNIX-нити… Процессы выполняют или разные последовательные программы целиком, или ветви одной параллельной программы, но в изолированном… Читать далее »

Процессы и нити Linux

Сущность процесса неразрывно связана с мультипрограммированием и многозадачностью операционной системы. Например, в однозадачных операционных системах программы существуют, а процессы — нет. В однозадачных операционных системах единовременно одна последовательная программа выполняется одним исполнителем (центральным процессором), имея возможность безраздельно использовать все доступные ресурсы (память, устройства ввода-вывода и пр.). В любой программе можно выделить перемежающиеся блоки инструкций, использующих… Читать далее »

Ядро Linux

He стоит забывать, что самой главной программой операционной системы является ее ядро, которое в Linux состоит из статического стартового модуля  в формате ELF executable и динамически пристыковываемых программных модулей формата ELF relocatable. Для выполнения процедуры начальной загрузки , стартовый модуль упакован в «самораспаковывающййся» gzip-архив формата bzimage (big zipped image), который состоит из, программы распаковки и,… Читать далее »

Программы и библиотеки Linux

Процессы операционной системы в большинстве случаев отождествляются с выполняющимися программами, что не совсем верно, точнее — совсем не верно. В современных операционных системах, включая Linux, между программой и процессом есть очевидная взаимосвязь, но далеко не такая непосредственная, как кажется на первый взгляд. Программа представляет собой алгоритм, записанный на определенном языке, понятном исполнителю программы (программа политической… Читать далее »

Флаги файлов Linux

Кроме «общих» расширенных атрибутов, которые используются разными компонентами операционной системы, каждая файловая система зачастую имеет собственные атрибуты файлов, управляющие ее поведением и функциями при доступе к файлам. Так, файловые системы ext2/ext3/ext4 управляются специальными атрибутами-флагами, например a (append only), i (immutable), s (secure deletion), S (synchronous updates) и np. Флаг s заставляет файловую систему при удалении… Читать далее »