unixはC言語で書かれている?不思議?

OKWave

2007-07-31 13:00

unixはC言語で書かれている?不思議?

unix、linuxはC言語で書かれている、と聞いたのですが、不思議なことがあります。

そもそもC言語を書くためにはviとか必要ですしコンパイルするにもccとかgccとか必要ですよね?

viとかccとかを使うには、また、unixが必要な気がします。どうやってunixを作ることができたのでしょうか?

ニワトリと卵みたいですごく不思議なのですが・・

linuxのところで ​http://virus.okwave.jp/kotaeru.php3?q=2246024​ のような質問をしているうちに不思議に思ってきました。

良回答

最初に搭載するプロセッサに合ったアセンブラやそれよりも低級言語でC言語のコンパイラをまず書きます。それからOSを構築していったものと考えられます。私も10年ぐらい前にUnixを使った頃あなたと同じような疑問を持ちましたが、良く分かっている人間からそういう答えをもらいました。確かこのようなことをいったのを聞いたことがあります。

また、現在の例を考えてもらえばわかるのですが、例えばあるコード(ゲーム機など)のソフトなどを開発するためにはWindows上で開発しますよね?

 Source code -> Target machine code
   compile 

ある機械にあったコンパイラを作りそれでシステムを構築するわけです。つまり違うOSでターゲットとなるマシンにあったコンパイラを書き OSやそのAPIを書きアプリケーションを書いていく感じです。どちらも似たような答えですが、いずれかのうちの一つでしょう。他のOSでコンパイラを書き構築したかマシン語をベースにそのマシーンで開発していったかのいずれかと思います。

回答

Cコンパイラーをアセンブラー(又は機械語)で書いたと考えれば判りやすいでしょう。 そのCコンパイラーを使ってUNIXを書くのです。 実際には程度の低いコンパイラーを先に作ってこれを使ってCコンパイラーを作り そのCコンパイラーを使ってUNIXを書く方法もあります。

後者の方法はコンパイラー・コンパイラーと呼ばれる技術分野です。 文字通りコンパイラーを作るためのコンパイラーです。

余談ですが吊り橋にロープを渡す場合、まず細いワイヤーをヘリで渡し 段々太いワイヤーに取り替えて最後にロープを渡すのに似ています。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ホワイトペーパー

新着

ランキング

  1. セキュリティ

    従来型のセキュリティでは太刀打ちできない「生成AIによるサイバー攻撃」撃退法のススメ

  2. セキュリティ

    AIサイバー攻撃の増加でフォーティネットが提言、高いセキュリティ意識を実現するトレーニングの重要性

  3. 運用管理

    メールアラートは廃止すべき時が来た! IT運用担当者がゆとりを取り戻す5つの方法

  4. 開発

    「スピード感のある価値提供」と「高品質な製品」を両立させるテスト会社の使い方

  5. セキュリティ

    「どこから手を付ければよいかわからない」が約半数--セキュリティ運用の自動化導入に向けた実践ガイド

ZDNET Japan クイックポール

所属する組織のデータ活用状況はどの段階にありますか?

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]