NetBSD Advent Calendar 2023 4日目の記事です。今日はNetBSD-10に搭載される新機能を調べてみようと思います。
2日目と3日目の記事でNetBSD-current(開発版)の環境を作ることができました。開発版ではNetBSDの次期リリースに含まれる機能が実装・テストされており、新しい機能を先取りして試してみることができます。せっかくなので、NetBSD-currentに搭載されている、NetBSD-10リリースで提供予定の機能を調べてみます。
NetBSD-10で提供予定の新機能
さっそくNetBSD-10で提供される新機能を調べてみようと思います。wg(4)などのmanページを見ると、以下のような記述があります。
# man wg
...
HISTORY
The wg interface first appeared in NetBSD 10.0.
どうやらmanページの中から"first appeared in NetBSD 10.0."という記述を含むものを抽出すれば良さそうです。以下のようなコマンドで探してみます。
# find /usr/share/man/ -type f \
| grep '\.[0-9]' \
| xargs grep -A1 'first appeared in' \
| grep '.Nx 10\.0' \
| sed -e "s/-.*$//"
抽出したリストは以下になります。一部誤判定も含まれてしまっていますが、これくらいの数であれば抽出後に目視で確認する方法でも良さそうです。
/usr/share/man/man1/scmdctl.1
/usr/share/man/man2/getrandom.2
/usr/share/man/man2/poll.2
/usr/share/man/man2/pollts.2
/usr/share/man/man2/ppoll.2
/usr/share/man/man3/perror.3
/usr/share/man/man3/strerror.3
/usr/share/man/man3/strerror_l.3
/usr/share/man/man3/strerror_r.3
/usr/share/man/man3/sys_errlist.3
/usr/share/man/man3/sys_nerr.3
/usr/share/man/man4/amiga/zz9k.4
/usr/share/man/man4/aht20temp.4
/usr/share/man/man4/bmx280thp.4
/usr/share/man/man4/eqos.4
/usr/share/man/man4/iavf.4
/usr/share/man/man4/igpio.4
/usr/share/man/man4/ixl.4
/usr/share/man/man4/lagg.4
/usr/share/man/man4/mcommphy.4
/usr/share/man/man4/mos.4
/usr/share/man/man4/qat.4
/usr/share/man/man4/scmd.4
/usr/share/man/man4/scmdi2c.4
/usr/share/man/man4/scmdspi.4
/usr/share/man/man4/sgp40mox.4
/usr/share/man/man4/sht3xtemp.4
/usr/share/man/man4/sht4xtemp.4
/usr/share/man/man4/vio9p.4
/usr/share/man/man4/wg.4
/usr/share/man/man8/certctl.8
/usr/share/man/man8/wg
/usr/share/man/man8/wg
/usr/share/man/man8/wgconfig.8
/usr/share/man/man9/strlist.9
/usr/share/man/man9/strlist_append.9
/usr/share/man/man9/strlist_count.9
/usr/share/man/man9/strlist_index.9
/usr/share/man/man9/strlist_match.9
/usr/share/man/man9/strlist_next.9
/usr/share/man/man9/strlist_pmatch.9
/usr/share/man/man9/strlist_string.9
参考までに、manページ(wikipedia)を見ると、セクション番号と内容の対応は以下のようになっています。
章 | 内容 |
---|---|
1 | 汎用コマンド |
2 | システムコール |
3 | ライブラリ関数、特に標準Cライブラリ関数 |
4 | 特殊なファイル(主に/devにあるデバイス)とドライバ |
5 | ファイル形式とその使用法 |
6 | ゲームとスクリーンセーバー |
7 | その他 |
8 | システム管理コマンドとデーモン |
9 | カーネルルーチン |
新機能を調べてみる
試しにscmdctl(1)コマンドを見てみます。
# man scmdctl
...
NAME
scmdctl – Command line utility to interact with a Sparkfun Serial
Controlled Motor Driver
...
DESCRIPTION
The scmdctl utility interacts with a Sparkfun Serial Controlled Motor
Driver (SCMD) and provides a set of convient commands for most of the
functions that the SCMD has.
どうやらSparkFun Serial Controlled Motor Driverというモータドライバを制御するためのコマンドのようです(リンク先では販売終了とあるけど、流通分が大量にある感じなのですかね?)。
scmdctl(1)の"SEE ALSO"を見ると、関連マニュアルとしてscmdi2c(4)やscmdspiが挙げられています。
SEE ALSO
iic(4), spi(4), scmdi2c(4), scmdspi(4),
# man scmdi2c
...
NAME
scmdi2c – I2C frontend to the Sparkfun Serial Controlled Motor Driver
#
# man scmdspi
...
NAME
scmdspi – SPI frontend to the Sparkfun Serial Controlled Motor Driver
これはNetBSD-10に scmdi2c
と scmdspi
というドライバが追加され、ユーザランドから操作するためのコマンドとして csmdctl
が追加された、という話のようです。
このようにして、新たに追加されたmanページからNetBSD-10に追加される新機能を洗い出せるようです。
まとめ
NetBSD-currentで時期リリースされるNetBSD-10の新機能を調べてみました。こまめにNetBSD-currentを更新して、随時追加されている新機能を試してみるのも面白そうです。