<!--Chapter 19 Glossary-->
<sect>用語集<label id="chpter_g">
<p>
<figure><ph vspace="1"><img src="./The-Linux-Kernel-images/penguin2.gif">
</figure>

<descrip>
<!--
Argument
      Functions and routines are passed arguments to process. 
-->
<tag>Argument</tag>
関数やルーチンは処理する引数を渡される。

<!--
ARP Address Resolution Protocol. Used to translate IP addresses into
      physical hardware addresses. 
-->
<tag>ARP</tag>
Address Resolution Protocol. IP アドレスを物理ハードウェアアドレスに変換
するために使用される。

<!--
Ascii American Standard Code for Information Interchange. Each letter of
      the alphabet is represented by an 8 bit code. Ascii is most often
      used to store written characters. 
-->
<tag>Ascii</tag>
American Standard Code for Information Interchange. アルファベットの個々の文字
は、8 ビットコードで表される。Ascii は、書かれた文字を保存するのに最も頻繁に
利用されている。(訳注: Ascii コードは、7 ビットです。)

<!--
Bit A single bit of data that represents either 1 or 0 (on or off). 
-->
<tag>Bit</tag>
1 か 0 (オンかオフ)を表す最小単位のデータ。

<!--
Bottom Half Handler
      Handlers for work queued within the kernel. 
-->
<tag><tt>Bottom Half Handler</tt></tag>
カーネル内で待ち行列に登録された仕事を処理するルーチン。

<label id="broadcast">
<tag>broadcast address(訳注)</tag>
(訳注)古い体系には、オールゼロブロードキャストという方式もあったそうです。
現在、すべてのビットが 0 の場合は、自ホストを表します。以下は、
RFC 1700 からの抄訳です。
<verb>
   IP-address ::= { &lt;Network-number&gt;, &lt;Host-number&gt; }
       or
   IP-address ::= { &lt;Network-number&gt;, &lt;Subnet-number&gt;, &lt;Host-number&gt; }

また、&dquot;-1&dquot; という表記を使う場合、フィールドにすべてビット 1 が含まれる
ことを意味する。よく利用される特殊ケースに次のようなものがある。

   (a) {0, 0}
     そのネットワークのそのホスト。送信元アドレスとしてのみ、使用できる。
...

   (c) { -1, -1}

     制限されたブロードキャスト。送信先アドレスとしてのみ、使用できる。
     このアドレスを付加されたデータグラムは、送信元の(サブ)ネットから
     外にフォワードされてはならない。

   (d) {&lt;Network-number&gt;, -1}
     ブロードキャストは、指定されたネットワークに送られる。送信先アドレス
     としてのみ、使用できる。

   (e) {&lt;Network-number&gt;, &lt;Subnet-number&gt;, -1}
     ブロードキャストは、指定されたサブネットに送られる。送信先アドレスと
     してのみ、使用できる。

   (f) {&lt;Network-number&gt;, -1, -1}
     ブロードキャストは、サブネット化されたネットワークのすべてのサブネッ
     トに送信される。送信先アドレスとしてのみ、使用できる。
</verb>
(<url url="http://www.ring.gr.jp/archives/doc/RFC/rfc1700.txt" 
name="RFC 1700">, J.Postel, October 1994)<newline>



<label id="buddy_algorithm">
<tag>buddy algorithm(buddy system)(訳注)</tag>
「このシステムでは、割り当てられるブロックのサイズは 2 の累数でなければならない
(すなわち、4 バイト、8 バイト、16 バイト、32 バイトなど)。また、最小限の割り
当てサイズも例えば 8 バイトというように決まっている。ブロックは、ペアで処理さ
れる。各ブロックには、片割れ、いいかえると「相棒(buddy, アメリカの口語で、「
友達」を意味する。状況によっては「敵」を意味することもある)」が存在する。
(p.119, 「Unix カーネルの魔法」、B.Goodheart, J.Cox, 櫻川貴司監訳, プレンティス
ホール, 1997)

<!--
Byte 8 bits of data, 
-->
<tag>Byte</tag>
8 ビットのデータ。

<!--
C A high level programming language. Most of the Linux kernel is
      written in C. 
-->
<tag>C</tag>
高水準プログラミング言語。Linux カーネルの大部分は C で書かれている。

<!--
CISC Complex Instruction Set Computer. The opposite of RISC, a
      processor which supports a large number of often complex assembly
      instructions. The X86 architecture is a CISC architecture. 
-->
<tag>CISC</tag>
Complex Instruction Set Computer. RISC の反対概念。非常に多くの、しばしば
複雑なアセンブリ命令をサポートするプロセッサ。x86 アーキテクチャは CISC 
アーキテクチャである。

<!--
CPU Central Processing Unit. The main engine of the computer, see also
      microprocessor and processor. 
-->
<tag><tt>CPU</tt></tag>
Central Processing Unit. コンピュータのメインエンジン。microprocessor と 
processor も参照のこと。

<label id="clock_tick">
<tag><tt>clock tick(訳注)</tt></tag>
「(訳注)クロックチックやタイマチックという言葉は、「タイマ割り込みと次のタイ
マ割り込みの間の時間」という意味でも使われる言葉ですが、ここでは、タイマ割り
込みというイベント自体を指しています。」(p.143 注1, 「Linux デバイスドライバ」
, Alessandro Rubini, 山崎康宏 山崎邦子訳, O'Reilly Japan, 1998)<newline>
<p>
「すべての OS は、何らかの方法でシステム時間を測定し維持しなければならない。
通常、システム時間を実装するには、ハードウェアに一定の間隔で割り込みをトリガ
させる。この割り込みルーチンが時間を「カウント」する。Linux では、システム時間
はシステム開始以降の「ティック」数で測定される。1 ティックは(訳注:デフォルトで)
 10 ミリ秒に等しいから、タイマ割り込みは 1 秒に 100 回トリガされる。時間は次
の変数に格納される。
<verb>
unsigned long volatile jiffies:
</verb>
(p.57, 「Linux カーネルインターナル」, M.Beck,Harald Bohme 他, 株式会社クイック
訳, ピアソン, アスキー, 1999)


<!--
Data Structure
      This is a set of data in memory comprised of fields, 
-->
<tag>Data Structure</tag>
これは、メモリ内のデータセットで、複数のフィールドから構成されている。

<!--
Device Driver
      The software controlling a particular device, for example the NCR
      810 device driver controls the NCR 810 SCSI device. 
-->
<tag>Device Driver</tag>
特定のデバイスを制御するソフトウェア。たとえば、NCR 810 デバイスドライバは、
NCR 810 SCSI デバイスを制御する。

<label id="DMA">
<!--
DMA Direct Memory Access. 
-->
<tag>DMA</tag>
Direct Memory Access
<p>(訳注)<newline>
CPU 以外がメモリに直接アクセスする機能・仕組み。DMA は、初期の大型コンピュータ
など、ROM を持たないシステムで、人がメモリにデータを書き込む際に使用されたのが
最初である。<newline>
「今日の入出力システムに使用されているアイデアの多くは、IBM 360 の初期モデルで
初めて実用に供せられた。IBM 360 は DMA を本格的に採用した最初のマシンである。」
「IBM は 1964 年に、IBM 360 ファミリを発表し、....」
(p648/p390, 「コンピュータの構成と設計: ハードウェアとソフトウェアのインター
フェイス(第 2 版)」, D. Patterson/J. Hennessy, 成田光顕 訳, 日経 BP 社, 1999)

<!--
ELF Executable and Linkable Format. This object file format designed
      by the Unix System Laboratories is now firmly established as the
      most commonly used format in Linux. 
-->
<tag>ELF</tag>
Executable and Linkable Format. Unix System Laboratory で設計された
オブジェクトファイルのフォーマット。今日では、Linux 上で最も一般的に使用
されるフォーマットとしての完全に定着している。

<!--
EIDE Extended IDE. 
-->
<tag>EIDE</tag>
Extended IDE

<!--
Executable image
      A structured file containing machine instructions and data. This file
      can be loaded into a process's virtual memory and executed. See
      also program. 
-->
<tag>Executable image</tag>
マシン命令とデータを含む一定の構造を持ったファイル。このファイルは、
プロセスの仮想メモリにロードされ、実行されることが可能である。program も
参照のこと。

<label id="FDDI">
<tag>FDDI(訳注)</tag>
Fiber Distributed Data Interface。当初は光ファイバーケーブル専用で設計された。
リング状の主幹ネットワークに、ツリー状の枝がぶらさがる。

<!--
Function
      A piece of software that performs an action. For example, returning
      the bigger of two numbers. 
-->
<tag>Function</tag>
何らかの行為を実行するソフトウェア。たとえば、ふたつの数字の大きい方を返すなど。

<!--
IDE Integrated Disk Electronics. 
-->
<tag>IDE</tag>
Integrated Disk Electronics.

<!--
Image See executable image. 
-->
<tag>Image</tag>
executale image を参照のこと。

<!--
IP Internet Protocol. 
-->
<tag>IP</tag>
Internet Protocol.

<!--
IPC Interprocess Communiction. 
-->
<tag>IPC</tag>
Interprocess Communication(プロセス間通信).

<!--
Interface
      A standard way of calling routines and passing data structures. For
      example, the interface between two layers of code might be
      expressed in terms of routines that pass and return a particular data
      structure. Linux's VFS is a good example of an interface. 
-->
<tag>Interface</tag>
ルーチンを呼び出したりデータ構造を渡す際の標準的な方法。たとえば、コードの
ふたつのレイヤー(layer, 層)間のインターフェイスとは、特定のデータ構造を渡したり
返したりするルーチンであるといえるだろう。Linux の VFS は、インターフェイスの
典型である。 

<!--
IRQ Interrupt Request Queue. 
-->
<tag>IRQ</tag>
Interrupt ReQuest.

<!--
ISA Industry Standard Architecture. This is a standard, although now
      rather dated, data bus interface for system components such as
      floppy disk drivers. 
-->
<tag>ISA</tag>
Industry Standard Architecture. これは標準規格であるが、フロッピーディスク
ドライバなどのシステムコンポーネントに使われる、今日では、やや古くなった
データバスインターフェイスである。

<!--
Kernel Module
      A dynamically loaded kernel function such as a filesystem or a
      device driver. 
-->
<tag>Kernel Module</tag>
動的にロードされるカーネル機能であり、ファイルシステムやデバイスドライバ
などで利用される。

<!--
Kilobyte
      A thousand bytes of data, often written as Kbyte, 
-->
<tag>Kilobyte</tag>
一千バイトのデータ。K バイトとも表記される。
(ネットワークで 1000 , それ以外では 1024 バイト)

<label id="magic_number">
<tag>magic number(訳注)</tag>
カーネル付属文書 <tt><htmlurl 
url="./The-Linux-Kernel-images/linux/Documentation/magic-number.txt" 
name="magic-number.txt"></tt> に詳しい解説があります。日本語訳は、JF の
<htmlurl 
url="http://www.linux.or.jp/JF/JFdocs/kernel-docs-2.2/index.html" 
name="カーネル 2.2 付属文書">のページをご覧ください。

<label id="major_number">
<tag>major number(訳注)</tag>
カーネル付属文書 <tt><htmlurl 
url="./The-Linux-Kernel-images/linux/Documentation/devices.txt" 
name="devices.txt"></tt> に詳しい解説があります。日本語訳は、JF の
<htmlurl
url="http://www.linux.or.jp/JF/JFdocs/kernel-docs-2.2/index.html" 
name="カーネル 2.2 付属文書">のページをご覧ください。

<!--
Megabyte
      A million bytes of data, often written as Mbyte, 
-->
<tag>Megabyte</tag>
百万バイトのデータ。M バイトとも表記される。

<!--
Microprocessor
      A very integrated CPU. Most modern CPUs are Microprocessors. 
-->
<tag>Microprocessor</tag>
高度に集積された CPU。現在の大部分の CPU はマイクロプロセッサである。

<!--
Module
      A file containing CPU instructions in the form of either assembly
      language instructions or a high level language like C. 
-->
<tag>Module</tag>
ファイル。アセンブリ言語の命令か C のような高水準言語かの形式の CPU 命令を
含んでいる。

<label id="multicast">
<tag>multicast(訳注)</tag>
一般に、ユニキャスト(unicast)は、「一対一」、マルチキャスト(multicast)は、
「一対特定多数」、ブロードキャスト(broadcast)は、「一対全部」の関係に立ちます。
文中では、ブロードキャストの概念をマルチキャストと表現している部分がいくつか
あります。イーサネットアドレスについては、<url 
url="http://www.ring.gr.jp/archives/doc/RFC/iana/assignments/ethernet-numbers" 
name="ETHER TYPES"> を参考にしてください。

<label id="network_trailer">
<tag>network trailer(訳注)</tag>
「Trailer カプセル化フレームフォーマットは 4.2 BSD の頃にメモリ間のコピーを
効率よく行うために特に VAX のページングシステムに特化したフレームフォーマット
である。現在では既に使われなくなっている(RFC 893)。」(p.37, 「インターネット標
準 クイックリファレンス」, 野坂昌己著, O'Reilly Japan, 1999)

<!--
Object file
      A file containing machine code and data that has not yet been linked
      with other object files or libraries to become an executable image. 
-->
<tag>Object file</tag>
マシンコードとデータを含むファイル。実行イメージとなるには、他のオブジェクト
ファイルやライブラリとリンクされる必要がある。

<!--
Page Physical memory is divided up into equal sized pages. 
-->
<tag>Page</tag>
物理メモリは、同一サイズのページに分割されている。

<!--
Pointer
      A location in memory that contains the address of another location
      in memory, 
-->
<tag>Pointer</tag>
メモリ内の位置。メモリ内での他の位置であるアドレスを含んでいる。

<!--
Process
      This is an entity which can execute programs. A process could be
      thought of as a program in action. 
-->
<tag>Process</tag>
これは、プログラムの実行ができる実体である。プロセスは、動作中のプログラムで
あると考えることができる。

<!--
Processor
      Short for Microprocessor, equivalent to CPU. 
-->
<tag>Processor</tag>
Microprocessor の略称。CPU と同義。

<!--
PCI Peripheral Component Interconnect. A standard describing how the
      peripheral components of a computer system may be connected
      together. 
-->
<tag>PCI</tag>
Peripheral Component Interconnect. コンピュータシステムの周辺機器を相互に
接続する方法を述べた標準規格である。

<!--
Peripheral
      An intelligent processor that does work on behalf of the system's
      CPU. For example, an IDE controller chip, 
-->
<tag>Peripheral</tag>
システムの CPU に代わって仕事をする情報処理機能を持ったプロセッサ。たとえば、
IDE コントローラチップなど。

<!--
Program
      A coherent set of CPU instructions that performs a task, such as
      printing ``hello world''. See also executable image. 
-->
<tag>Program</tag>
一貫性をもった CPU 命令のセット。"hello world" の表示といったタスクを実行
する。executable image も参照のこと。

<!--
Protocol
      A protocol is a networking language used to transfer application data
      between two cooperating processes or network layers. 
-->
<tag>Protocol</tag>
プロトコルは、ネットワークの言語であり、ふたつの協調するプロセスやネットワーク
レイヤー間でアプリケーションデータを転送する際に使用される。

<!--
Register
      A location within a chip, used to store information or instructions. 
-->
<tag>Register</tag>
チップ内の一定の場所であり、情報や命令の保持のために使用される。

<!--
Register File
      The set of registers in a processor. 
-->
<tag>Register File</tag>
プロセッサ内のレジスタのセット。

<!--
RISC Reduced Instruction Set Computer. The opposite of CISC, that is a
      processor with a small number of assembly instructions, each of
      which performs simple operations. The ARM and Alpha processors
      are both RISC architectures. 
-->
<tag>RISC</tag>
Reduced Instruction Set Computer. CISC の反対概念。これは、単純な処理をする
少ないアセンブリ命令しか持たないプロセッサ。ARM と Alpha プロセッサは
どちらも RISC アーキテクチャである。

<!--
Routine
      Similar to a function except that, strictly speaking, routines do not
      return values. 
-->
<tag>Routine</tag>
関数と似ているが、厳密に言うと、ルーチンは値を返さない。


<!--
SCSI Small Computer Systems Interface. 
-->
<tag>SCSI</tag>
Small Computer System Interface.

<!--
Shell This is a program which acts as an interface between the operating
      system and a human user. Also called a command shell, the most
      commonly used shell in Linux is the bash shell. 
-->
<tag>Shell</tag>
これはプログラムであり、オペレーティングシステムと人間との間のインターフェイス
として機能している。コマンドシェルとも呼ばれ、Linux 上で最も一般的に利用され
ているシェルは、bash シェルである。

<label id="signal_mask">
<tag>signal mask(訳注)</tag>
「(プロセス)シグナルマスクは、プロセスに届かないように、現在ブロックされている
シグナルの集合を定義している。マスクの i 番目のビットが 1 であれば、シグナル
番号 i のシグナルが届かないようにブロックされる。」「ここで重要なのは、
シグナルをプロセスに届かないようにブロックするということが、そのシグナルを 
SIG_IGN で無視することと同じではないという点である。無視されるシグナルは、
将来適切な時点で送り出されるまで保持されるのではなく、捨てられてしまうのであ
る。」(p.138, UNIX C プログラミング, David A. Curry, アスキー書籍編集部監訳, 
アスキー出版, 1997)



<!--
SMP Symmetrical multiprocessing. Systems with more than one
      processor which fairly share the work amongst those processors. 
-->
<tag>SMP</tag>
Symmetrical multiprocessing. 複数のプロセッサを持つシステムであり、
それらのプロセッサ間では仕事が公平に分担される。
(訳注: Symmetric Multi-Processors ともいう。)

<!--
Socket A socket represents one end of a network connection, Linux
      supports the BSD Socket interface. 
-->
<tag>Socket</tag>
ソケットとは、ネットワークコネクションの一方の端を表すもの。Linux は、
BSD ソケットインターフェイスをサポートしている。

<!--
Software
      CPU instructions (both assembler and high level languages like C)
      and data. Mostly interchangable with Program. 
-->
<tag>Software</tag>
CPU 命令(アセンブラと C のような高水準言語の両方)とデータ。大部分の場合は、
プログラムと言い換えられる。

<label id="sparse">
<tag>sparse address mapping scheme(訳注)</tag>
<!--sparse-matrix vector vs dense-matrix vector-->

(Alpha CPU は、32-bit と 64-bit のロード・ストアしかサポートしておらず、
8-bit や 16-bit のロード・ストアができない旨説明し、そのことの長所を述べた後で)
<!--
 The absence of byte loads and stores impacts some software semaphores
  and impacts the design of I/O sub-systems. Digital's solution to the
  I/O problem is to use some low-order address lines to specify the data
  size during I/O transfers, and to decode these as byte enables. This
  so-called Sparse Addressing wastes address space and has the
  consequence that I/O space is non-contiguous (more on the intricacies
  of Sparse Addressing when I get around to writing it). Note that I/O
  space, in this context, refers to all system resources present on the
  PCI and therefore includes both PCI memory space and PCI I/O space.
-->
「バイト単位のロード・ストアが出来ないことで、ソフトウェアセマフォや、I/O 
サブシステムの設計が影響を受けた。この I/O に関する問題に対する Digital(DEC) の
解決策は、I/O 転送の際にいくつかの下位アドレスライン(low-order address lines)
を使ってデータサイズを指定し、後でそれをデコードすることでバイト単位の転送を
実現するというものであった。この所謂 Sparse Addressing 
は、アドレス空間を浪費するとともに、その結果として I/O 空間が非連続
(non-contiguous)なものになってしまった。...」
(chpter 8, <htmlurl 
url="http://www.linuxdoc.org/HOWTO/Alpha-HOWTO.html" name="Alpha-HOWTO">, Neal 
Crook, LDP, 1997)



<!--
System V
      A variant of Unix TM produced in 1983, which included, amongst
      other things, System V IPC mechanisms. 
-->
<tag>System V</tag>
1983 年に作成された Unix の派生ソフトウェア。これには、何にもまして、System 
V IPC メカニズムが含まれていた。

<!--
TCP Transmission Control Protocol. 
-->
<tag>TCP</tag>
Transmission Control Protocol.

<!--
Task Queue
      A mechanism for deferring work in the Linux kernel. 
-->
<tag>Task Queue</tag>
Linux カーネル内で仕事を後回しにするメカニズム。

<label id="type_of_interrupts">
<tag>type of interrupts(訳注)</tag>
割り込みハンドラには、「高速ハンドラ(faster version of IRQ handler)」と
「低速ハンドラ」がある。<tt>/proc/interrupts</tt> で <tt>+</tt> 記号の付いた
割り込み番号は、「高速ハンドラ」であることを示す。
<p>「2 種類の割り込みハンドラの主な違いは、高速ハンドラは割り込みのアトミックな
処理を保証するのに対し、低速ハンドラはしない点です。... 要するに、CPU の
「割り込みを有効にする」フラグは高速なハンドラの実行中にはオフにされ、どんな
割り込みにも対処しないようにしています。一方、低速なハンドラが呼び出されると、
カーネルは割り込みの報告を CPU 内で再度有効にし、低速なハンドラ実行中にも
他の割り込みに対処できるようにします。」(p.202, 「Linux デバイスドライバ」, 
Alessandro Rubini, 山崎康宏・山崎邦子訳, O'Reilly Japan, 1998)
<newline>高速ハンドラの説明
[in <htmlurl url="./The-Linux-Kernel-images/linux/include/asm-i386/irq.h" 
name="include/asm-i386/irq.h">]
<newline>低速ハンドラの説明
[in <htmlurl url="./The-Linux-Kernel-images/linux/arch/i386/kernel/irq.c" 
name="arch/i386/kernel/irq.c">]


<!--
UDP User Datagram Protocol. 
-->
<tag>UDP</tag>
User Datagram Protocol.

<!--
Virtual memory
      A hardware and software mechanism for making the physical
      memory in a system appear larger than it actually is. 
-->
<tag>Virtual Memory</tag>
システム上の物理メモリを実際の以上の容量に見せるためのハードウェアと
ソフトウェアとのメカニズム。

<label id="chapter_g_word">
<tag>word(訳注)</tag>
「コンピュータにおいては、並列に演算されるビットを示す。」
(p.321, ANSI C 言語辞典, 平林雅英, 技術評論社, 1997)<newline>
「CPU とメモリ間で一回に受け渡されるデータの基本単位。...8 ビット CPU は 1 
ワードが 8 ビット、16 ビット CPU は 1 ワードが 16 ビット、32 ビット CPU は
 1 ワードが 32 ビットとなることが多い。」
(p.848, 標準パソコン用語辞典, 監修赤堀侃司, 秀和システム, 1999)

</descrip>