16:24 procfs | ||
[править | править вики-текст]
Материал из Википедии — свободной энциклопедии Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 25 октября 2016; проверки требует 1 правка. procfs — специальная файловая система, используемая в UNIX-подобных операционных системах. Позволяет получить доступ к информации из ядра о системных процессах. Необходима для выполнения таких команд как ps, w, top. Обычно её монтируют на /proc. procfs создает двухуровневое представление пространств процессов. На верхнем уровне процессы представляют собой директории, именованные в соответствии с их pid. Также на верхнем уровне располагается ссылка на директорию, соответствующую процессу, выполняющему запрос; она может иметь различное имя в различных ОС (curproc во FreeBSD, self в Linux). Содержание[скрыть]История[править | править вики-текст]
8-я редакция UNIX[править | править вики-текст]Впервые procfs появилась в вышедшей в 1985 году 8-й редакции UNIX и была призвана предоставить интерфейс для управления процессами, более удобный, чем вызов ptrace. Она была подробно описана Томом Киллианом в работе «Processes as Files» («Процессы как файлы») в 1984 году. Каждый процесс был представлен файлом, в который могла производиться запись. Количество имеющихся вызовов ioctl равнялось 11. [1][2] System V release 4[править | править вики-текст]Данная система, вышедшая в 1990 году, унаследовала procfs из UNIX 8, с некоторыми усовершенствованиями. Процессы по-прежнему представлялись простыми файлами, но были доступны уже 37 вызовов ioctl. ФС стала достаточной для построения на её базе утилит наподобие ps, но оставалась неудобной и плохо расширяемой. [1] Реализация подробно описана в работе Роджера Фолкнера и Рона Гомеса «The Process File System and Process Model in UNIX System V» в 1991 году. Plan 9[править | править вики-текст]В 1992 году вышел первый публичный релиз ОС Plan 9. Это был пик развития procfs. Всё управление процессами было перенесено сюда. Процессы стали директориями вместо файлов. Вместо ioctl стали использоваться текстовые команды, и управление могло производиться командами cat и ls. [3] При монтировании /proc с другого компьютера через сеть локальный процесс мог взаимодействовать с удалённым так, как будто они находились на одной машине. Solaris 2.6[править | править вики-текст]Solaris 2.6 во многом унаследовал структуру procfs от Plan 9, однако все расположенные там файлы были бинарными, предназначенными для использования программой, а не человеком. [1] В целом файловая система стала несколько примитивнее по сравнению с таковой в Plan 9, но несравнимо более развитой по сравнению с SVR4. 4.4 BSD[править | править вики-текст]Это был ещё один шаг назад по сравнению с Solaris. Количество файлов в каждом каталоге уменьшилось до 8 (хотя в более поздних релизах слегка увеличилось). Набор доступных команд также существенно сократился. Стал происходить обратный переход, от файловых интерфейсов к системным вызовам. [1] В современных версиях FreeBSD procfs постепенно ликвидируется[4][5]. Linux[править | править вики-текст]Linux несколько выбивается из описанной выше истории. С самого появления, procfs представляла в нём универсальный интерфейс получения информации от ядра, а не только о процессах. В корне содержатся файлы (в основном, текстовые) и каталоги, предоставляющие самые разнообразные сведения о системе. В то же время, свою первоначальную функцию — управление процессами — procfs почти не выполняет. Интерфейс отправки команд отсутствует, файловая система лишь предоставляет подробную информацию о процессах (и кое-где позволяет изменить некоторые опции, например, /proc/<pid>/oom_adj). [6] Структура[править | править вики-текст]*BSD[править | править вики-текст]Каждая директория верхнего уровня содержит следующие файлы:
Поддержка операционными системами[править | править вики-текст]Ссылки[править | править вики-текст]
Источники[править | править вики-текст]
| ||
|
Всего комментариев: 0 | |