Тип | Системна утиліта |
---|---|
Операційна система | Unix-like (Linux, BSD) |
Мова програмування | C |
Sysctl - це утиліта для деяких Unix-подібних операційних систем, яка зчитує і змінює атрибути ядра операційної системи, такі як номер версії, максимальні параметри ресурсів, пам'яті, файлових систем, поведінку ядра, параметри мережевих протоколі, налаштування безпеки та інше. Також її функціонал доступний як системний виклик[5] для програм. Linux додатково надає доступ до атрибутів sysctl як віртуальну файлову систему /proc/sys/
.
BSD
У BSD параметри, якими управляє, є об’єктами в MIB (англ. management information base), та описують обмеження які можна налаштувати. Наприклад розмір сегмента спільної пам’яті, максимальну кількість процесів, кількість потоків які операційна система використовуватиме для використання NFS, зміну поведінки при переадресації IP пакетів при роботі в мережі. [6]
Linux
В Linux інтерфейс доступу до атрибутів доступний як віртуальна файлова система каталозі /proc/sys/
(не плутати з /sys
)/
Для перевірки значення деякого атрибута потрібно відкрити файл у віртуальній файловій системі, прочитати його вміст та закрити файл. Системний виклик sysctl існує в Linux, але він застарів і в glibc не має функції що її обгортає; зазвичай він недоступний через те, що багато дистрибутивів налаштовують ядро без CONFIG_SYSCTL_SYSCALL; тому не рекомендується до вживання.
Налаштування які надає sysctl погруповані по розділам [7]:
- abi - Двійковий програмний інтерфейс
- fs - Файлова система
- kernel - деякі налаштування поведінки ядра, наприклад при паниці.
- net - налаштування параметрів мережевих протоколів, в тому числі TCP/IP
- sunrpc - застарілий розділ для налаштування SUN Remote Procedure Call який використовується в NFS
- user - налаштування обмежень технології просторів імен (англ. namespaces), яка активно використовується в контейнеризації
- vm - Віртуальна пам'ять
Приклади
робота з утилітою
робота з файловою системою
/etc/sysctl.conf
Це незавершена стаття про операційні системи. Ви можете допомогти проєкту, виправивши або дописавши її. |
- ↑ http://bxr.su/o/sys/kern/kern_sysctl.c#sys_sysctl
- ↑ http://bxr.su/o/sbin/sysctl/
- ↑ http://mdoc.su/n/sysctl.7
- ↑ sysctl - get or set kernel state
- ↑ https://man.freebsd.org/cgi/man.cgi?query=sysctl&sektion=3&apropos=0&manpath=FreeBSD+14.0-RELEASE+and+Ports
- ↑ http://bxr.su/NetBSD/share/man/man7/sysctl.7
- ↑ https://www.kernel.org/doc/Documentation/sysctl/00-INDEX