パソコンで動く FreeUNIX の違い パソコンで動く FreeUNIX には現在 386BSD 0.1 FreeBSD NetBSD Linux があります。この中で、FreeBSD、NetBSD は 386BSD 0.1 (BSD Net/2)から派生したものです。 これらのOSは、Intelの386/486 を持ったPC/AT互換機で 動作します。そして普通のワークステーションのUNIXと 同じくマルチタスク・マルチユーザで使うことができま す。決っしておもちゃなんかではありません。また 386 のプロテクトモードで動作しているためDOSなどと違っ てちゃんとプロセスのメモリを保護してくれます。あた り前ですが、変なアドレスに対してアクセスするとちゃ んとBus error で core を吐きます。また、実行ファイ ルは基本的に demand load です。つまりプログラムを 実行している時、実際にその部分が必要になった時に初 めてその部分がディスクから読みこまれるのです。プロ グラムを実行する間、その部分にアクセスされなければ 読みこまれることはありません。また仮想記憶機構を使っ ているので、実メモリで足りなくなったらスワップへ page out します。このため、実メモリより多くのメモ リを使うことができるように見えます。 また、これらのOSはすべてソースコード込みでフリーに 配布されています。特別なライセンスは何も必要ないの です。それで、普通のワークステーションと同じような UNIX環境がPC/AT互換機上に構築できるのです。 それでは個々のOSについて簡単に説明していきましょう。 まず、386BSD ですが、これは William JolitzとLynne JolitzさんがPC/AT互換機で Berkeley Networking Release (Net/2)を動くようにi386用のコードを書きた したものです。Release 0.0の頃はとても実用には使え ませんでしたが、Release 0.1 になってかなり実用に使 えるようになってきました。386BSD はベースが Net/2 ですが、実際にはかなり4.4BSDに近くディレクトリ構成 も 4.4BSD のものと似ているそうです。もちろんこれら の点についてはFreeBSD/NetBSD でも同様のことがいえ ます。 しかし 386BSD Release 0.1 自体はまだまだ bug があ りました。そこで有志の人々によってパッチがまとめら れpatchkitというものが作成されました。これは、 patchkit-0.1, 0.2,... 0.2.4 まであります。ちなみに PC98用の386BSDである386BSD(98)は、386BSD Release 0.1 + patchkit 0.1相当です。これらのpatchkit を作っ ていた人たちが、作りあげたのがFreeBSD です。これは 実際にはpatchkit 0.2.5 みたいなものですが、 patchkit とは違って、patch をあてた状態で配布され ています。また単なる patchkit レベルではなくて、付 属のアプリケーションも最新のものが用意されています。 FreeBSD は、1.0-ALPHA がまずαテスタに配布され、そ の後、1.0-BETA, 1.0-GAMMA, 1.0-EPSILON と続き、11 月1日にFreeBSD-1.0-RELEASEがリリースされました。 FreeBSD はインターネットだけでなく、CD-ROM や、DAT、 Exabyteなどのメディアでも販売されています。またイ ンストールも、386BSDと比べて格段に簡単になっていま す。また、386BSDをFreeBSDにアップグレードするのも 簡単にできるようです。386BSDを使ってきた人で、 NetBSDに移行するのが面倒な人にはFreeBSDがおすすめ といえるでしょう。patchkitをがんばってあてなくても 済むので、これから386BSDを初めようという人も FreeBSDを使ったほうがいいでしょう。ただし、386BSD Release 0.2 がでるとどっちがいいのかわかりません。 NetBSD は、UCB の Cumputer Systems Research Group が中心になって、Berkeley Networking Release (Net/2) および それを i386 へ移植した386BSDをベー スに開発したものです。NetBSD は今のところ FreeBSD とバイナリコンパチブルです。つまりFreeBSD用のバイ ナリはNetBSD上で動かすことができます。386BSD とで は dbm まわりが変更されているのでそれらを使ったバ イナリは正常に動作しません。また、BSDi の BSD/386 用のバイナリもNetBSD で動かすことができます。NIS のサポートなども一部分ながら行なわれています。 FreeBSDとNetBSDとは元が 386BSD で同じなので、非常 に似通っていますが、NetBSDの方がいろいろ新たな試み がなされています。そのため、OSの安定度から言うと、 FreeBSDの方が安定しているようです。新しいものが好 きな人は、NetBSDで遊んでみるのもいいでしょう。また 将来 386BSD Release 0.2 がでても、その機能はNetBSD にとりこむと開発グループが言っているので今から NetBSDを使っておくのもいいかもしれません。また、 4.4BSDの機能もNetBSDにとりこんでいく方針のようです。 FreeBSD 1.0 と NetBSD 0.9 は、そのうち NetBSD 1.0 として統合されるようです。また、NetBSD は、PC/AT互 換機だけではなくて様々なアーキテクチャの上で動作す ることも考えられています。既にHP300やAmiga,マッキ ントッシュなどでは動作しているようです。さらにsun3 や sparc なども作られつつあります。日本ではPC98の バージョンも京大マイコンクラブでは開発が進められ徐々 に動くようになっています。シャープのX68030も沖@沖 さんらが動かしています。 ところで、NetBSD-currentのソースを見ているとついに 念願のshared libraryが実現されるようです。10月の頃 ちょっとコンパイルしてみたところ、まだまだ動作が不 安定でしたが、そのうち安定に動作するようになるでしょ う。楽しみですね。 Linuxは Linus Torvalds さんが一から作った PC/AT互 換機で動作する UNIX-likeなOSです。FreeBSDやNetBSD とは違って、LinuxはSystemV および POSIX 準拠のOSと なっています。BSDなどのように様々なアーキテクチャ のことを考えずに i386(i486)のことだけ考えて作られ たので、他のアーキテクチャに移植するのは大変かもし れませんが、その分 効率がよいと言われています。ま た、SystemV系なのでBSD派の人は敬遠するかもしれませ んが、大抵のツールは GNU のものを使っているので、 普通のSystemVのマシン程とまどうことはありません。 そしてLinux自身もGNU Public License にしたがって配 布されています。Linux には既に shared library が実 装されており、そのバイナリは非常に小さいものになっ ています。また DOS Emulater なども作られています。 ネットワーク関係も一から書きあげられて、とりあえず 使えるようになってきているようです。ただし、 Berkeley の Net/2 から使われているコードを使ってい る 386BSD系とは違い、新たに書きおこされているため にまだまだバグが残っているらしいです。しかし、これ もそのうちになおされていくでしょう。 Linux の方は386BSD などと違い、kernelの作者のLinus さんはLinuxシステム全体のパッケージを配布している わけではありません。そのようなシステムは他の人達が 行なっています。その中で有名なのがSLSでしょう。SLS には基本的なツールからEmacs,TeX, X window system などまでが含まれています。従ってこれらを入手して インストールすればすぐにLinuxを使うことができます。 SLSはCD-ROMなどでも販売されているのでインターネッ トにつながっていなくても大丈夫です。しかし、SLSの 中にはそのソースコードは入っていないので注意が必要 です。ただ、SLSの中のツール類はほとんどFreewareな ので、何らかの方法でソースを入手することは可能でしょ う。 また、日本の有志の人達によって、Linux の日本語環境 も整備されています。JEとよばれるものがそれです。JE をインストールすればたいていのUNIX上で動作する日本 語環境を簡単に手に入れることができます。BSD関係で は、まだそういうのを見たことがありません。たぶんみ んな自分でやっているのでしょう。そういうことが面倒 な人にはLinuxがおすすめです。 Linuxは富士通のFM-Townsにも移植されているので、 FM-Townsでも動かすことができます。また、PC98にも徐々 にですが移植されて(して)います。 サポートデバイス一覧 FreeBSD/NetBSD/Linux のサポートしているデバイスの 一覧です。 ================================================================ サポートマシン ---------------------------------------------------------------- FreeBSD PC/AT互換機 NetBSD PC/AT互換機,HP300,Amiga,Mac,(Sun3),(Sparc),(PC98),(X68030) Linux PC/AT互換機,FM-Towns,((PC98)) ================================================================ NetBSDでは、HP300や、Amiga,Mac など 68030 を載せた マシンでも動くようになっています。また、Sparc でも 動くようになるようです。また、国内で PC98 や、 X68030への移植作業が進められています。 Linuxは、FM-TownsやPC98への移植が行なわれています。 しかし、以下ではとりあえず PC/AT互換機のデバイスに ついてのみ説明します。 ================================================================ CPU ---------------------------------------------------------------- FreeBSD i386以上 NetBSD i386以上 Linux i386以上 ================================================================ どれもIntelの 386SX以上のCPUが必要です。しかし、 386SXでもとりあえず動作はしますが、もっと高性能の CPU(486DX)などを使ったほうがいいでしょう。 ================================================================ 浮動小数演算プロセッサ ---------------------------------------------------------------- FreeBSD i387,i487,ない場合はエミュレートする NetBSD i387,i487,ない場合はエミュレートする Linux i387,i487,ない場合はエミュレートする ================================================================ ただし、エミュレータはLinuxのものが一番優れている ようです(というよりLinuxのを 386BSD系にもってきて いるといった方が正しい)。でも、浮動小数演算を少し でもするつもりならコプロセッサを装着すべきです。エ ミュレータに比べると速度が全然違います。486DXの場 合はコプロセッサを内蔵しているので付ける必要のない のは当然ですね。 ================================================================ バス ---------------------------------------------------------------- FreeBSD ISA/EISA NetBSD ISA/EISA Linux ISA/EISA ================================================================ どのOSもIBM PS/2 のマイクロチャネルには対応してい ません。 また、FreeBSD,NetBSD では、ISAのバスで16MB以上積ん でいる時にはSCSIアダプタによっては正常に動作しません。 (DMAが物理アドレス16MBまでしかアクセスできないため) ただし、これもそのうちに修正されるかもしれません。 ================================================================ メモリ ---------------------------------------------------------------- FreeBSD 4MB以上あるのが望ましい NetBSD 4MB以上あるのが望ましい Linux 4MB以上あるのが望ましい ================================================================ Linuxが shared library を使っている分有利でしょう が、メモリについても、どのOSでも似たようなものだと 思います。X などを動かす場合にはさらに多くのメモリ (8MBや16MB)が必要となります。2MBでも動かすことは不 可能ではないでしょうが、いろいろプロセスを起すと swapを頻繁におこなうようになって実用にはならないで しょう。 また、以前は kernel をコンベンショナルメモリ(640k) に置くようになっていたため、大きなkernelを作ること ができなかったが、最近は kernel を 1MB以上に展開す るようになってきているため、いろいろなデバイスドラ イバーなどを組みこんでも大丈夫になってきた。Linux ではさらに kernel を gzip しておくようになっていま す。 FreeBSDやNetBSDでは上でも述べたように 16MB以上積ん でいる場合は注意が必要です。またマザーボードによっ ては16MB以上のメモリにアクセスすると遅くなる場合が あるようです。 ================================================================ Display Adaptor ---------------------------------------------------------------- FreeBSD MDA/CGA/VGA(SVGA)/HGC NetBSD MDA/CGA/VGA(SVGA)/HGC Linux VGA/EGA/CGA/Hercules/SVGA ================================================================ Display Adaptor はコンソールで使っている限りあまり 問題にはなりませんが、X window system などを動かす 際にものによってはいろいろと問題があるでしょう。特 にDiamon社製の Display Adaptor は、Diamond社が独自 のクロックセットの方法を公開しないため、XFree86で はサポートされないことに注意しないといけません。 (もっとも Diamond社のDisplay Adaptorで動かすための 方法がネットで流れたりしているようですが…) また、どのOSもそのままではconsoleで日本語を扱うこ とができません。しかし、以下に述べるような方法を使 えば日本語を表示できるようになります。一番簡単なの が Linuxで JE に含まれている KON をインストールし て起動すればconsoleで日本語が表示できます。386BSD にはKanjiHand がありましたが、FreeBSD/NetBSD 用の ものはまだ一般にはでまわっていないようです。ただ、 pccons.c 自体はそれほど大きく変更されていないので 頑張れば FreeBSD/NetBSD にも組みこむことができるで しょう。NetBSDではLKM(loadable kernel module)を使っ たversionができるといいですね。また、KON もちょっ と手を加えればFreeBSDやNetBSDで動かすことができま す。 もちろん、XFree86をインストールすれば、普通のワー クステーションなどと同じようにktermを使って日本語 を表示させたり、Nemacs/Nepoch/Muleなどで日本語を扱 うことができます。 また、console以外、つまりserial回線からの login や LAN経由の login の場合には、その端末が日本語を表示 できればもちろん、Nemacsなどの日本語エディタも使え ます。 ================================================================ フロッピードライブ ---------------------------------------------------------------- FreeBSD 3.5inch 1.44M, 5inch 1.2M NetBSD 3.5inch 1.44M, 5inch 1.2M Linux 3.5inch 1.44M, 5inch 1.2M ================================================================ どれも標準的なフロッピードライブを扱うことができま す。 DynaBook では、FDD 2HD Type を 1.2MB/1.44MB にして おくと 3.5inch 1.2M で使うことになります。1.44MB bootにしておくと 3.5inch 1.44M で使うことになりま す。(fj.os.linux に自動的に変更するようにするpatch が流れていました) ================================================================ ハードディスク (SCSI以外) ---------------------------------------------------------------- FreeBSD MFM/RLL/IDE/ESDI NetBSD MFM/RLL/IDE/ESDI Linux MFM/RLL/IDE/ESDI ================================================================ これもどのOSも似たようなものです。IDEの普通のディ スクならまず問題なく使えるでしょう。 ================================================================ SCSIアダプタ ---------------------------------------------------------------- FreeBSD Adaptec 154x (<= 16MB memory) Adaptec 174x Buslogic 545S Bustec 742A DTC 3290 (1542 emulation) (<= 16MB memory) UltraStore 14f, 34f NetBSD Adaptec 1542A, 1542B Adaptec 1742 Bustek 742 Ultrastor 14f, 34f Linux Adaptec 1542, 1522, 1740(extend mode) Seagate ST-01, ST-02 Future Domain TMC-88x series TMC1660/1680 Ultrastor 14F, 24F, 34F Western Digital wd7000 ================================================================ FreeBSDとNetBSDとは基本的に同じようなデバイスドラ イバーなのでサポートしているものも同じようなもので す。今はなくてもそのうちにサポートされるようになる でしょう。Linuxは開発している人たちが別なのでサポー トしているデバイスも若干違います。 なお、この中ではサポートしていると書かれていなくて も使える場合もあるようです。例えば NetBSD0.9a (current)では Adaptec 1542C で CD-ROM を読むことが できました。 ================================================================ SCSIデバイス ---------------------------------------------------------------- FreeBSD SCSI-I,SCSI-II disk, tape drive(DAT), CD-ROM NetBSD おそらくFreeBSDと同じ Linux disk, tape, CD-ROM ================================================================ NetBSDに関しては詳しく書かれているものがありません でしたが、とりあえず普通のSCSI disk やCD-ROMは動作 しているし、デバイスドライバーのコードもほとんど同 じなので、FreeBSDと同じだと思われます。 ================================================================ CD-ROM ---------------------------------------------------------------- FreeBSD SCSI, Mitsumi CD-ROM NetBSD SCSI Linux SCSI, Mitsumi CD-ROM, Sony CDU31A ================================================================ NetBSD では SCSI の CD-ROM しかサポートしていませ ん。また、ファイルシステムとしては、ISO9660 ならど れでも大丈夫です。また RockRidgeExtension もサポー トしています。 ================================================================ Tape drive ---------------------------------------------------------------- FreeBSD QIC, DAT, Exabyte NetBSD QIC-02, SCSI Linux QIC-02(QIC-80), SCSI ================================================================ これもどのOSでも似たようなものです。 ================================================================ Ethernet cards ---------------------------------------------------------------- FreeBSD SMC Elite 16 WD8013,WD8003E,WD8003EBT,WD8003S,WD8003SBT WD8013EBT Isolan AT 4141-0 Isolink 4110 Novell NE1000,NE2000 3Com 3C503 Etherlink II NetBSD SMC/WD 8003, 8013, SMC Elite series Novell NE1000, NE2000 3Com 3c503 ISOLAN ISOLINK HP ThinLAN Linux Western Digital 80x3 ne1000, ne2000 3com503, 3com509 Allied Telliesis AT1500 HP PCLAN d-link pcket adaptor ================================================================ ここに書かれていなくても、互換のものなら大抵動くよ うです。また、ここに書かれていないものでも次々とデ バイスドライバーが書かれているみたいなので、一度試 してみるのもいいでしょう。もしかしたら動くかもしれ ません。 ================================================================ Serial 通信 ---------------------------------------------------------------- FreeBSD 16550を使えば fifo を使って高速通信可能 NetBSD 16550を使えば fifo を使って高速通信可能 Linux 16550を使えば fifo を使って高速通信可能 ================================================================ Serial通信をする場合には、16550というチップを使う ようにすべきです。このチップには 16bytes の fifoが あるので、serialの割り込みを減らすことができるため kernelがデータをとりこぼすことが少なくなり、かなり 高速にserial通信ができるようになります。もちろん 16550がなくても serial 通信は可能です。ただし、 19600bpsくらいになると文字落などをする可能性が高く なります。 ================================================================ Printer ---------------------------------------------------------------- FreeBSD 使える NetBSD 使える Linux 使える、PLIPも可能 ================================================================ Linux では Printer の パラレルポートを利用して PLIP(Parallel Link IP)ができるようです。 NetBSD NetBSDのサポートしているハードウェア NetBSD/i386 0.9 は 386,486プロセッサの載ったISAバ スやEISAバスの AT互換機で動作します。IBM PS/2など のマイクロチャネルはサポートしていません。最小構成 としては、メモリが4MB ディスクが60MBくらい必要です。 フルインストールするにはさらにディスクスペースが必 要ですし、XFree86 などを動かそうとするとメモリがさ らに必要になります。 サポートしているデバイスは次の通りです。 標準的なフロッピードライブ ハードディスク(MFM, ESDI, IDE, RLL) SCSI ハードディスク Adaptec AHA-1542A, 1542B Adaptec AHA-1742 (EISA) Bustek 742 (EISA) Ultrastor 14f, 34f ディスプレイアダプタ MDA, CGA, VGA(SVGA), HGC シリアルポート イーサネット SMC/WD 8003,8013 など Novell NE1000, NE2000 3COM 3c503 ISOLAN ISOLink HP ThinLAN テープドライブ QIC-02 フォーマットドライブ SCSIテープドライブ CD-ROM ドライブ SCSI CD-ROMドライブ NetBSDの配布パッケージは次のものから成っています。 /cdrom/NetBSD/floppies の下 ・ブート可能のkernelコピー用のフロッピー ファイル名は、kcaha.fs と kcahbbt.fs です。 これらの kernel は次のようにコンフィギュレーショ ンされています。インストールする時は、ハードウェ アの設定をこれにあわせてください。 ================================================================ 図 kernel copy disk のコンフィギュレーション ---------------------------------------------------------------- デバイス I/Oポート 割り込み(IRQ) DMAチャネル(DRQ) フロッピー 0x3F0 6 2 ハードディスク 0x1F0 14 (MFM,ESDI,IDE,RLL) SCSI AHA-154x 0x330 11 5 (kcaha.fs のみ) SCSI AHA-174x 自動認識されます (kcahbbt.fs のみ) SCSI BT742 0x330 12 (kcahbbt.fs のみ) SCSI Ultrastor14f,34f 0x330 11 5 SCSI ディスク ID の小さい順に3台まで (sd[0-2]) SCSI テープ ID の小さい順に2台まで (st[0-1]) SCSI CD-ROM 1台 (cd0) シリアルポート0 0x3f8 4 1 0x2f8 3 SMC/WD ethernet 0x280 2(または9) iomem 0xD0000 3COM 3c503 Novell ethernet 0x300 2(または9) ISOLAN ISOLink 0x320 10 7 QIC-02 tape 0x300 5 1 プリンターポート 0x3BC 7 非割り込みプリンター 0x378 0x278 ================================================================ もし何らかの都合で、このような構成にできない時で もとりあえずこの構成にしてNetBSDをインストールし てからkernelをconfigしなおせばいいでしょう。 ・インストール用フロッピー ファイル名は inst1-09.fs と inst2-09.fs です。 これは、NetBSD のパッケージをハードディスクにイ ンストールするために使います。 ・アップグレード用フロッピー (これは、/cdrom/NetBSD/NetBSD-0.9/floppies の下にあります) ファイル名は upgr1-09.fs です。 NetBSD 0.8から 0.9 にアップグレードするために使 います。 ・バイナリセット /cdrom/NetBSD/NetBSD-0.9/binary の下 NetBSD/i386用のバイナリセットは次の通りです。 (このバイナリセットの中には crypt は含まれていま せん) ・base09 NetBSD 0.9 の基本のバイナリです。 これは必ずインストールする必要があります。 この中には、コンパイラなどを含む基本的な NetBSDのユーティリティが入っています。 マニュアルも入っています。 [gzipして 16M, 展開すると 39M] ・etc09 /etc にいれるべきファイルです。 [gzipして 33k, 展開すると 0.2M] ・game09 ゲームとそのマニュアル [gzipして 2.0M, 展開すると 4.4M] ・misc09 その他のファイル。 辞書ファイルや 非i386マシン用のマニュアル など [gzipして 1.7M, 展開すると 5.9M] ・ソースセット /cdrom/NetBSD/NetBSD-0.9/source の下 ソースセットは次の通りです。 ・ksrc09 NetBSD 0.9 の kernel および config,dbsym のソース [gzipして 1.9M, 展開すると 8.8M] ・gsrc09 GNU のソース コンパイラやアセンブラは gcc, gas を使って いるので当然この中にソースがあります。 [gzipして 6.2M, 展開すると 26M] ・ssrc09 share のソース マニュアルのソースや辞書のソースです。 [gzipして 2.6M, 展開すると 9.4M] ・src09 NetBSD 0.9 の残りの部分のソース [gzipして 5.4M, 展開すると 25M] ・セキュリティセット /cdrom/NetBSD/NetBSD-0.9/security の下 DES暗号化アルゴリズムを含んだパッケージ これらはアメリカ合衆国外には出せないため、別にさ れています。なお、今回のCD-ROM のなかには ufc-crypt を使った同等のパッケージを入れてありま す。 [gzipして、0.6M, 展開すると 1.2M] 以上のバイナリ、ソース、セキュリティセットはすべて 名前 + "nnn" の形式のファイル名になっています。 (例えば、 base09.000 とか) これらは gzip + tar したものを分割してあるだけな ので、 cat set_name.??? | gunzip | (cd /; tar xvfp -) とすれば展開することができます。 NetBSDのインストール方法 NetBSD のインストールの前に インストールをするの前にまず、ハードウェアの設定を する必要があります。図 kernel disk copy のコンフィ ギュレーション の通りにハードウェアを設定してくだ さい。 次にファイルシステムフロッピーを 3枚 kernel copy disk (kcaha.fs か、kcahbbt.fs) install disk1 (inst1-09.fs) install disk2 (inst2-09.fs) を作成しなければなりません。これらのファイルは、 /cdrom/NetBSD/floppies の下にあります。(ここにある ファイルは、CD-ROM がちゃんと扱えるようにパッチを あてたkernel で作ってあります。オリジナルNetBSD 0.9のファイルは/cdrom/NetBSD/NetBSD-0.9/floppies の下にあります) 近くに、3.5inch, 1.44Mもしくは、5inch 1.2Mフォー マットが扱えるワークステーションなどがあれば、フォー マット済みのフロッピーを用意して、dd コマンドを使っ て次のようにして書きこみます。 一枚目 kernel copy disk (kcaha.fs の場合) % dd if=kcaha.fs of=/dev/rfd0c bs=1228800 二枚目 install disk 1 % dd if=inst1-09.fs of=/dev/rfd0c bs=1228800 三枚目 install disk 2 % dd if=inst2-09.fs of=/dev/rfd0c bs=1228800 もし、近くに dd コマンドで書きこめる環境にない場 合は、DOS を立ちあげてRAWRITE というディレクトリに ある RAWRITE.EXE コマンドを使えば書きこむことがで きます。RAWRITE.EXE は、/cdrom/rawrite にあります。 C> RAWRITE RaWrite 1.2 - Write disk file to raw floppy diskette Enter source file name: kcaha.fs Enter destination drive:A Please insert a formatted 360K diskette into drive B: and press -ENTER- : Writing image to drive A: インストール さて、以上の三枚のフロッピーが作成できたら、kernel copy disk (kcaha.fsかkcahbbt.fs)をフロッピードライ ブにいれてブートします。すると、 >> NetBSD BOOT @ 0x90000: 640/19456 k of memory [$Revision 1.8 $] use options hd(1,...... to boot sd0 when wd0 is also installed. Boot: [[[fd(0,a)]/netbsd][-s][-a][-d]] :- Booting fd(0,a)/netbsd @ 0x100000 text=0x5d000 data=0x4000 bss=0x1350 total=0x174b50 Insert file system floppy とでて止まります。ここで、kernel copy disk をフロッ ピードライブから抜きとり、install disk1 (inst1-09.fs) をフロッピードライブに差して何かキー を押します。 すると kernel がブートして次のようなメッセージが出 力されます。 NetBSD 0.9a (GOBOU) #0: Thu Nov 4 01:22:49 JST 1993 ukai@nasu:/a/teto/proj/NetBSD/current-1993.10.25/usr/src/sys/arch/i386/compile/GENERICAHA CPU: i486DX (486-class CPU) real mem = 16773120 avail mem = 14360576 using 230 buffers containing 942080 bytes of memory pc0 at 0x60-0x6f irq 1 on isa pc0: color com0 at 0x3f8-0x3ff irq 4 on isa com1 at 0x2f8-0x2ff irq 3 on isa lpa0 at 0x378-0x37f on isa wdc0 at 0x1f0-0x1f7 irq 14 on isa wd0 at wdc0 targ 0: 116MB 762 cyl, 8 head, 39 sec fdc0 at 0x3f0-0x3f7 irq 6 drq 2 on isa fd0 at fdc0 targ 0: 1.44MB 80 cyl, 2 head, 18 sec fd1 at fdc0 targ 1: 1.2MB 80 cyl, 2 head, 15 sec aha0 at 0x330-0x337 irq 11 drq 5 on isa aha0: bus speed 250ns aha0 targ 0 lun 0: type 0(direct) fixed SCSI1 sd0 at aha0 targ 0 lun 0: 100MB 776 cyl, 8 head, 33 sec, 512 byte/sec aha0 targ 6 lun 0: type 5(ro) removable SCSI1 cd0 at aha0 targ 6 lun 0: loaded ne0 at 0x300-0x30f irq 9 on isa ne0: ne2000 ethernet address 08:00:17:03:65:0b npx0 at 0xf0-0xff on isa npx0: using exception 16 biomask 4840 ttymask 1a netmask 200 impmask 21a ここで出力されているのは、NetBSD の kernel がどの デバイスを認識したかということです。 ---------------------------------------------------------------- pc0 は、コンソール com0, com1 はシリアルポート lpa0 はプリンターポート wdc0 はハードディスクコントローラ wd0 はハードディスクドライブ(一台目) fdc0 はフロッピーディスクコントローラ fd0 はフロッピーディスクドライブ(一台目) fd1 はフロッピーディスクドライブ(二代目) aha0 は AHA-154x SCSI アダプタ sd0 はSCSIディスク(一台目) cd0 はSCSI CD-ROM ドライブ(一台目) ne0 は NE1000/2000 イーサネットドライバー npx0 は浮動小数演算コプロセッサ ---------------------------------------------------------------- を表わしています。ここで表示されているハードディス クのシリンダ数、ヘッド数、セクタ数は覚えておいた方 がいいでしょう。 例えば、 sd0 at aha0 targ 0 lun 0: 100MB 776 cyl, 8 head, 33 sec, 512 byte/sec なら シリンダ数 776 ヘッド数 8 セクタ数 33 なのです。 もし、ハードウェアが付いているのに、これらの情報 が表示されなかった時は、kernelのコンフィギュレーショ ンの情報と実際のハードウェアの設定があっていないこ とがまず考えられます。もう一度ハードウェアの設定を 見なおしましょう。それでも駄目なら、そのデバイスは NetBSD で使うことができないのかもしれません。 そして、少し待つと Welcome to NetBSD. This program is designed to help you put NetBSD on your hard disk, in a simple and rational way. You'll be asked several questions, and it would probably be useful to have your disk's hardware manual, the installation notes, and a calculator handy. In particular, you will need to know some reasonably detailed information about your disk's geometry, because there is currently no way this this program can figure that information out. As with anything which modifies your hard drive's contents, this program can cause SIGNIFICANT data loss, and you are advised to make sure your hard drive is backed up before beginning the installation process. Proceed with installation? [n] と表示されます。ここではインストールを進めるので、 'y' を入力してください。すると、 Cool! Let's get to it... Drive types can be ESDI, SCSI, ST506, or IDE. Drive type? と聞いてくるので、インストールする先のハードディス クのタイプを入力します。ESDI か ST506 を選ぶと Does it support _automatic_ sector remapping? [y] も聞いてくるので、y か n で答えます。すると、 Disk is of type SCSI going to install on sd0... Label name (what kind of disk is it, one word please)? とディスクの名前を聞いてきます。これは/etc/disktab のエントリー名となる名前だから何でもいいのですが、 例えば、 probe情報が、 aha0 targ 0 lun 0: type 0(direct) fixed SCSI1 だったら、CP3100 とでもしておけばいいでしょう。 次に、 Number of bytes per disk sector? [512] のようにセクタあたりのバイト数を聞いてきます。普通 のディスクは512byte/sec なので、リターンを入力すれ ばいいでしょう。 そしてその後、 Number of disk cylinders? Number of disk tracks (heads) per disk cylinder? Number of disk sectors per disk track? と、ディスクのシリンダ数、ヘッド数、セクタ数を聞い てきますので、ブート時に表示されていた値を入力して いきます。 そうすると、 Disk has a total of ????? 512 byte sectors For greater efficiency, partitions should begin and end on cylinder boundaries. Cylinder size (in 512 byte sectors) on this disk is ???. Choose multiples of this value. Size of NetBSD portion of disk (in 512 byte sized sectors)? と、NetBSD をインストールするディスクサイズをセク タ数で聞いてきます。この時、シリンダサイズの整数倍 にします。その後 Offset of NetBSD portion of disk (in 512 byte sized sectors) で NetBSD を入れる区画の先頭位置をセクタ数で指定し ます。 その後、 There are ??? sectors (??? cylinders) left to allocate と表示されて Root partition size (in ???? byte sized sectors)? とルートパーティションのサイズを聞いてきます。8M くらいとっておくといいでしょう。だいたいのサイズ の決めたらシリンダサイズの倍数で一番近いサイズを求 めてそれを入力します。 次に、 ??? sectors remaining in NetBSD portion of disk Swap partition size (in ??? byte sized sectors)? とスワップパーティションのサイズを聞いてきます。実 メモリサイズの 2〜3倍にするのがいいという話を聞き ます。それくらいのサイズでシリンダサイズの倍数で一 番近いサイズを入力します。 You will now have to enter information about any other partitions to be created in the NetBSD portion of the disk. This process will be complete when you've filled up all remaining space in the NetBSD portion of the disk. 後は、最初に NetBSD 用にと指定したサイズがうまるま で、パーティションを決めていきます。ここで設定でき るのは 4つのパーティションだけです。 ???? sectors remaining in NetBSD portion of disk Next partition size (in 512 byte sized sectors)? Mount point? でサイズとマウントポイントを入力します。マウントポ イントには/usr にマウントするなら usr と指定します。 以上を入力すると、 OK! THIS IS YOUR LAST CHANCE!!! Are you sure you want this stuff installed on your hard drive? (yes/no) と聞いてきます。ここで yes と入力するとハードディ スクに disklabel を書きこみます。yes と入力すると、 OK! Here we go... Labelling disk...done. と先にすすみます。 後は、 Initializing root filesystem, and mounting... などと表示されて newfs されていきます。 newfs が終了すると、 Verbose installation? [n] と聞いてきます。y と答えると tar で展開する時に v option を付けて実行されます。 Copying to disk... でコピーが始まります。コピーが終了すると The next step: reboot from the kernel copy disk, copy a kernel to your hard disk (to partition ${drivename}a), then reboot from the hard disk. Enter 'halt' to halt the machine. Once the machine has halted, replace the floppy in the disk drive with the kernel-copy disk that you originally booted from. Once you have done that, press any key to reboot. とでて止まります。halt と入力してシステムを停止さ せて、システムが止まったらもう一度、kernel copy disk (kcaha.fs か kcahbbt.fs)をフロッピードライブ にいれます。そして何かキーを押すとリブートします。 今度も同じように >> NetBSD BOOT @ 0x90000: 640/19456 k of memory [$Revision 1.8 $] use options hd(1,...... to boot sd0 when wd0 is also installed. Boot: [[[fd(0,a)]/netbsd][-s][-a][-d]] :- Booting fd(0,a)/netbsd @ 0x100000 text=0x5d000 data=0x4000 bss=0x1350 total=0x174b50 Insert file system floppy で止まりますが、今度はディスクを入れかえないでその まま何かキーを押します。すると、 enter "copy" at the prompt to copy the kernel on this floppy to your hard disk. enter anything else to reboot, but wait for the machine to restart to remove the floppy. > で止まります。copy と入力すると、 what disk partition should the kernel be installed on? (e.g. "wd0a", "sd0a", etc.) > と聞いてくるので、インストール先のデバイス名を指定 します。IDEなどの一台目なら、wd0a、SCSIディスク一 台目ならsd0aです。 そうすると後は自動的に、filesystem を check して、 kernel をハードディスクにインストールしてくれます。 インストールが終れば、 Time to reboot the machine! Once the machine has halted (it'll tell you when), remove the floppy from the disk drive and press any key to reboot. とでて止まるので、何かキーを押してリブートします。 今度はフロッピーを抜いてハードディスクからブートし ます。 ハードディスクからブートすると、 Insert second installation floppy in drive and enter that drive's number (e.g. 0 or 1): とでてくるので、install disk2 (inst2-09.fs)をフロッ ピードライブに入れてドライブナンバーを入力します。 (一台目(DOSのA:ドライブ)なら 0) Verbose installation? [n] に答えると後は自動的に install disk2 の内容がハー ドディスクにインストールされます。インストールが終 了すると、 OK. All of the base files are installed. The next step: reboot from the hard disk, and follow more instrutctions. To do this, enter 'halt' at the prompt to halt the machine. Once the machine has halted, remove the floppy from the disk drive, and hit any key to reboot from the hard disk. で停止するので、halt してシステムを停止させ、また ハードディスクからブートします。 今度は、 Congratulations, you've got NetBSD on the hard disk! To finish installation: Pick a temporary directory by running set_tmp_dir. make sure it's in a place with lots of space, probably under /usr. Then, load the remaining distribution files into that temporary directory by issuing one of the following commands: load_fd load_qic_tape load_scsi_tape or by fetching the files with ftp (see the installation notes for information on how to do that). Once this is complete, extract the distribution files by issuing the command 'extract ' where is the base name of the distribution files, e.g. 'base09'. Once all of the filesets you wish to install have been extracted, enter the command 'configure' to finish setting up the system If you should wish to uninstall NetBSD, delete the partition by using the DOS 5 FDISK program. If installed on the entire drive, use the FDISK/MBR to remove the NetBSD bootstrap from the drive. erase ^?, werase ^H, kill ^U, intr ^C # とシェルのプロンプトがでて止まります。 ここでは、CD-ROM から直接インストールする方法を説 明します。まず、mount_isofs コマンドを使って CD-ROM をマウントします。 # mount_isofs /dev/cd0d /mnt すると、/mnt ディレクトリに CD-ROMがマウントされま す。/mnt/NetBSD/NetBSD-0.9 の下に NetBSD-0.9 の配 布パッケージがあります。まずバイナリをインストール するには次のようにします。 # cd /mnt/NetBSD/NetBSD-0.9/binary/base09 # extract base09 Would you like to be verbose about this? [n] で、base09 がインストールできます。 以下同様に、etc09 などをインストールします。 インストールが終了すれば、 # configure で簡単なシステムの設定をおこなうことができます。 # configure You will now be prompted for information about this machine. If you hit return, the default answer (in brackets) will be used. What is this machine's hostname? [unknown.host.domain] であなたのマシンのホスト名を入力します。 次に、 What domain is this machine in (this is NOT its YP domain name)? で、ドメイン名を入力します。 Does this machine have an ethernet interface? [y] でイーサネットインターフェースがあれば y を入力し ます。y と答えたら、そのインターフェースのデバイス 名、そのインターフェースでのホスト名、IP addressな どを聞いてくるので、しかるべき入力をおこないます。 OK. You should be completely set up now. You should now reboot your machine by issuing the 'reboot' command after removing anything that happens to be in your floppy drive. これでとりあえずインストールは終了です。これで rebootすれば、NetBSDがマルチユーザモードで立ちあが ります。 NetBSD の設定 以上で NetBSD のインストールは終了しましたが、さら に次のような設定を行う必要があります。 zoneinfo の設定 /etc/localtime は日本の設定になっていないので、 次のようにしておくといいでしょう。 # rm /etc/zoneinfo # ln -s /usr/share/zoneinfo/Japan /etc/localtime /etc/rc, rc.local, netstart の設定 /etc/rc, rc.local, netstart などもちゃんと設定し ないといけません。特にネットワーク関係の設定はマシ ンごとにいろいろと違うので、/etc/netstart はちゃん と設定しましょう。この中でいろいろとフラグをセット しています。 sendmail の設定 メイルを受けとるなら /etc/sendmail.cf をちゃんと 書く必要があります。もし受けとることがないのなら、 sendmail は動かさないほうがメモリを食わなくていい でしょう。/etc/rc の中で、sendmail を起動している 行をコメントアウトしましょう。 #echo -n ' sendmail'; sendmail -bd -q30m cron の設定 crontab で cron の設定を確認しておいたほうがいい でしょう。また、cron から起動されるシェルスクリプ トなども見ておくべきでしょう。なお、/var/cron/log を touch などして作成しておかないと駄目です。 root などの passwd を設定 # passwd root などとして、root のパスワードを設定しておきましょ う。セキュリティセットをインストールしないとパスワー ドが暗号化されないで、そのまま/etc/master.passwd に書きこまれるので注意しましょう。 一般ユーザの追加 vipw コマンドを使って、一般ユーザのエントリーを設 定しましょう。ホームディレクトリも忘れずに作りましょ う。また、ホームディレクトリのオーナやパーミッショ ンの設定も忘れずに。 /etc/shells の設定 /bin/sh や /bin/csh を login シェルにしている場合 は問題ありませんが、/usr/local/bin/tcsh や /usr/local/bin/zsh を login シェルにしたい場合は /etc/shells にちゃんと書いておく必要があります。 NIS(YP) の設定 NetBSD では NIS のクライアントとして使うことがで きるようになっています。ただし、NIS を使う場合には secr09 をインストールしておかないと駄目です。 NISを使うには次のようにします。 # mkdir /var/yp # echo 'NISのdomain名' > /etc/defaultdomain そして /etc/passwd と /etc/group を次のようにしま す。vipwで、/etc/passwd を次のように編集します。 最後に、 +:::::0:0::: を追加 /etc/group は vi /etc/group で次のように編集します。 最後に、 + を追加。 --- 注) NetBSD-0.9 のもともとの getpwent() には bug があっ てNIS を使うと誤動作します。secr09 に入れてある login はこの bug が直ったversionなので大丈夫です。 --- resolv.conf の設定 ネットワークに継いでいるなら DNS を引くために /etc/resolv.conf も設定しておいたほうがいいでしょ う。 kernelのreconfig kernel copy disk に入っているkernelは様々な環境 で動作するようにするためにいろいろなデバイスが含ま れています。また、ディスクに収まるように一部の options (例えば NFSSERVER など)は抜かれています。 より効率よく NetBSD を使いたいなら、自分のシステム にあったkernelを作りなおしたほうがいいでしょう。た だし、NetBSD-0.9 のソースには bug があるのでpatch をあてるか NetBSD-0.9a の下にある sys.tgzを展開し てそれを使うなどしたほうがいいでしょう。ちなみに、 NetBSD-0.9a の下にある sys.tgz は、10月25日の NetBSD-currentのソースにいくつかのpatchをあてたも のを tar + gzip でまとめたものです。