O HAI THIS BLOG PURPZIEZ 2 B UZED AZ MAH PLESIOUS MEM. :)

2006/01/18

Kernel headers are...

最近,アレな界隈で話題のヘッダ変更.
以下,KernelNewbiesよりヘボ訳.
[Now, kernel headers are sanitising some parts.
The info comes from KernelNewbies.]

----------------------------------------------------------
どのカーネルヘッダを使えば良いの?
[What's going on with the kernel headers ?]

幾つかのディストリビューションは,
二つのカーネルヘッダを持っています.:
[On any distribution,
there are two sets of kernel headers :]

システムカーネルヘッダ
これらは実際のシステムで使用されるカーネルヘッダです.
これらはあなたがユーザ空間で用いるユーティリティを
コンパイルする時のヘッダです.
これらを使ってコンパイルしたモノはユーザスペースに
インストールしなければなりません.
[System kernel headers
These are the kernel headers actually used by the system.
These are the headers you compile user-space utilities against.
They must be installed to compile anything in userspace.]

このヘッダは普通,
/usr/include/asmと/usr/include/linuxにあります.
これらはコピーされたモノで,
Cライブラリのアップグレードをする時以外では,
どんな変更もするべきではありません.
このヘッダは実際に用いるカーネルの種類の違いに対する
互換性の為のコード等が含まれていて,
概念的にはglibcパッケージの一部です.
これらはしばしばkernel-headersやlibc6-devと言う
RPMやパッケージになっています.
[The headers are usually found
in /usr/include/asm and /usr/include/linux.
They are copies and should never be replaced
(unless you are doing a C library upgrade).
These headers contain compatibility code etc. to allow them
to be used with a variety of different running kernels,
and are conceptually part of the glibc package.
They can often be found in the kernel-headers
or libc6-dev RPM/package.]

カーネルソースヘッダ
これらはカーネルソースパッケージの一部の
カーネルヘッダファイルです.
これらはユーザ空間で使うプログラムをコンパイルする為に
使うべきではありません.
しばしば,古いLinuxのディストリビューションでは,
/usr/include/linuxと/usr/include/asmが
/usr/src/linuxにインストールされたカーネルソースツリーの
一部へシンボリックリンクされています.
これ間違った使い方です.
ユーザ空間のプログラムはカーネルヘッダのコピーを
適切に編集して使う必要が有ります.
[Kernel source headers
These are the kernel header files
that are part of the kernel source package.
They should never be used for compiling user-space programs.
Old Linux distributions often made
/usr/include/linux and /usr/include/asm symlinks to
the right parts of the kernel source tree installed
in /usr/src/linux.
This is the wrong thing to do
- userspace programs must use copies of the kernel headers,
suitably modified.]

逆に,カーネルをコンパイルする時,
或いはカーネルモジュールをコンパイルする時は,
このヘッダを使う必要が有ります.
これは外部でパッケージ化されたモジュールを
コンパイルする時の重要な点です.
モジュールのビルドの際には,
適切なヘッダの場所を示さなければなりません.
(例えば,
-I/lib/modules/`uname -r`/build/includeを加える.)
[Conversely,
when compiling the kernel, or kernel modules,
these headers must be used.
This is important when compiling externally packaged modules
- the module build should look in the right place for the headers
(by e.g. adding -I/lib/modules/`uname -r`/build/include).]

この状況のLinusによる説明を読んでみて下さい.
[Read Linus' explanation of the situation.]

カーネル開発者達はユーザ空間に含める事の出来るヘッダの
不適切な部分を削除する事について考え中です.
linux-2.7でこれが可能になる見込みです.

ここに
Linusの説明があります.
[The kernel hackers are thinking about sanitising
a separate set of headers you can include in user space.
Let's hope it will happen in linux-2.7.
Here's what Linus says.]
--------------------------------------------

今,ppc+ppc64でpowerpcな感じにする為に,
色々大変な事になってます... :(
[Now, we are mess by ppc+ppc64 to powerpc sanitising... :(]

0 件のコメント: