Jump to content

sysctl

sysctl
Написано в С
Операционная система Unix-подобный (BSD)
Тип Конфигурация системы

sysctl — это программный механизм в некоторых Unix-подобных операционных системах, который считывает и изменяет атрибуты ядра системы , такие как номер версии, максимальные ограничения и настройки безопасности. [1] Он доступен как системный вызов для скомпилированных программ, так и команда администратора для интерактивного использования и создания сценариев. Linux дополнительно предоставляет sysctl как виртуальную файловую систему .

В BSD эти параметры обычно представляют собой объекты в базе управляющей информации (MIB), которые описывают настраиваемые ограничения, такие как размер сегмента общей памяти, количество потоков, которые операционная система будет использовать в качестве клиента NFS , или максимальное количество процессов. в системе; или описать, включить или отключить поведение, такое как переадресация IP , ограничения безопасности для суперпользователя («уровень безопасности») или выходные данные отладки. [1]

В OpenBSD и DragonFly BSD sysctl также используется в качестве транспортного уровня для инфраструктуры hw.sensors для мониторинга оборудования . [2] тогда как NetBSD использует системный вызов ioctl для своего аналога sysmon envsys . И sysctl, и ioctl — это два системных вызова , которые можно использовать для добавления дополнительных функций ядра без добавления еще одного системного вызова ; [3] например, в 2004 году в OpenBSD 3.6, когда была представлена ​​утилита tcpdrop , sysctl использовался в качестве основного системного вызова. [3] [4] Во FreeBSD , хотя и нет структуры датчиков, отдельные датчики температуры и другие датчики по-прежнему обычно экспортируются через дерево sysctl через Newbus , например, как в случае с aibs(4) драйвер, доступный во всех четырех системах BSD, включая FreeBSD. [5] [6] [7]

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

Эта возможность впервые появилась в 4.4BSD . Его преимущество перед жестко запрограммированными константами заключается в том, что изменения параметров можно производить динамически, без перекомпиляции ядра.

Исторически, хотя сами переменные ядра можно было изменить с помощью sysctl, элементы, составляющие MIB дерева sysctl, были жестко закодированы во время компиляции, и по состоянию на 2019 год это в основном все еще имеет место в OpenBSD (за некоторыми исключениями, такими как hw.sensors , который управляет и предоставляет собственное динамическое поддерево). Во FreeBSD есть «внутренняя магия sysctl» для динамического управления деревом sysctl с 1995 года; В NetBSD с декабря 2003 года имеется собственная реализация динамического дерева системных систем. [5] [6]

В Linux механизм интерфейса sysctl также экспортируется как часть procfs под именем /proc/sys (не путать с каталогом /sys каталог ). Эта разница означает, что проверка значения какого-либо параметра требует открытия файла в виртуальной файловой системе , чтения его содержимого, его анализа и закрытия файла. Системный вызов sysctl существует в Linux, но он устарел и не имеет функции-обертки в glibc ; обычно он недоступен из-за того, что во многих дистрибутивах ядро ​​настроено без CONFIG_SYSCTL_SYSCALL; поэтому не рекомендуется к использованию. [8]

Когда включена переадресация IP, ядро ​​операционной системы будет действовать как маршрутизатор . Во FreeBSD , NetBSD , OpenBSD , DragonFly BSD и Darwin / Mac OS X параметр net.inet.ip.forwarding можно установить на 1, чтобы включить это поведение. В Linux этот параметр называется net.ipv4.ip_forward .

В большинстве систем команда sysctl -w Параметр =1 включит определенное поведение. Это сохранится до следующей перезагрузки. Если это поведение должно быть включено при каждой загрузке системы, строка параметр =1 можно добавить/перезаписать в файл /etc/sysctl.conf . Кроме того, некоторые переменные sysctl невозможно изменить после загрузки системы. Эти переменные (в зависимости от переменной, версии и версии BSD) должны быть установлены статически в ядре во время компиляции или установлены в /boot/loader.conf .

См. также

[ редактировать ]
  1. ^ Jump up to: а б «sysctl(7) — переменные системной информации» . Перекрестная ссылка BSD . НетБСД .
  2. ^ Константин Александрович Муренин (17 апреля 2007 г.). Универсальное взаимодействие с аппаратными мониторами микропроцессорной системы . Материалы Международной конференции IEEE по сетям, зондированию и управлению 2007 г., 15–17 апреля 2007 г. Лондон, Великобритания: IEEE . стр. 901–906. дои : 10.1109/ICNSC.2007.372901 . ISBN  978-1-4244-1076-7 . IEEE ICNSC 2007, стр. 901–906.
  3. ^ Jump up to: а б Федерико Бьянкуцци (28 октября 2004 г.). «OpenBSD 3.6 Live» . ONLamp . О'Рейли Медиа . Архивировано из оригинала 29 октября 2004 г. Проверено 20 марта 2019 г.
  4. ^ Маркус Фридл (2004). "tcpdrop.c" . Перекрестная ссылка BSD . OpenBSD .
  5. ^ Jump up to: а б Муренин Константин Алексеевич; Рауф Бутаба (17 марта 2009 г.). «8.3. Структура датчиков в FreeBSD CVS». Структура аппаратных датчиков OpenBSD (PDF) . Материалы AsiaBSDCon 2009, 12–15 марта 2009 г. Токийский научный университет, Токио, Япония (опубликовано 14 марта 2009 г.). Архивировано из оригинала 20 июня 2010 г. Проверено 4 марта 2019 г. {{cite conference}}: CS1 maint: bot: исходный статус URL неизвестен ( ссылка )
  6. ^ Jump up to: а б Константин Александрович Муренин (21 мая 2010 г.). «8.3. Структура датчиков в FreeBSD CVS». Аппаратные датчики OpenBSD — мониторинг окружающей среды и управление вентиляторами ( диссертация на степень магистра математики ). Университет Ватерлоо : UWSpace. hdl : 10012/5234 . Идентификатор документа: ab71498b6b1a60ff817b29d56997a418.
  7. ^ «aibs(4) — ASUSTeK AI Booster ACPI ATK0110, датчик напряжения, температуры и вентилятора» . Перекрестная ссылка BSD . FreeBSD . 2010.
  8. ^ «sysctl(2): чтение/запись системных параметров» . man7.org . 15 сентября 2017 г. Проверено 4 января 2018 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d9990110ea4385c8eb2559ea6c6d0e1a__1713638940
URL1:https://arc.ask3.ru/arc/aa/d9/1a/d9990110ea4385c8eb2559ea6c6d0e1a.html
Заголовок, (Title) документа по адресу, URL1:
sysctl - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)