Платформа envsys — это платформа датчиков аппаратного мониторинга на уровне ядра в NetBSD . По состоянию на 4 марта 2019 года эта платформа используется около 85 драйверами устройств для экспорта различных датчиков мониторинга окружающей среды , о чем свидетельствуют ссылки на символ [1] в пути NetBSD; с датчиками температуры , [2] является наиболее вероятным типом, который будет экспортироваться любым драйвером. [3] : 32 датчика регистрируются в ядре через API. [4] Потребление и мониторинг датчиков из пользовательского пространства осуществляется с помощью утилиты через файл псевдоустройства , [ 5] демон управления питанием , реагирующий на события ядра запуском скриптов из , [6] [7] а также сторонние инструменты, такие как GKrellM из pkgsrc .[обновлять]sysmon_envsys_register
sys
ENVSYS_STEMP
sysmon_envsys(9)
envstat
proplib(3)
ioctl(2)
/dev/sysmon
powerd
/etc/powerd/scripts/
symon
Платформа позволяет пользователю изменять пределы мониторинга, указанные драйвером, а также драйверу выполнять мониторинг датчиков в пространстве ядра или даже программировать аппаратный чип для автоматического мониторинга системы. [3] : §7.1 Определены два уровня ограничений: критический и предупреждающий , оба из которых дополнительно распространяются на категории превышения и понижения . [3] : §7.1 Если пороговые значения превышены, может быть сгенерировано событие ядра, которое можно перехватить в пользовательской среде для powerd
выполнения заранее определенного пользовательского сценария. [6] [7] Для сравнения, в hw.sensors OpenBSD мониторинг пользовательских значений выполняется в пользовательском пространстве с помощью sensorsd
.
По состоянию на 2019 год [обновлять]сама платформа не обеспечивает управление компьютерными вентиляторами , хотя драйверы по-прежнему могут реализовывать взаимодействие с возможностями управления вентиляторами своих чипов с помощью других средств, например, через специфичный для драйвера интерфейс sysctl , что и является принятым подходом. водителем dbcool(4)
. [8] Однако драйверы для наиболее популярных чипов Super I/Olm(4)
вроде и itesio(4)
вообще не реализуют никакого управления вентиляторами (фактически исторически во всех OpenBSD, NetBSD и DragonFly эти драйверы даже не сообщают о работе вентилятора). цикл вентиляторов — сообщаются только фактические значения частоты вращения). [9] [10]
Эта структура претерпела два крупных изменения: первая версия envsys.h
была принята 15 декабря 1999 года ; со страницей руководства от 27 февраля 2000 г . В период с 2000 по 2007 год на странице руководства по envsys(4) в NetBSD указывалось, что «API является экспериментальным» и что «весь API должен быть заменен на sysctl(8)», «если он будет разработан»; [11] [12] можно отметить, что в 2003 году именно такой подход был использован OpenBSD с sysctl hw.sensors , когда некоторые драйверы envsys(4) были портированы на OpenBSD. [3] : §6.1envsys.4
Вторая редакция произошла 1 июля 2007 г списков свойств с помощью новой библиотеки NetBSD proplib(3) (базовый транспортный уровень между ядром и пользовательской областью по-прежнему реализуется через ioctl ). [13] [3]
. Сериализация с пользовательской областью была переопределена с использованиемПлатформа envsys была предшественником инфраструктуры OpenBSD sysctl hw.sensors в 2003 году, и многие драйверы, а также некоторые типы датчиков были перенесены между NetBSD и OpenBSD. Поддержка датчиков drive
типа была добавлена в NetBSD 1 мая 2007 года , аналогично drive
типу в OpenBSD , что было в то же время, когда bio(4) и bioctl были перенесены из OpenBSD в NetBSD. [3] : §7.1
#define _PATH_SYSMON "/dev/sysmon"
Этот API является экспериментальным и может быть признан устаревшим в любой момент... Весь этот API следует заменить интерфейсом sysctl(8) или механизмом событий ядра, если таковой будет разработан.