Помощь в написании студенческих работ
Антистрессовый сервис

Системная информация ОС Linux

РефератПомощь в написанииУзнать стоимостьмоей работы

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

Системная информация ОС Linux (реферат, курсовая, диплом, контрольная)

Расположение системной информации

Всю системную информацию об операционной системе Linux можно разделить на две группы — по признаку расположения этой информации в системе:

Статическая информация — к этой группе можно отнести все текстовые конфигурационные файлы, оказывающие влияние на процесс загрузки системы, функционирование ее компонент. Подобная информация, как правило, расположена в каталоге /etc и его подкаталогах.

Динамическая информация — описывает текущее состояние системы. Подобная информация может быть получена чтением контекста памяти ядра операционной системы; доступ к этой информации осуществляется через файловую систему /proc (см. п. 2.3.2).

Методы получения информации можно также разделить на несколько групп по способу организации взаимодействия с системой:

Чтение файлов конфигурации и файлов, расположенных в /proc, с помощью системных вызовов.

Вызов системных утилит, предоставляющих соответствующую информацию.

Получение информации посредством выполнения специальных системных вызовов.

Файловая система /proc

Как было указано в п. 2.3.1, для получения динамической информации о системе необходимо получить доступ к контексту памяти ядра. В операционной системе Linux память ядра отображается на устройство /dev/kmem. Однако, чтение непосредственно из этого устройства может представлять достаточно большую сложность в силу того, что возникает необходимость знать расположение структур данных в памяти ядра. В ранних версиях UNIX-систем доступ к информации осуществлялся именно так.

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

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

Обращение к файловой системе /proc происходит тем же путем, что и к обычной дисковой файловой системе — с помощью системных вызовов read () и write (). Следует, однако, заметить, что /proc не связана с каким-либо физическим устройством: содержимое файлов /proc генерируется непосредственно при чтении этих файлов, что приводит к невозможности определить их размер обычными средствами, а попытка узнать время создания и модификации любого файла приведет к получению текущего времени.

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

Файловая система /proc содержит по одному каталогу для каждого выполняющегося в данный момент процесса. Именем каталога является идентификатор процесса; в некоторых UNIX-системах идентификатор дополняется нулями для придания именам каталогов процессов одинаковой длины, однако, в ОС Linux подобные действия не производятся.

Каталоги процессов динамически создаются и уничтожаются по мере запуска и завершения соответствующих процессов. В каждом каталоге имеются файлы, предоставляющие доступ к различной информации о процессе.

Каждый каталог процесса содержит следующие файлы:

cmdline — содержит список аргументов, переданный процессу при запуске; первым аргументом является имя исполняемого файла; в случае, если процесс выгружен (например, находится в состоянии зомби), файл будет пуст;

cwd — является символической ссылкой на текущий рабочий каталог процесса;

environ — содержит переменные среды процесса;

exe — является символической ссылкой на исполняемый файл процесса; ее чтение является практически единственным способом определить каталог, содержащий исполняемый файл;

fd — подкаталог, содержащий символические ссылки на файлы, открытые процессом;

maps — содержит информацию о файлах, отображаемых в адресном пространстве процесса; к числу отображаемых файлов относится исполняемый файл процесса, а также загруженные библиотеки;

root — является символической ссылкой на корневой каталог процесса;

stat — содержит статистическую информацию о процессе;

status — содержит те же данные, что и stat, но в отформатированном виде.

Из соображений безопасности права доступа к некоторым файлам каталогов процесса предоставлены только владельцу процесса или суперпользователю.

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

Информация об аппаратуре, установленной на компьютере, может быть получена из следующих файлов файловой системы /proc:

/proc/cpuinfo — содержит информацию о центральном процессоре (или процессорах, если их больше одного); файл содержит информацию в отформатированном виде; помимо указания модели процессора, файл содержит указание доступных процессорных функций, таких как расширенные инструкции MMX;

/proc/devices — содержит список старших номеров всех символьных и блочных устройств, установленных в системе;

/proc/pci — содержит информацию обо всех устройствах, подключенных к шине PCI, включая устройства, встроенные в материнскую плату;

/proc/ide — каталог, содержащий файлы, которые описывают устройства, подключенные к шинам IDE и SCSI.

/proc/net/dev — содержит информацию о сетевых платах и их конфигурации.

Информация о конфигурации и состоянии ядра системы представлена в следующих файлах:

/proc/version — содержит строку, описывающую номер версии и модификации ядра; в нее также включена дополнительная информация: имя пользователя, осуществившего компиляцию, дата компиляции и версия компилятора;

/proc/meminfo — хранит сведения об использовании системной памяти; указываются данные как о физической памяти, так и об области подкачки;

/proc/modules — полный список установленных модулей ядра в текстовом виде.

Информация о файловых системах представлена следующими файлами:

/proc/filesystems — список файловых систем, поддерживаемых ядром;

/proc/mounts — содержит перечень смонтированных файловых систем; каждая строка файла содержит имя устройства, имя точки монтирования, тип файловой системы и флаги монтирования.

Показать весь текст
Заполнить форму текущей работой