русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Файловая система /proc как «зеркало» процессов


Дата добавления: 2014-11-28; просмотров: 645; Нарушение авторских прав


 

В ОС Linux присутствует виртуальная файловая система, монтируемая при загрузке к каталогу /proc (от слова process). В отличие от других файловых систем, размещаемых на внешних машинных носителях, эта файловая система располагается в оперативной памяти, обеспечивает связь с ядром и предназначена для предоставления текущей информации о компьютерной системе (состояние ядра, процессы, параметры компьютера и т. д.), чем представляет большой интерес, в том числе с позиций компьютерной безопасности. Многие из утилит, выводящие информацию о системе (например, ранее рассмотренные команды psиtop), берут исходные данные именно из каталога /proc.

В виртуальной файловой системе /proc размер почти всех файлов равен нулю, и любой пользователь, включая суперпользователя, лишен права на запись в эти файлы. Право на чтение почти всех файлов имеет каждый зарегистрированный пользователь системы. В то же время некоторая часть виртуальных файлов доступна администратору на запись, например для установки параметров ядра.

Объект /proc включает в себя файлы и каталоги с числовыми и символьными именами. Каталоги с числовыми именами содержат информацию о каждом выполняющемся процессе, а само имя каталога образовано от идентификатора выполняемого процесса (PID). При создании процесса соответствующий каталог появляется, а при уничтожении процесса – исчезает. В каждом из таких «числовых» каталогов содержатся одни и те же файловые объекты (табл. 2.1).

Если в процессе выполнения сам исполняемый файл оказался удаленным, ссылка exe позволит восстановить удаленный файл, скопировав его образ из оперативной памяти [7].

В подкаталоге fd (fd – file descriptor) можно получить оперативную информацию обо всех файлах, которые были открыты данным процессом. Именно отсюда берет информацию команда lsof, часто используемая для наблюдения за открытыми файлами.



Виртуальный файл cmdline содержит полные параметры командной строки, использованные при запуске программы. Отсюда информация переписывается в файл истории команд.

 

 

Таблица 2.1

Имя файла в подкаталоге /proc/PID Содержимое файла
cmdline Список аргументов командной строки процесса (параметры, передаваемые программе). Список представлен одной последовательностью, в которой аргументы отделяются друг от друга байтами вида «0x00»
cwd Символическая ссылка на каталог, который установлен текущим (рабочим) для процесса (cwd – change working directory)
environ Переменные окружения (USER, HOME, PATH и др.). Элементы списка разделяются друг от друга байтами вида «0x00»
exe Ссылка на исполняемый файл процесса
fd Каталог, содержащий символические ссылки на файлы, открытые данным процессом
maps Карта распределения адресного пространства процесса в виде форматированного текстового файла
mem Память процесса
root Ссылка на корневой каталог процесса (обычно /)
stat Состояние процесса на момент просмотра
statm Состояние памяти процесса. Содержит список из 7 чисел, разделенных пробелами. Эти числа: · общий размер процесса в мегабайтах · размер резидентной части процесса · размер совместно используемой памяти · размер сегмента кода · размер загруженных библиотек · объем памяти стека · число модифицированных страниц памяти
status Состояние процесса в виде, предназначенном для пользователя. Файл содержит идентификатор процесса, родительского процесса, реальный и эффективный идентификаторы пользователя, статистику использования памяти и битовые маски, указывающие, какие сигналы процессом перехватываются, игнорируются или блокируются

 

О назначении файлов и каталогов с символьными именами можно догадаться по этим именам. Например, сведения о последовательных пор-

 

тах содержатся в файле /proc/tty/driver/serial. Обращение к этим файловым объектам позволяет получить текущую информацию об аппаратной платформе и драйверах устройств, а также много иной интересной информации.

Виртуальный текстовый файл /proc/mounts содержит информацию об уже смонтированных файловых системах. Почти такая же, но более подробная информация записывается в реальный файл /etc/mtab.

Если имеются сомнения в том, что утилита ps правильно отображает все процессы, можно обратиться к каталогу /proc. Достаточно ввести друг за другом две команды:

ls -d /proc/*|grep [0-9]|wc -l

и

ps ax|wc -l

и сравнить результаты. Первый программный конвейер считает имена нумерованных каталогов в каталоге /proc, а второй суммирует процессы, отображаемые утилитой ps. Результаты не должны сильно отличаться. Это поможет в случае подмены злоумышленником утилиты ps.



<== предыдущая лекция | следующая лекция ==>
Перенаправление ввода/вывода | Терминальный режим и консольные атаки


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.082 сек.