編集部からのお知らせ
RPA導入、もう1つのポイント
「ニューノーマルとIT」新着記事一覧

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 記事を毎朝メールでまとめ読み(登録無料)

特集

CIO

モバイル

セキュリティ

スペシャル

ホワイトペーパー

新着

ランキング

  1. セキュリティ

    セキュアなテレワークでビジネスを継続する「緊急時対応チェックリスト」

  2. クラウドコンピューティング

    ゼロトラストネットワークアクセス(ZTNA)を今すぐ採用すべき理由

  3. ビジネスアプリケーション

    今からでも遅くない、在宅勤務への本格移行を可能にする環境整備のポイント

  4. クラウド基盤

    アプリ開発者とIT管理者、両者のニーズを両立させるプラットフォームとは?

  5. ビジネスアプリケーション

    テレワークに立ちはだかる「紙・ハンコ」の壁を経費精算のペーパーレス化からはじめて乗り越える

NEWSLETTERS

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

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

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