Я однажды разрабатывал драйвер устройства для Unix. Это имело проблему указателя, и во время тестирования его начал списывать конец массива в памяти ядра. Я не спешил определять это и сразу не поразил кнопку сброса. Драйвер набросал на всем протяжении дискового кэш-буфера, который был затем сброшен к диску, прежде чем я поразил сброс. Много блоков было inodes и каталогами, и я закончил с полностью поврежденной файловой системой. Я думаю, что 6 000 осиротевших файлов были помещены в lost+found
прежде чем я сдался и переустановил. К счастью, это было только системой тестирования, не моей рабочей станцией со всеми моими файлами на нем.
Каталог /proc/sys
предоставляет легкий доступ к sysctl настройкам через оболочку. Можно считать и записать эти настройки или путем чтения и записи этих файлов, или путем вызова sysctl
утилита или базовое sysctl
системный вызов.
Различные настройки описаны в документации ядра, в Documentation/sysctl/*
. Запустите с README
.
Это - материал довольно низкого уровня, поэтому иногда документация не абсолютно точна, и необходимо будет обратиться к источнику. Каждый sysctl, устанавливающий обычно, соответствует переменной с именем сходства в ядре (но это - конвенция, не правило). Много настроек объявляются в kernel/sysctl.c
, но дополнительные компоненты ядра и модули могут определить свое собственное. В источнике (на локальной копии или онлайн в LXR), ищите название sysctl, устанавливающего между кавычками (например. "xfrm_larval_drop"
) найти его объявление.
Авторитетный источник того, что находится в /proc
документируется в исходное дерево ядра в Documentation/filesystem/proc.txt. Это ссылается на Documentation/sysctl как на документ, который описывает /proc/sys
. То, что другие ссылок на документы в исходной документации дерева ядра, так быть готовым перейти через то дерево.
Те ссылки к интерфейсу gitweb, таким образом, можно выбрать конкретную версию Linux, которым Вы интересуетесь. Те ссылки указывают текущей ГОЛОВЕ.