Linux Kernel 2.6 Documentation:
/usr/src/linux/Documentation/highuid.txt
highuid.txt
16 ビット UID から 32 ビット UID への変更に関するメモ
[プレインテキスト版]
- 原著作者: Chris Wing <wingc@umich.edu>
- 翻訳者: 川崎 貴彦 <takahiko(a)hakubi.co.jp>
- バージョン: 2.6.6
- 翻訳日時: 2004/05/17
16 ビット UID から 32 ビット UID への変更に関するメモ
- ユーザ空間とカーネル空間とのあいだで ioctl またはデータ構造をやりとり
するときには、カーネルコードでは __kernel_uid_t と __kernel_uid32_t を
考慮しなければなりません。
- カーネル内部の構造体とコードでは、uid_t と gid_t を使用します。
32 ビットユーザ ID に移行するために、全ての Linux アーキテクチャでおこなう
べき残りの作業は、次のとおりです。
- ディスククォータには、UID/GID の最大値とは関係のない、面白い制限があり
ます。ファイルシステムの最大ファイルサイズによって制限されるのです。
というのも、クォータのレコードは、当該 UID に対応するオフセットに書か
れるからです。クォータシステムが大きな UID を適切に扱えるかどうかに
ついては、さらに調査が必要です。全てのアーキテクチャにおいて 64 ビット
のファイルオフセットを扱えるのであれば、このことは問題とはならないで
しょう。
- システム・アカウンティング・ファイルとの後方互換性を維持するかしないか、
つまりコメントが言うように後方互換性を切り捨てるべきか、を決める (現在、
旧 16 ビット UID と GID は、依然としてディスクに書き込まれており、以前
パディングスペースだった場所は、独立の 32 ビット UID と GID を格納する
のに使われています)。
- エミュレートされる OS が 16 ビット UID を使用していた場合、OS エミュ
レーションが 16 ビット UID 互換のシステムコールを呼び出しているのか、
それとも、そうでない場合、32 ビット UID システムコールを適切に使用して
いるのか、を確認する必要がある。
これは少なくとも次のものに影響があります。
SunOS エミュレーション
Solaris エミュレーション
Intel の iBCS
sparc64 での sparc32 エミュレーション
(sparc32 に加えられた、新しい 32 ビット UID システムコール全てを
サポートする必要があります)
- 全てのファイルシステムが適切に動作することを確認する。
現在のところ、32 ビット UID は次のファイルシステムに対しては動くはずです。
ext2
ufs
isofs
nfs
coda
udf
次のファイルシステムに対する ioctl() の修正はできています。
ncpfs
smbfs
次のファイルシステムには、16 ビット UID のラップアラウンドを防止する
簡単な修正が施されています。
minix
sysv
qnx4
他のファイルシステムは、まだチェックしていません。
- ncpfs ファイルシステムと smpfs ファイルシステムは、現在のところ、全ての
ioctl() において 32 ビット UID を使用できません。32 ビット UID を取る
新しい ioctl() が幾つか追加されましたが、もっと必要です (ユーザ空間と
カーネル空間とのあいだでやりとりされる新しいデータ構造体を取るものも
必要です)。
- ELF コアダンプ・フォーマットは、arm, i386, m68k, sh, sparc32 での 16
ビット UID しかサポートしていません。これを修正するのは、おそらく重要な
ことではありませんが、やるとしたら、新しい ELF セクションを追加する必要
があるでしょう。
- カーネル内 NFS サーバをコントロールするのに使われる ioctl() は、arm,
i386, m68k, sh, sparc32 では 16 ビット UID しかサポートしません。
- AX25 ネットワークの UID マッピング機能が適切に動作することを確認する
(ユーザ空間とカーネル空間とのあいだのやりとりで、常に 32 ビット整数が
使われているので、安全なはずです)。
Chris Wing
wingc@umich.edu
最終更新日: 2000 年 1 月 11 日
------------------------------------------------------------
翻訳団体: JF プロジェクト < http://www.linux.or.jp/JF/ >
翻訳日: 2004/05/17
翻訳者: 川崎 貴彦 <takahiko(a)hakubi.co.jp>
校正: IKEDA Katsumi <ikedak(a)rg8.so-net.ne.jp>
校正: Seiji Kaneko <skaneko(a)a2.mbn.or.jp>
Linux カーネル 2.6 付属文書一覧へ戻る