Попробуйте запустить команду mount без аргументов - она выдаст список файловых систем, смонтированных в настоящий момент. Среди прочих строк будет и такая:
none on /proc type proc (rw)
Она указывает на специальную файловую систему /proc. Поле none говорит о том, что эта система не связана с аппаратным устройством, например жестким диском. Она является своего рода "окном" в ядро LInux. Файлам в системе /proc не соответствует реальные файлы на физическом устройстве. Это особые объекты, которые ведут себя подобно файлам, открывая доступ к параметрам, служебным структурам и статистической информации ядра. "Содержимое таких файлов генерируется ядром динамически в процессе чтения из файла. Осуществляя запись в некоторые файлы. можно менять конфигурацию работающего ядра системы.
%ls -l /proc/version
-r--r--r-- 1 root root 0 jan 17 18:09 /proc/version
Обратите внимание на то, что размер файла равен нулю. Поскольку содержимое файла создается ядром "на лету". понятие размера файла здесь неприменимо. Соответственно время модификации файла равно времени запуска команды.
Что находится в файле /proc/version? Он содержит строку, описывающую номер версии ядра Linux. Сюда входит информация, возвращаемая системным вызовом uname(), а также номер версии компилятора, с помощью которого было создано ядро. Чтение из файла /proc/version осуществляется самым обычным образом, например с помощью команды cat:
% cat /proc/version Linux version 2.2.14-5.0(root@porky.devel.redhat.com) (gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)) #1 tue Mar 7 21:07:39 EST 2000
Многие элементы файловой системы /proc описаны на странице man proc(раздел 5). Тех кого интересуют детали функционирования файловой системы /proc, могут просмотреть ее исходные коды в каталоге /usr/src/linux/fs/proc/.
Большинство элементов файловой системы /proc выдает инфорамацию в отформатированном виде. Например файл /proc/cpuinfo содержит сведения о процессоре(или процессорах, если это многопроцессорный компьютер). Выходная информация представляется в виде таблицы значений, по одному на строку. Каждое значение сопровождается символическим идентификатором.
%cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu famile : 6
...
Файловая система /proc содержит по одному каталогу для каждого выполняющегося в данный момент процесса. Имена каталога являются идентификатором процесса. Каталоги появляются и исчезают динамически по мере запуска и завершения процессов. В каждом каталоге имеются файлы, предоставляющие доступ к различной информации о процессе. Собственно говоря. на основании этих каталогов файловая система /proc и получила свое имя.
В каталогах процессов находятся следующие файлы
- cmdline Содержит список аргументов процесса. Этот список представлен одной строкой, в которой аргументы отделяются друг от друга нулевыми символами. Большинство функций работы со строками предлагает, что нулевым символом оканчивается вся строка, поэтому они не смогут правильно обработать файл cmdline; -cwd Является символической ссылкой на текущий рабочий каталог процесса; - environ. Содержит переменные среды процесса. Как и в случае файла cmdline, элементы списка разделяются нулевыми символами; - exe. Является символической ссылкой на исполняемый файл процесса; - fd. Является подкаталогом, в котором содержатся ссылки на файлы, открытые процессом. Каждая запись представляет собой символическую ссылку на файл или устройство; - maps. Содержит информацию о файлах, отображаемых в адресном пространстве процесса. Для каждого такого файла выводится соответствующий диапазон адресов в адресном пространстве процесса, права доступа, имя файла и пр. К числу отображаемых файлов относятся исполняемый файл процесса, а так же загруженные библиотеки; - root. Является символической ссылкой на корневой каталог процесса(обычно это /); -stat. Содержит статическую информацию о процессе. Эти же данные представлены в файле status, но здесь они находятся в не отформатированном виде и записаны в одну строку. Такой формат труден для восприятия, зато проще в плане синтаксического анализа; -statm. Содержит информацию об использовании памяти процессом. Файл содержит список из семи чисел, разделенных пробелами. Каждое число - это счетчик числа страниц памяти, используемых процессом и попадающий в определенную категорию > общий размер процесса >размер резидентной части процесса >память, совместно используемая с другими процессами(например, загруженные библиотеки или нетонутые страницы, созданные в режиме "копирование при записи >текстовый размер процесса, т.е размер сегмента кода исполняемого файла >размер совместно используемых библиотек, загруженных процессом >память выделенная под стек процесса >число недействительных страниц, т.е. страниц памяти, которые были модифицированы программой. ; -status. Содержит статическую информацию о процессе, причем в отформатированном виде; -cpu. Этот файл появляется только в симметричных многопроцессорных системах и содержит информацию об использовании процессорного времени(пользователями и системой);
Из соображений безопасности права доступа к некоторым файлам предоставляются только владельцу процессора и суперпользователю.
|