[JM:03888] Re: [POST:DP] modules.dep.5 (kmod-29)

Back to archive index
IIJIMA Hiromitsu delmo****@denno*****
2022年 9月 26日 (月) 18:22:16 JST


いいじまです。分かる範囲で。

>   These files are not intended for editing or use by any additional
>   utilities as their format is subject to change in the future.
...
>   こうしたファイルは、外部のいかなるユーティリティによっても、 編集・使用
>   されることを想定していません。 ファイルの書式は、将来変わるかもしれない
>   のです。

> editing と use を同格と取りましたが、正しいかどうか。

その解釈でしっかり辻褄が合うと考えます。
useは「使用(利用)すること」という意味の名詞ですね。

わざわざeditingと併記していることから、
・editing=ファイルを書き換えて当該モジュールの振舞を操作すること
・use=ファイルの中身を読解・解釈して何らかの判断を下すこと
と読み取れます。

> "additional utilities" を kmod のツール以外のユーティリティと
> 考えましたが、これも正しいかどうか。正しくないとすれば、何なのか。

これも正しいと考えます。

> "as their format is subject to change in the future" の
> "as" もよく分かりません。

このasは普通に「理由を示すas」だと思います。

>  「ファイルの書式が変わるかもしれない」ことが、
> 「外部ユーティリティによって使用されることを意図しない」ことの
> 十分な理由になるとは思えませんし、どうつながっているんでしょう。

その次の文を読むと、設定ファイルのバイト列を独自に解読するコードは
「車輪の再発明」だから書くな、必要と思われる機能はすべて modinfo(8) に
encupsulate してあるからそれを下請けとして使え、という意味に取れます。

その理由を具体的に掘り下げていくと、次の3つが挙げられると思います。

●カーネルモジュールの設定ミスはほんの些細な誤りでもブルースクリーン、
 さらには不可逆的データ損失に直結しかねないため、そういう最悪の事態を
 あらかじめ牽制したい。そもそもLinuxマシンの運用管理者の圧倒的多数は、
 カーネルやドライバなどに関する深い知識・技術を有しない人たちである。

●後方非互換な仕様変更が行われた後の移行期に、旧仕様のファイルを使う
 動作環境と、新仕様のファイルを使う動作環境が、同一の管理者のもとに
 混在する恐れがある。その場合に、同じ内容のツールなのに別々のソース
 コード・別々のバイナリを用意するようでは混乱が生じる恐れがある。
 それを避けるためにも modinfo(8) を使え。
 
●近年ではLinux界隈でもビルド済アプリのバイナリ配布がごく一般的に
 なっているため、仕様変更と同時にノータイムでサードパーティー
 アプリが追随することは期待できない。

 ※特に、新しいカーネルのアルファ版を開発している最中には、
  設定ファイルの仕様自体がコロコロと変わる可能性がある。
  それでも、設定ファイルの読み書きを純正のコマンド類に encupsulate
  しておき、設定ファイルの仕様変更とともに各コマンドをそれに追随
  させてカーネルと同梱で配布すれば、ユーザーサイドでコードを
  書き直す必要がなくなる。

ただこの「勝手にいじるな」を100%厳守すべきかというと、さすがに「設定ファイルが
大々的に破損していてシステムが正常に稼働しないため、自己責任を前提に手作業で
(あるいは急造のスクリプトで)修復する」というシナリオあたりは例外でしょう。

-- 
飯嶋 浩光/でるもんた・いいじま @ PC 
IIJIMA Hiromitsu, aka Delmonta
Email <delmo****@denno*****>



linuxjm-discuss メーリングリストの案内
Back to archive index