UNIX哲学とは? わかりやすく解説

UNIX哲学

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/04/04 07:23 UTC 版)

UNIX哲学(ユニックスてつがく、: The UNIX Philosophy)とは、ソフトウェア開発の文化的な規範と哲学のまとまりであり、UNIX OS開発者たちの経験に基づくものとされている。その内容は発言者によって異なり、以下の点に留意が必要である:

  • UNIXが開発された1971年から10年以上後の発言が大半である
  • 発言者にはUNIX開発と関わり合いが希薄な人物も含まれている
  • UNIXを生み出したケン・トンプソンデニス・リッチーは"哲学"(philosophy)という表現をしていない
  • 哲学に反して商用UNIXには大規模で多機能なソフトウェアが含まれている場合がある

すなわち、この哲学は当初から一貫して存在していたわけではなく、UNIXに関わる全ての人の共通認識でもなく、UNIXの現在や過去の状況を必ずしも的確に表現しているわけでもない。妥当性や有効性が普遍的に立証されているわけでもない。UNIXに関心を示す人々の一部の希望、願望、理想にすぎない。

起源

1978年のBell System Technical Journal[1]ダグラス・マキルロイ[2]他によって記載されている:

  1. それぞれのプログラムが1つのことをうまくこなすように。新しい仕事をするために、新しい「機能」を追加して古いプログラムを複雑にするのではなく、新しいプログラムを構築する。
  2. すべてのプログラムの出力が、まだ見ぬ別のプログラムの入力になること。出力に余計な情報を入れないように。厳密に列挙された入力形式やバイナリ形式は避ける。インタラクティブな入力にこだわらない
  3. ソフトウェアはもちろんOSであっても、早期に、理想としては数週間以内に試せるよう設計・構築する。不器用な部分は躊躇なく捨てて作り直すように
  4. 回り道をしても、使い終わった後に捨てることになっても、プログラミングの作業を軽減するためには、お手伝いさんではなくツールを使う

その後、en:Peter H. Salusが『A Quarter-Century of Unix』(1994年)[2]にまとめている:

  • 一つのことをうまくやるプログラムを書く
  • 連携するプログラムを書く
  • 普遍的なインターフェースであるテキストストリームを扱うプログラムを書く

1974年のUnix論文[3]で、ケン・トンプソンデニス・リッチーはUNIXの設計で以下を考慮したと述べている:

  • プログラムを書いたり、テストしたり、実行したりするのが簡単に行えるようシステムを設計した
  • 当初のバージョンでは1人のユーザーしかサポートしていなかったものの、システムを対話的に使用できるようにした
  • 適切に設計された対話型システムは、「バッチ処理」システムよりもはるかに生産的で満足のいくものであると信じている
  • サイズの制約は経済性だけでなく、かえって設計をエレガントにする方向に働いた
  • すべてのUnixソフトウェアはUnixの下で保守されている

マキルロイ: UNIXの四半世紀

パイプの発明者でありUNIX創始者の一人でもあるマキルロイはこの哲学を以下のように要約した:

これがUNIXの哲学である。
一つのことを行い、またそれをうまくやるプログラムを書け。
協調して動くプログラムを書け。
標準入出力テキスト・ストリーム)を扱うプログラムを書け。標準入出力は普遍的インターフェースなのだ。 — ダグラス・マキルロイ、UNIXの四半世紀

この哲学は「一つのことを、うまくやれ」とさらに要約されることがある。このうち3つめだけがUNIXに特有である。

パイク: Cプログラミングに関する覚え書き

(注意: これは直接にはUNIX哲学ではない。強い結びつきのあるC言語の記述ではある)

ロブ・パイクNotes on Programming in C [4]で以下をプログラミングの格言として提案している。UNIX哲学と共通点がある。

  • ルール1: プログラムがどこで時間を消費することになるか知ることはできない。ボトルネックは驚くべき箇所で起こるものである。したがって、どこがボトルネックなのかをはっきりさせるまでは、推測を行ったり、スピードハックをしてはならない。
  • ルール2: 計測すべし。計測するまでは速度のための調整をしてはならない。コードの一部が残りを圧倒しないのであれば、なおさらである。
  • ルール3: 凝った(Fancy)アルゴリズム




固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「UNIX哲学」の関連用語

UNIX哲学のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



UNIX哲学のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのUNIX哲学 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS