プログラムを実行する仕組み については、すでに説明しました。あらゆるプログラムは、最終的に、 一連のバイト列、すなわちコンピュータの マシン言語 (machine language) で表現された命令として実行されなければなりません。 しかし、人間は、こうしたマシン言語は上手く扱えません。 そうしたことはもう極めて稀になり、ハッカーの間でも 黒魔術化しています。
カーネル自体の内部にあるハードウェアインターフェイスを直接サポートする少量の 部分を除くと、ほぼ全ての Unix コードは、今日では、 高水準言語 (high-level language) で書かれています。(この用語の「高水準」という部分は、古くさい言葉で、 「低水準」の アセンブラ言語 (assembler languages と区別する意味で 使用されるものです。アセンブラ言語とは、基本的にマシン語を若干分かり易く したような言語のことです)。
高水準言語には、いろいろな種類があります。こうしたプログラム言語について 話す際は、プログラムのソースコード (source code) (すなわち、人間が作成したもので、変更が可能なコード) は、何らかの変換処理を 経ることで、マシンが実際に実行できるマシンコードに変換される必要がある のだということを是非頭の片隅で覚えておいてください。