Код ядра Linux, использующий procfs: что я должен знать? - PullRequest
1 голос
/ 16 июля 2009

У меня есть очень хорошая идея для патча ядра, и я хочу провести некоторое исследование и посмотреть примеры кода, прежде чем сформулировать свою идею.

Я ищу интересные примеры кода, которые продемонстрировали бы расширенное использование procfs (файловая система Linux /proc). Под интересным я подразумеваю больше, чем просто чтение документированного значения.


Моя идея - предоставить каждому процессу простой механизм вещания. Например, давайте рассмотрим процесс, который запускает несколько экземпляров rsync и хочет проверить состояние передачи (сколько байт уже передано) для каждого дочернего элемента. В настоящее время я не знаю, как это можно сделать.

Я намерен предоставить процессу минимальный интерфейс для записи данных в procfs. Эти данные будут помещены в каталог PID. Например:

/procfs/1343/data_transfered/incoming

Я могу представить себе многочисленные преимущества для этого, в основном в области параллелизма.

Кстати, если такой механизм уже существует, скажите ...

Ответы [ 3 ]

3 голосов
/ 16 июля 2009

Да, я написал материал, который копается в / proc. Я подозреваю, что вы вряд ли получите исправления ядра Linux, которые будут делать что-либо с proc, если только они не исправляют уже существующее, которое каким-то образом сломалось.

/ sysfs, кажется, находится там, где все движется.

/ proc изначально был для информации о процессе, но много разного. там все закончилось.

* ну, может, они возьмут его, если все, что вы делаете, связано с процессами, а не в драйвере.

2 голосов
/ 16 июля 2009

Посмотрите на исходный код пакета procps для кода, который использует / proc

1 голос
/ 16 июля 2009

http://github.com/tialaramex/leakdice/tree/master

Использует proc для определения схемы адреса памяти процесса и выдает случайные страницы из кучи (по причинам, которые объяснены в его документации).

...