| 環境システムフレームワーク(バージョン2) | |
|---|---|
| 原作者 | フアン・ロメロ・パルディネス(2007年) |
| 開発者 | NetBSD Foundation , Inc. |
| リリース | 2007年7月1日 ( 2007-07-01 ) |
| 執筆 | C |
| オペレーティング·システム | NetBSD 5.0以降 |
| タイプ | システム監視 |
| ライセンス | BSDライセンス#4条項 |
| Webサイト | envsys(4) |
| リポジトリ | /sys/sys/envsys.h |
| 環境システムAPI | |
|---|---|
| 原著著者 | ティム・ライトナーとビル・スクワイア(2000年) |
| 開発者 | NetBSD Foundation , Inc. |
| リリース | 1999年12月15日 ( 1999-12-15 ) |
| 最終リリース | NetBSD 4.0.1 / 2008年10月14日 ( 2008-10-14 ) |
| 執筆 | C |
| オペレーティング·システム | NetBSD 1.5~4.0.1 |
| タイプ | システム監視 |
| ライセンス | BSDライセンス#4条項 |
| Webサイト | NetBSD 4.0 の envsys(4) |
| リポジトリ | /sys/sys/envsys.h |
envsysフレームワークは、NetBSDにおけるカーネルレベルのハードウェア監視センサーフレームワークです。 2019年3月4日現在 、このフレームワークは、NetBSD のパス内の[ 1 ]シンボルの参照によって証明されるように、さまざまな環境監視センサーをエクスポートするために85 近いデバイス ドライバによって使用されています。温度センサーでは、[ 2 ]が、任意のドライバによってエクスポートされる可能性が最も高いタイプです。[ 3 ] : 32センサーは、 API を介してカーネルに登録されます。 [ 4 ] ユーザーランドからのセンサーの使用と監視は、ユーティリティを介して擬似デバイスファイルに対して実行されます。 [ 5 ] 、カーネル イベントに応答してスクリプトを実行する電源管理デーモン、[ 6 ] [ 7 ] 、およびpkgsrcからのGKrellMなどのサードパーティツールによって実行されます。sysmon_envsys_registersysENVSYS_STEMPsysmon_envsys(9)envstatproplib(3)ioctl(2)/dev/sysmonpowerd/etc/powerd/scripts/symon
このフレームワークでは、ユーザーがドライバによって指定された監視制限を変更したり、ドライバがカーネル空間でセンサーの監視を実行したり、ハードウェア チップをプログラムしてシステムを自動的に監視したりすることができます。[3]: §7.1 2 つの制限レベルが定義されています。critical とwarningで、どちらもさらに、過剰と不足のカテゴリに拡張されます。 [ 3 ] : §7.1制限しきい値を超えると、カーネル イベントが生成され、ユーザー ランドで捕捉して、powerd事前に定義されたユーザー スクリプトを実行できます。[ 6 ] [ 7 ]これに対し、OpenBSD のhw.sensorsでは、ユーザー定義値の監視は、ユーザー スペースで実行されますsensorsd。
2019年現在フレームワーク自体はコンピュータのファン制御を容易にするものではありませんが、ドライバは、例えばドライバ固有のsysctlインターフェースなど、他の手段でチップのファン制御機能とのインターフェースを実装することは可能です。これは、ドライバが採用しているアプローチですdbcool(4)。[ 8 ] ただし、やのような最も人気のあるSuper I/Oチップのドライバはlm(4)、itesio(4)ファン制御をまったく実装していません (実際、歴史的に、OpenBSD、NetBSD、DragonFly のすべてにおいて、これらのドライバはファンのデューティ サイクルさえ報告せず、実際の RPM 値のみを報告します)。[ 9 ] [ 10 ]
このフレームワークは2つの大きな改訂を経ており、最初のバージョンは1999年12月15日envsys.hにコミットされ、manページは2000年2月27日に公開されました。 2000年から2007年の間、NetBSDのenvsys(4)のマニュアルページには、「APIは実験的である」こと、そして「もしsysctl(8)が開発されれば、API全体をそれに置き換えるべきである」と記載されていました。[ 11 ] [ 12 ] 2003年に、envsys(4)ドライバの一部がOpenBSDに移植された際に、 OpenBSDがsysctl hw.sensorsでまさにこのアプローチを採用したことが注目されます。[ 3 ] : §6.1 envsys.4
2回目の改訂は2007年7月1日(2007-07-01)に行われました。NetBSDの新しいproplib(3)ライブラリの助けを借りて、ユーザーランドとのシリアライゼーションがプロパティリストを使用して再実装されました(カーネルとユーザーランド間の基盤となるトランスポート層は、引き続きioctlを介して行われます)。[ 13 ] [ 3 ]
envsysフレームワークは、2003年にOpenBSDのsysctl hw.sensorsフレームワークの前身となり、多くのドライバと一部のセンサータイプがNetBSDとOpenBSD間で相互に移植されてきました。2007年5月1日には、OpenBSDの型driveと同様に、 NetBSDに型のセンサーのサポートが追加されました。これは、 bio(4)とbioctlがOpenBSDからNetBSDに移植されたのと同時期です。 [ 3 ]:§7.1drive
sysmon_envsys_register()" . BSD 相互参照. NetBSD .ENVSYS_STEMP#define _PATH_SYSMON "/dev/sysmon"この API は実験的なものであり、いつでも非推奨になる可能性があります... この API 全体は、sysctl(8) インターフェースまたはカーネル イベント メカニズムが開発された場合、それに置き換えられる必要があります。