パスワードを忘れた? アカウント作成
16011 story

Linux カーネル 0.01の誕生 20

ストーリー by mhatta
始まりはいつも突然に 部門より

kazside 曰く、

本家Slashdotでも取り上げられていますが、KernelTrapにリリースまでの経緯やソースコード、若い頃のLinus Torvaldsの写真も添付したLinux 0.01リリースに関する記事が出ています。 Linusが当初はカーネルをFreaxと呼ぶつもりであったことは知りませんでしたが、当時の状況を知っている人達にとっては非常に懐かしい事項が並んでいるかと思います。ライセンスも当初はGPLではなかったことが見えますし、GNUに比べて自分のOSが如何に小さなものかという謙遜も見えるので、そのあたりも新鮮に感じるかもしれません。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2007年07月29日 9時37分 (#1197707)
      0. 本ディレクトリの内容

    linux-0.01.tar.Z - kernel のソース
    bash.Z   - テスト用の bash の圧縮したバイナリ
    update.Z  - 圧縮した update のバイナリ
    RELNOTES-0.01  - このファイル

      1. 短い前置き

    これは、i386 シリーズを使用した AT 互換機で動作する minix 風のフリーな
    カーネルです。ソースコード全部が含まれています。このソースは2台の
    異なった機器で動作しました。現在のところ、異なった機器で動作させるには
    ソースコードをそれぞれの機器でコンパイルする必要がありますので、
    カーネルのバイナリは公開していません。コンパイルには gcc が必要です
    (私は gcc 1.40 を使用しました。gcc 1.37 では __asm__-directive 全部が
    利用できるかどうかわかりません。)関連する設定ファイルの書き換えも
    必要です。

    バージョンは 0.01 ですが、これはきちんとした出来ではないという意味です。
    現在のところ、AT 互換機の一部機能(ハードディスク、画面表示、キーボード、
    シリアルライン)をサポートするのみとなっています。また、システムコールの
    一部はまだ完全には実装していません。(mount/umount さえも実装していま
    せん) ソースコードのコメントや readme を参照してください。

    このバージョンの意味は、今のところ読むだけ、それも、たとえば現在どんな
    風に見えるかに興味がある人向け、ということでもあります。コンパイルすれば
    動作するカーネルができます。あなたの機器で動かすことについてはできる
    限りの助言はします(私にメールしてください)が、全てをサポートする訳
    ではありません。頻繁に変更をかけていますので、おそらく最初の”製品”
    バージョンは、アルファリリース以前であるこのバージョンとは大きく
    異なったものとなっていることでしょう。

    linux を動かすために必要なハードウェア
    - 386 の AT 互換機
    - VGA もしくは EGA のスクリーン
    - AT のハードディスクコントローラ (IDE が良い)
    - フィンランド語キーボード(まあ、US キーボードでも使って使えないことは
       ないでしょうが、多少練習が必要でしょう:-)

    フィンランド語キーボードをハードワイヤしています。私はUS キーボードを
    持っていませんので、US キーボードに切り替えようとすると、非常に面倒な
    問題を抱えることになってしまうのです。詳細はkernel/keyboard.s を参照
    してください。もしどなたか、部分的にでもポーティングしていただければ
    嬉しいです。テーブルドリブンですので、特別に難しくはないはずです。
    (アセンブラですけど)

    linux は完全なカーネルであり、minix のコードや、その他のソース
    は流用していませんが、ほとんどのルーチンはまだサポートしていません。
    そのため、現時点ではシステムを起動させるために minix が必要です。
    minix を持ってなくても、無料で入手できる minix のデモディスクで
    ファイルシステムの作成と linux の起動は可能かもしれませんが、私には
    わかりません。
    • by Anonymous Coward on 2007年07月29日 15時17分 (#1197819)
        2. 著作権など

      このカーネルの著作権は、(C) 1991 Linus Torvalds とします。ただし、
      その全部もしくは一部を、下記に従って再配布可能とします:

      - ソースコード全てが(無料で)入手可能であること。そうでなければ、
         最低限、それを請求できる条件で配布すること。

      - 著作権の表示を変更しないこと(実際の所、ソースの一部分だけを配布する
         つもりであれば、全てのファイルに(C)が記述されているわけではないので、
         著作権の追記は必要でしょう)。極々一部の引用であれば、著作権表示なし
         でも構わないでしょう。

      - 配布に際し、金銭の授受を禁止します。たとえ手数料であってもです。

      何か質問がありましたら、私(torvalds@kruuna.helsinki.fi)宛にメールくだ
      さい。

      残念ながら、カーネルそれ自体だけでは何もできません。システムを動かす
      ためにはシェルやコンパイラ、ライブラリが必要です。それらは個別のより
      きついか、あるいはゆるい著作権に基づいた部分品となっています。
      linux で利用するツールの大半は GNU ソフトで、GNU に著作権があります。
      こうしたツールは当配布物に含まれていません。詳細は私(もしくは GNU)に
      問い合わせてください。 

        3. カーネルについての短い技術概論

      linux カーネルは minix 環境下で作成されました。当初私は、minix と
      バイナリ互換にするつもりでした。両者の差異が拡大したことにより
      廃案となりました。システムは未だに相当似かよって
      います。キーポイントは以下の通りです。

      - 386 チップの可能性の有効活用。minix は 8088 チップの上で記述され、
         他のマシンにも移植されました。linux は 386 チップの強みを最大限に
         活用しています( あなたが 386 チップを /持って/ さえいれば、すばらしい
         ことですね。移植は大変困難ですけど)

      - メッセージパッシングはありません。より伝統的な unix らしい方式です。
         システムコールは単なる呼び出しです。より高速化できるかも
         しれません。あるいはできないかもしれませんが、メッセージに
         起因する問題の一部(メッセージキューなど)を免れていることをも、
         意味しています。もちろん、良い機能を失ってもいますが:-p

      - マルチスレッドなファイルシステム メッセージを使用しない、必然の
        結果です。それによりファイルシステムはやや(というより非常に)
        複雑になってしまっていますが、より優れたものになっています。改良された
        スケジューラーと相まって、複数のプロセスを実際に動かすことができ、
        minix による パフォーマンスヒットもないということです。

      - 最小限のタスク切り替え。これもメッセージ不使用による結果です。
         何をやっているときでもタスクが切り替わってしまう minix とは
         違い、本当にタスクを切替えたくなったときに限って、タスク切替えを
         実行します。これにより、387 サポートの実装がより容易になって
         います(実を言えば、実装はほとんど完了しています)。

      - 割り込みは隠蔽されていません。( Tanenbaum を含む)、人によっては
         割り込みを醜い、隠すべきものと考えるようですが、残念なことに、
         他の全て同様、コードの一部分になっています。管見によれば、
         現実的な理由により、割り込みは主に、機械語で制御すべきもの
         です。特にデバイスドライバはほとんど割り込みルーチンから
         成り立っています。kernel/hd.c 等を参照して下さい。

      - kernel/fs/mm ディレクトリには、区別はありません。すべて同じ
         code のheap にリンクされています(?)。この点については欠点同様、
         利点も存在します。このコードは minix のコードとは異なり、
         モジュールではありませんが、その反面、様々な箇所が単純になっています。
         カーネルにおける相違点はソースツリーの異なるサブディレクトリに
         あります。しかし起動時には同じデータ/コードスペースで動きます。

      linux の実装における基準は、高速に稼働すること、カーネルをシンプルに
      しておきたかったこと、大半の unix のソフトを動かせるよう十分に
      強力なことでした。
      ファイルシステムについては大したことはできませんでした - 実用的な
      理由により、 minix のそれと互換にする必要がありました。もちろん minix
      のファイルシステムは十分にシンプルでした。カーネルと mm はシンプルに
      できました:

      - タスクに対して、たった一つのデータ構造体。"真の" unix は、
         数カ所のタスクインフォメーションがあります。私は一箇所に
         全てがあるようにしたかったのです。

      - i386 のページングとセグメンテーション機能を利用した、うんと
         シンプルなメモリ管理アルゴリズム。現時点での MM は memory.c と
         page.s とのファイル二つの、数百行のコードだけです。

      以上の決定は非常にうまく作用したように思います。バグ修正も容易で、
      ちゃんと動作します。
      親コメント
  • JFよりリンク (スコア:3, 参考になる)

    by Sato_at_lilo (3250) on 2007年07月28日 20時34分 (#1197505) ホームページ 日記
    Linux の歴史 (誕生から 0.96 まで)
    http://www.linux.or.jp/JF/JFdocs/linux-history.txt [linux.or.jp]

    Linus Torvalds 来日講演会 (1995/12/04)
    http://www.linux.or.jp/JF/JFdocs/linus-lecture.txt [linux.or.jp]

    # ひさかたのID
    • by Anonymous Coward
      ブラウザのエンコード自動認識で文字化けしてた。

      「あ、そっか。EUCだよな。Linuxだし」
      と思ったらshift-JISだった。

      …釣られた。
  • 回顧 (スコア:3, 興味深い)

    by kikki (30639) on 2007年07月29日 2時44分 (#1197647)
    いろいろうろ覚えですが。
    (確か)ASCIIなど雑誌社が元になって、(確か)50枚ぐらいの5inchフロッピーで、郵送で巡回したバージョンって
    (確か)この辺では無かったでしょうか?0.1だったかもしれません。1.0かもしれません(^^;
    ※(確か)0と1が組み合わさった単純なバージョンだったと思います。

    Windowsが3.0になるかどうかぐらい。DOSがメイン。インターネットがまだ高嶺の花で平和な時代、
    CD-ROMも高級品。Unixが動くのは「ワークステーション」だけ。とても個人では…。NEC PC98全盛の中、
    PC-AT機の並行輸入がちょっとずつ盛り上がってた頃ですか。
    パソ通ではとてもDLできる容量ではなく、インターネットに接続できる人はごく少数。でも*nixを使ってみたい。

    ってことで50枚のフロッピーが届いたらがんばってコピー、次の人に郵送という手順で入手しました。
    いろいろほのぼのしてた時代がナツカシイ。
    • by Anonymous Coward
      >※(確か)0と1が組み合わさった単純なバージョンだったと思います。

      単純?「組み合わせ」かた次第で幾らでも複雑になり得そうだが。

      (関係ないが)これを読んでふと
      「じゃあ二進数でバージョン表記するってのはどうよ?」
      と思ってしまった。

      #そういや16進数のバージョンってのも意外と見かけないね。
      • by kikki (30639) on 2007年07月30日 9時29分 (#1198005)
        桁数指定忘れてました。
        2~3桁でした。50枚も使う容量なので、0.01って事は無いですね。やっぱり0.1かな?

        3.1415...の桁数が増えていくソフトならありますね。
        親コメント
    • 取っておけば良かったなあ...。捨てちゃったなあ。直筆サイン入りのLinux CDROM。
      • by Anonymous Coward
        そういえば私もそんな記憶が…と、部屋の中を探したら発見。
        LASER5の「LINUX+JE4」パッケージで、購入時にLinus氏にサインを貰いました。
        もしかして結構貴重品?
    • by Anonymous Coward
      > Unixが動くのは「ワークステーション」だけ。

      PANIXってのが無かった?
      価格は20万以上で高嶺の花には違いが無かったっと思うけど。

      # それぐらいの頃の話だよね?
  • by Anonymous Coward on 2007年07月28日 20時48分 (#1197509)
    と思ってた時期がありました。

    リリースノート見たら懐かしくて思い出したよ。

    linux-0.01.tar.Z - sources to the kernel
    bash.Z - compressed bash binary if you want to test it
    update.Z - compressed update binary
    RELNOTES-0.01 - this file

  • by Anonymous Coward on 2007年07月28日 20時54分 (#1197513)
    0.01 カーネルの全ソース

    多分、最近の GCC ではコンパイルすらできないだろうけど。。

    • by Anonymous Coward on 2007年07月29日 6時41分 (#1197676)
      $:~/linux-0.01$ du -k .
      20      ./linux/boot
      112     ./linux/fs
      8       ./linux/init
      120     ./linux/kernel
      52      ./linux/lib
      20      ./linux/mm
      8       ./linux/tools
      24      ./linux/include/sys
      48      ./linux/include/linux
      20      ./linux/include/asm
      164     ./linux/include
      512     ./linux
      516

      $ ls -alF linux-0.01.tar.bz2
      -rw-r--r--  1 user group 63362 1993-10-30 09:00 linux-0.01.tar.bz2
      親コメント
typodupeerror

目玉の数さえ十分あれば、どんなバグも深刻ではない -- Eric Raymond

読み込み中...