関数やルーチンは処理する引数を渡される。
Address Resolution Protocol. IP アドレスを物理ハードウェアアドレスに変換 するために使用される。
American Standard Code for Information Interchange. アルファベットの個々の文字 は、8 ビットコードで表される。Ascii は、書かれた文字を保存するのに最も頻繁に 利用されている。(訳注: Ascii コードは、7 ビットです。)
1 か 0 (オンかオフ)を表す最小単位のデータ。
Bottom Half Handler
カーネル内で待ち行列に登録された仕事を処理するルーチン。
(訳注)古い体系には、オールゼロブロードキャストという方式もあったそうです。 現在、すべてのビットが 0 の場合は、自ホストを表します。以下は、 RFC 1700 からの抄訳です。
IP-address ::= { <Network-number>, <Host-number> } or IP-address ::= { <Network-number>, <Subnet-number>, <Host-number> } また、"-1" という表記を使う場合、フィールドにすべてビット 1 が含まれる ことを意味する。よく利用される特殊ケースに次のようなものがある。 (a) {0, 0} そのネットワークのそのホスト。送信元アドレスとしてのみ、使用できる。 ... (c) { -1, -1} 制限されたブロードキャスト。送信先アドレスとしてのみ、使用できる。 このアドレスを付加されたデータグラムは、送信元の(サブ)ネットから 外にフォワードされてはならない。 (d) {<Network-number>, -1} ブロードキャストは、指定されたネットワークに送られる。送信先アドレス としてのみ、使用できる。 (e) {<Network-number>, <Subnet-number>, -1} ブロードキャストは、指定されたサブネットに送られる。送信先アドレスと してのみ、使用できる。 (f) {<Network-number>, -1, -1} ブロードキャストは、サブネット化されたネットワークのすべてのサブネッ トに送信される。送信先アドレスとしてのみ、使用できる。( RFC 1700, J.Postel, October 1994)
「このシステムでは、割り当てられるブロックのサイズは 2 の累数でなければならない (すなわち、4 バイト、8 バイト、16 バイト、32 バイトなど)。また、最小限の割り 当てサイズも例えば 8 バイトというように決まっている。ブロックは、ペアで処理さ れる。各ブロックには、片割れ、いいかえると「相棒(buddy, アメリカの口語で、「 友達」を意味する。状況によっては「敵」を意味することもある)」が存在する。 (p.119, 「Unix カーネルの魔法」、B.Goodheart, J.Cox, 櫻川貴司監訳, プレンティス ホール, 1997)
8 ビットのデータ。
高水準プログラミング言語。Linux カーネルの大部分は C で書かれている。
Complex Instruction Set Computer. RISC の反対概念。非常に多くの、しばしば 複雑なアセンブリ命令をサポートするプロセッサ。x86 アーキテクチャは CISC アーキテクチャである。
CPU
Central Processing Unit. コンピュータのメインエンジン。microprocessor と processor も参照のこと。
clock tick(訳注)
「(訳注)クロックチックやタイマチックという言葉は、「タイマ割り込みと次のタイ
マ割り込みの間の時間」という意味でも使われる言葉ですが、ここでは、タイマ割り
込みというイベント自体を指しています。」(p.143 注1, 「Linux デバイスドライバ」
, Alessandro Rubini, 山崎康宏 山崎邦子訳, O'Reilly Japan, 1998)
「すべての OS は、何らかの方法でシステム時間を測定し維持しなければならない。 通常、システム時間を実装するには、ハードウェアに一定の間隔で割り込みをトリガ させる。この割り込みルーチンが時間を「カウント」する。Linux では、システム時間 はシステム開始以降の「ティック」数で測定される。1 ティックは(訳注:デフォルトで) 10 ミリ秒に等しいから、タイマ割り込みは 1 秒に 100 回トリガされる。時間は次 の変数に格納される。
unsigned long volatile jiffies:(p.57, 「Linux カーネルインターナル」, M.Beck,Harald Bohme 他, 株式会社クイック 訳, ピアソン, アスキー, 1999)
これは、メモリ内のデータセットで、複数のフィールドから構成されている。
特定のデバイスを制御するソフトウェア。たとえば、NCR 810 デバイスドライバは、 NCR 810 SCSI デバイスを制御する。
Direct Memory Access
(訳注)
CPU 以外がメモリに直接アクセスする機能・仕組み。DMA は、初期の大型コンピュータ
など、ROM を持たないシステムで、人がメモリにデータを書き込む際に使用されたのが
最初である。
「今日の入出力システムに使用されているアイデアの多くは、IBM 360 の初期モデルで
初めて実用に供せられた。IBM 360 は DMA を本格的に採用した最初のマシンである。」
「IBM は 1964 年に、IBM 360 ファミリを発表し、....」
(p648/p390, 「コンピュータの構成と設計: ハードウェアとソフトウェアのインター
フェイス(第 2 版)」, D. Patterson/J. Hennessy, 成田光顕 訳, 日経 BP 社, 1999)
Executable and Linkable Format. Unix System Laboratory で設計された オブジェクトファイルのフォーマット。今日では、Linux 上で最も一般的に使用 されるフォーマットとしての完全に定着している。
Extended IDE
マシン命令とデータを含む一定の構造を持ったファイル。このファイルは、 プロセスの仮想メモリにロードされ、実行されることが可能である。program も 参照のこと。
Fiber Distributed Data Interface。当初は光ファイバーケーブル専用で設計された。 リング状の主幹ネットワークに、ツリー状の枝がぶらさがる。
何らかの行為を実行するソフトウェア。たとえば、ふたつの数字の大きい方を返すなど。
Integrated Disk Electronics.
executale image を参照のこと。
Internet Protocol.
Interprocess Communication(プロセス間通信).
ルーチンを呼び出したりデータ構造を渡す際の標準的な方法。たとえば、コードの ふたつのレイヤー(layer, 層)間のインターフェイスとは、特定のデータ構造を渡したり 返したりするルーチンであるといえるだろう。Linux の VFS は、インターフェイスの 典型である。
Interrupt ReQuest.
Industry Standard Architecture. これは標準規格であるが、フロッピーディスク ドライバなどのシステムコンポーネントに使われる、今日では、やや古くなった データバスインターフェイスである。
動的にロードされるカーネル機能であり、ファイルシステムやデバイスドライバ などで利用される。
一千バイトのデータ。K バイトとも表記される。 (ネットワークで 1000 , それ以外では 1024 バイト)
カーネル付属文書
magic-number.txt
に詳しい解説があります。日本語訳は、JF の
カーネル 2.2 付属文書のページをご覧ください。
カーネル付属文書
devices.txt
に詳しい解説があります。日本語訳は、JF の
カーネル 2.2 付属文書のページをご覧ください。
百万バイトのデータ。M バイトとも表記される。
高度に集積された CPU。現在の大部分の CPU はマイクロプロセッサである。
ファイル。アセンブリ言語の命令か C のような高水準言語かの形式の CPU 命令を 含んでいる。
一般に、ユニキャスト(unicast)は、「一対一」、マルチキャスト(multicast)は、 「一対特定多数」、ブロードキャスト(broadcast)は、「一対全部」の関係に立ちます。 文中では、ブロードキャストの概念をマルチキャストと表現している部分がいくつか あります。イーサネットアドレスについては、 ETHER TYPES を参考にしてください。
「Trailer カプセル化フレームフォーマットは 4.2 BSD の頃にメモリ間のコピーを 効率よく行うために特に VAX のページングシステムに特化したフレームフォーマット である。現在では既に使われなくなっている(RFC 893)。」(p.37, 「インターネット標 準 クイックリファレンス」, 野坂昌己著, O'Reilly Japan, 1999)
マシンコードとデータを含むファイル。実行イメージとなるには、他のオブジェクト ファイルやライブラリとリンクされる必要がある。
物理メモリは、同一サイズのページに分割されている。
メモリ内の位置。メモリ内での他の位置であるアドレスを含んでいる。
これは、プログラムの実行ができる実体である。プロセスは、動作中のプログラムで あると考えることができる。
Microprocessor の略称。CPU と同義。
Peripheral Component Interconnect. コンピュータシステムの周辺機器を相互に 接続する方法を述べた標準規格である。
システムの CPU に代わって仕事をする情報処理機能を持ったプロセッサ。たとえば、 IDE コントローラチップなど。
一貫性をもった CPU 命令のセット。"hello world" の表示といったタスクを実行 する。executable image も参照のこと。
プロトコルは、ネットワークの言語であり、ふたつの協調するプロセスやネットワーク レイヤー間でアプリケーションデータを転送する際に使用される。
チップ内の一定の場所であり、情報や命令の保持のために使用される。
プロセッサ内のレジスタのセット。
Reduced Instruction Set Computer. CISC の反対概念。これは、単純な処理をする 少ないアセンブリ命令しか持たないプロセッサ。ARM と Alpha プロセッサは どちらも RISC アーキテクチャである。
関数と似ているが、厳密に言うと、ルーチンは値を返さない。
Small Computer System Interface.
これはプログラムであり、オペレーティングシステムと人間との間のインターフェイス として機能している。コマンドシェルとも呼ばれ、Linux 上で最も一般的に利用され ているシェルは、bash シェルである。
「(プロセス)シグナルマスクは、プロセスに届かないように、現在ブロックされている シグナルの集合を定義している。マスクの i 番目のビットが 1 であれば、シグナル 番号 i のシグナルが届かないようにブロックされる。」「ここで重要なのは、 シグナルをプロセスに届かないようにブロックするということが、そのシグナルを SIG_IGN で無視することと同じではないという点である。無視されるシグナルは、 将来適切な時点で送り出されるまで保持されるのではなく、捨てられてしまうのであ る。」(p.138, UNIX C プログラミング, David A. Curry, アスキー書籍編集部監訳, アスキー出版, 1997)
Symmetrical multiprocessing. 複数のプロセッサを持つシステムであり、 それらのプロセッサ間では仕事が公平に分担される。 (訳注: Symmetric Multi-Processors ともいう。)
ソケットとは、ネットワークコネクションの一方の端を表すもの。Linux は、 BSD ソケットインターフェイスをサポートしている。
CPU 命令(アセンブラと C のような高水準言語の両方)とデータ。大部分の場合は、 プログラムと言い換えられる。
(Alpha CPU は、32-bit と 64-bit のロード・ストアしかサポートしておらず、 8-bit や 16-bit のロード・ストアができない旨説明し、そのことの長所を述べた後で) 「バイト単位のロード・ストアが出来ないことで、ソフトウェアセマフォや、I/O サブシステムの設計が影響を受けた。この I/O に関する問題に対する Digital(DEC) の 解決策は、I/O 転送の際にいくつかの下位アドレスライン(low-order address lines) を使ってデータサイズを指定し、後でそれをデコードすることでバイト単位の転送を 実現するというものであった。この所謂 Sparse Addressing は、アドレス空間を浪費するとともに、その結果として I/O 空間が非連続 (non-contiguous)なものになってしまった。...」 (chpter 8, Alpha-HOWTO, Neal Crook, LDP, 1997)
1983 年に作成された Unix の派生ソフトウェア。これには、何にもまして、System V IPC メカニズムが含まれていた。
Transmission Control Protocol.
Linux カーネル内で仕事を後回しにするメカニズム。
割り込みハンドラには、「高速ハンドラ(faster version of IRQ handler)」と
「低速ハンドラ」がある。/proc/interrupts
で +
記号の付いた
割り込み番号は、「高速ハンドラ」であることを示す。
「2 種類の割り込みハンドラの主な違いは、高速ハンドラは割り込みのアトミックな
処理を保証するのに対し、低速ハンドラはしない点です。... 要するに、CPU の
「割り込みを有効にする」フラグは高速なハンドラの実行中にはオフにされ、どんな
割り込みにも対処しないようにしています。一方、低速なハンドラが呼び出されると、
カーネルは割り込みの報告を CPU 内で再度有効にし、低速なハンドラ実行中にも
他の割り込みに対処できるようにします。」(p.202, 「Linux デバイスドライバ」,
Alessandro Rubini, 山崎康宏・山崎邦子訳, O'Reilly Japan, 1998)
高速ハンドラの説明
[in
include/asm-i386/irq.h]
低速ハンドラの説明
[in
arch/i386/kernel/irq.c]
User Datagram Protocol.
システム上の物理メモリを実際の以上の容量に見せるためのハードウェアと ソフトウェアとのメカニズム。
「コンピュータにおいては、並列に演算されるビットを示す。」
(p.321, ANSI C 言語辞典, 平林雅英, 技術評論社, 1997)
「CPU とメモリ間で一回に受け渡されるデータの基本単位。...8 ビット CPU は 1
ワードが 8 ビット、16 ビット CPU は 1 ワードが 16 ビット、32 ビット CPU は
1 ワードが 32 ビットとなることが多い。」
(p.848, 標準パソコン用語辞典, 監修赤堀侃司, 秀和システム, 1999)