УДК 004(06) Компьютерные системы и технологии С.В. КУТЕПОВ, В.Д. НИКИТИН Московский инженерно-физический институт (государственный университет) МЕТОДЫ ПОЛУЧЕНИЯ СИСТЕМНОЙ ИНФОРМАЦИИ ЯДРА UNIX-ПОДОБНЫХ ОПЕРАЦИОННЫХ СИСТЕМ В УЧЕБНОМ ПРОЦЕССЕ Рассматриваются методики и программные средства получения системной информации об ядре ОС Linux применительно к учебному процессу (по тематике курсов по изучению архитектур операционных систем). Во время проведения лабораторных работ по курсам по тематике системного программирования (в частности, при изучении архитектур ОС) студентам необходимо получать статусную информацию о системе и ядре, в частности. При работе в среде Linux можно использовать несколько способов получения подобной информации. Один из вариантов – использование стандартных утилит мониторинга ОС – команды типа ps, gitps, pstree, fuser, vmstat, stat и пр. Способ трудоемок, требует досконального знания команд, представляемая информация не полная, не удовлетворяет по формату вывода. Некоторые команды требуют для их выполнения системного статуса пользователя. Следующий возможный вариант - обращение студентов к виртуальной файловой системе /proc. Эта система представляет собой интерфейс к внутренним структурам данных ядра и обеспечивает пользователей достаточно полным объемом статусной информации. Для удобства работы с этими данными система позволяет обращаться с ними как к обычным файлам в составе единого дерева. При работе с файловой системой /proc студент сталкивается с рядом трудностей. Одна из них - проблема идентификации информации, хранящейся в /proc . Информации берется непосредственно из ядра, не подвергаясь предварительной обработке. В результате информация отображается в не структурированном, трудно читабельном виде. Для облегчения доступа к /proc, уменьшения временных затрат студентов на поиск и восприятие необходимой информации была разработана программаоболочка. Она предоставляет пользователю возможность простой навигации по файловой системе /proc, предоставляет информацию, хранимую в файлах, в более удобном для понимания формате. Еще один вариант основан на следующих предпосылках. Механизм /proc не обеспечивает доступ к некоторой, достаточно важной в учебном процессе системной информации. Например, при проведении ISBN 5-7262-0555-3. НАУЧНАЯ СЕССИЯ МИФИ-2005. Том 12179 УДК 004(06) Компьютерные системы и технологии лабораторных работ могут понадобиться структуры данных, связанные с файловыми дескрипторами и с виртуальной файловой системой. Или могут потребоваться внутренние структуры данных ядра, обеспечивающие работу подсистемы взаимодействия процессов. Для обеспечения доступа к требуемой по объему и по составу системной информации возможны несколько подходов. 1) Разработка нового «учебного» ядра ОС Linux с основной целью предоставить пользователям требуемые структуры данных. Выполнить это можно, например, путем расширения функциональности /proc. Данный подход связан с большими трудозатратами. Существует большая опасность получить нестабильное, нестандартное ядро, при изучении которого студент получит искаженное представление о функционировании реальной системы. 2) Предоставление студентам возможности прямого доступа к адресному пространству ядра. Данный подход не удобен, требует высокого уровня системного программирования. Подход потенциально опасен, поскольку при работе студентов велика возможность повреждения данные ядра, что может привести к деградации реальной системы. Студенты при таком подходе не получают гарантии, что получили доступ именно к той информации, которая им была необходима. 3) Разработка модуля ядра (драйвер или программу, работающую в контекста ядра), основной функцией которого будет прием запросов от пользователя и передача ему требуемой информации. Обмен информации с этим модулем можно организовать через специальный файл устройства или через /proc. По требованиям к проведению лабораторных работ именно этот способ можно считать наиболее приемлемым и безопасным. Перечисленные методы получения системной информации реализованы в программном комплексе САМОС (Система Архитектурного Мониторинга Операционных Систем). Этот комплекс предназначен для изучения и исследования ядра Unix-подобных ОС ( в частности – Linux) , имеет дружественный интерфейс пользователя. Комплекс предоставляет студентам удобный, единообразный механизм получения системной информации, дает возможность в реальном времени, без проведения компиляции, выполнять требуемые системные вызовы для реально функционирующих в системе процессов. Студенты при работе с САМОС используют его как удобное инструментальное средство для изучения поведения ядра ОС и работающих в ней процессов, для изучения реакции процессов на различные системные вызовы, с различными параметрами. ISBN 5-7262-0555-3. НАУЧНАЯ СЕССИЯ МИФИ-2005. Том 12180 УДК 004(06) Компьютерные системы и технологии ISBN 5-7262-0555-3. НАУЧНАЯ СЕССИЯ МИФИ-2005. Том 12181