sysctl

утиліта для управління параметрами ядра Linux та BSD

Sysctl - це утиліта для деяких Unix-подібних операційних систем, яка зчитує і змінює атрибути ядра операційної системи, такі як номер версії, максимальні параметри ресурсів, пам'яті, файлових систем, поведінку ядра, параметри мережевих протоколі, налаштування безпеки та інше. Також її функціонал доступний як системний виклик[5] для програм. Linux додатково надає доступ до атрибутів sysctl як віртуальну файлову систему /proc/sys/ .

sysctl
Тип Системна утиліта
Операційна система Unix-like (Linux, BSD)
Мова програмування C

BSD ред.

У BSD параметри, якими управляє, є об’єктами в MIB (англ. management information base), та описують обмеження які можна налаштувати. Наприклад розмір сегмента спільної пам’яті, максимальну кількість процесів, кількість потоків які операційна система використовуватиме для використання NFS, зміну поведінки при переадресації IP пакетів при роботі в мережі. [6]

Linux ред.

В Linux інтерфейс доступу до атрибутів доступний як віртуальна файлова система каталозі /proc/sys/ (не плутати з /sys)/ Для перевірки значення деякого атрибута потрібно відкрити файл у віртуальній файловій системі, прочитати його вміст та закрити файл. Системний виклик sysctl існує в Linux, але він застарів і в glibc не має функції що її обгортає; зазвичай він недоступний через те, що багато дистрибутивів налаштовують ядро без CONFIG_SYSCTL_SYSCALL; тому не рекомендується до вживання.

Налаштування які надає sysctl погруповані по розділам [7]:

Приклади ред.

робота з утилітою ред.

робота з файловою системою ред.

/etc/sysctl.conf ред.

  1. http://bxr.su/o/sys/kern/kern_sysctl.c#sys_sysctl
  2. http://bxr.su/o/sbin/sysctl/
  3. http://mdoc.su/n/sysctl.7
  4. sysctl - get or set kernel state
  5. https://man.freebsd.org/cgi/man.cgi?query=sysctl&sektion=3&apropos=0&manpath=FreeBSD+14.0-RELEASE+and+Ports
  6. http://bxr.su/NetBSD/share/man/man7/sysctl.7
  7. https://www.kernel.org/doc/Documentation/sysctl/00-INDEX