386BSD(98) NEC PC98 シリーズでうごく 386BSD 386BSD は、カリフォルニア大学バークレイ分校 (UCB) の Willam F. Jolitz, Lynne Jolitz が開発した IBM-PC/AT 互換機で動作する Free の BSD 版UNIX であ る。386BSD の元は、4.3 BSD Network Release 2 (NET/2) とよばれる BSD であり、これを、386SX 以上の CPU を持つ AT 互換機で動作するようにしたのが 386BSD である。386BSD は本格的なBSD系OSで、コマンドからカー ネルまで、全てのソースをつけて配布されている。 386BSD には、数多くの人たちによる様々なソフトウエア が含まれている。これらは、それぞれ、著作権は異なっ ているが個人仕様 / 研究目的ならば、完全にライセンス フリーである。( AT&T, USL が訴えてはいるが....) 現在、386BSD は、Release 0.1 が配布されている。 Release 0.1 では、ハードディスクをMS-DOS と共存でき るようになっている。また、数値演算コプロセッサのエ ミュレーションを行なうようになっているので、必ずし も数値演算コプロセッサが必要ではなくなっている。 SCSI インターフェイスもサポートされている。さらに、 Ethernet Card の device driver もサポートされている ため、TCP/IP を利用した様々なネットワーク機能が利用 できるようになっている。また、com device (RS-232C) を利用して SLIP (serial line IP) を張ることもできる。 また、XFree86 を入手すれば、X11R5 を使うこともでき る。また、Emacs や jserver も動作している。 ただし、Release 0.1 では、shared library や MS-DOS file system などはできていない。 この AT 互換機で動作する 386BSD を、京大マイコンク ラブ(KMC)の、児島・石井・鵜飼が、NEC の PC98 シリー ズ、及び EPSON の PC98 互換機で動くように移植したの が 386BSD(98) である。 NEC PC9801シリーズまたは、EPSON のPC98互換機のなか で、CPUとして i386SX/DX/SL(98), i486SX/DX, Cx486SLC/DLC が搭載されて機種で動作している。ただし、 version a, b ではノーマルモードでしか動作しない。現 在、ftp site におかれているのは、version a であり、 Super ASCII の回覧では、version a における不具合を 一部修正した version b が回覧されている。どちらも、 ほとんど違いはないが、version b では、一部のファイ ルの許可属性やドキュメントの間違いなどが修正されて いる。さらに、EPSON の PC-386 noteA で動くようになっ ているはずである。このためにブートプログラムも変更 されている。ただし、他の EPSON のノートパソコンでは 動かないかも知れない。 version a, b ではノーマルモードでしか動作しないので 注意して欲しい。version c ではハイレゾにも対応してい る。 386BSD を利用するために、メモリはプロテクトメモリ が 4M は必要である。1.6M でもブートはするが実際に利 用するにはかなりの無理がある。また、インストール時 にハングアップしてしまうようだ。プロテクトメモリも たくさんある方が良い。 数値演算コプロセッサは必ずしも必要ではない。ただし、 カーネル内部のエミュレーションは遅く、しかも、完全 ではない。浮動少数点演算を多用するなら数値演算コプ ロセッサは是非とも装着しておくべきである。ただし、 残念ながらCx486DLC と 古いCx83D87 組合せでは動かな いことがある。この問題は、他の Windows 、DOS Extender などでも起こるらしい。サイリックス社もこの 問題を認め、特別価格(?)で交換するとのことである。 「ざべ」の11月号 p139 にもこのことが取り上げられ ている。(問い合わせ先:サイリックスサポートセンター 03-3453-9168) version a, version b ともに、オリジナルの 386BSDと 同様、MS-DOSとハードディスクの共存ができている。つ まり、ハードディスクの一部をDOS, 一部を386BSD とし て使うことが可能である。ハードディスクは SCSI (512 バイト/セクタ) と ノート内蔵ハードディスクをサポー トしている。SCSI (256バイト/セクタ) と SASI のハー ドディスクはこの version では、サポートしていない。 容量は 80M は必要であろう。40M では非常に苦しい。で きれば100M以上の大容量のディスクを利用した方が良い。 ただし、Ethernet Card があって、NFS クライアントと して使うことができるならば、ディスクはそれほど必要 ない。Ethernet Card は、ジャパンマクニカの NE2098 が利用できる。これを使って、NFS や、telnet, rlogin などをすることが可能である。version c ではアライド テレシスの SIC-98 も利用可能になっている。オリジナ ルとは違い、98版ではコンソールに漢字を出力すること ができるようになっている。そのため、X window を動か さなくてもconsole 上で Nemacs が利用できる。ただし、 uum は console の能力が低いため uum を動かすために 必要なエスケープシーケンスがサポートされていない。 (IBM-PC 版でも KanjiHand を使えば console で漢字を 表示できる。) また、bitmap console モードがあり、CTRL+GRPH+SPACE で bitmap console モードに切り替わる。NS/T では resume を行なうこともできる。しかし、その他のノート パソコンでの resume はサポートしていない。 なお、現在の version では com device driver にバグ があるらしく、tip, uucp などがうまくいかないことが 報告されている。また X window system は移植はまだで きていない。 現在、われわれは version c を開発中である。 version c では、Terry Lambert の「PATCH KIT FOR 386BSD」をあてた。その他、version a, b での不具合を いろいろと修正した。 これが、本屋に並ぶ頃には既に version c が出ているは ずである。 386BSD(98) の入手方法 386BSD(98) は、現在 Release 0.1 version a が、 anonymous ftp site におかれており、IP 接続が可能な site から、ftp で入手することができる。また、 version b は、Super ASCII による回覧が行なわれてい る。また、Nifty や、PC-VAN, 日経 MIX などでも配布、 回覧が行なわれているらしい。 ここでは、ftp で入手する方法について簡単にのべる。 386BSD(98) を置いているanonymous ftp site は ftp.kuis.kyoto-u.ac.jp を始め次のサイトがある。 ---------------------------------------------------------------- [WNOC-SENDAI/JAIN-TOHOKU] (東北・北海道方面) ftp.ecei.tohoku.ac.jp[130.34.222.67] [WNOC-TOKYO/JAIN-TOKYO] (東京方面) ftp.dit.co.jp[133.156.1.1] ftp.c.u-tokyo.ac.jp[157.82.34.68] ftp.cs.titech.ac.jp[131.112.172.15] [WNOC-FUJISAWA] (慶大SFCなど) ftp.fujixerox.co.jp[129.249.88.2] [WNOC-KYOTO/JAIN-KYOTO] (京都方面) ftp.kuis.kyoto-u.ac.jp[130.54.20.1] [WNOC-FUKUOKA/JAIN-KYUSHU] (九州方面) wnoc-fuk.wide.ad.jp[133.4.14.3] ftp.csce.kyushu-u.ac.jp[133.5.19.4] ---------------------------------------------------------------- これらの、サイトのなかから自分のサイトに一番近いサ イトから ftp してくれば良い。どのサイトが一番近いか は、あなたのサイトの管理人に聞いてみれば分かるだろ う。 まず、これらのサイトから、以下のファイルを ftp で get してくる。このとき、binary で転送するのを忘れて はいけない。また、かなりの量があるのでできるだけネッ トワークのすいている週末や夜中に ftp する方が良い。 また、近くに入手した人がいるなら、その人からコピー させてもらう方が良いだろう。 386BSD(98) のディストリビューションセット ---------------------------------------------------------------- Bootable/ dist98.fs ** util98.fs ** dwrite98.exe ** dwrite98.c dread98.exe dread98.c bin01_98.taz ** patches.taz ** doc98.lzh * doc98.tar.Z * doc98.taz COPYRIGHT COPYRIGHT.98 COPYRIGHT.sjs FILES.98 FILES.sjs INSTALL.98 INSTALL.sjs README.98 README.sjs rogue_p2.taz sys01_98/ sys01_98.00 * sys01_98.01 * sys01_98.02 * sys01_98.03 * sys01_98.04 * sys01_98.05 * sys01_98.06 * patch.news/ * ---------------------------------------------------------------- オリジナルの386BSD ディストリブーションの中で必要なファイル ---------------------------------------------------------------- bindist/bin01.00 〜 bin01.56 ** srcdist/src01.00 〜 src01.61 etcdist/etc01.00 〜 etc01.97 ---------------------------------------------------------------- これらのファイルの中で ** がついているのが インス トールに必須のファイルである。これがないと 386BSD(98)をインストールすることができない。また、* がついているファイルも手にいれるべきである。 なにも 印がついていないファイルも入手できるのなら入手した 方がよい。 また、ftp site から入手する場合は patch.news ディ レクトリの下も入手しておいて欲しい。ここには、 version a を配布した後に見つけた不具合に関する報告 が残してあるので、ドキュメントとともにこれも読んで おくこと。 ftp の例 (ftp.kuis.kyoto-u.ac.jp から ftp した場合) ---------------------------------------------------------------- ukai:(J~(B/tmp% ftp ftp.kuis.kyoto-u.ac.jp Connected to isfs. 220 isfs FTP server (Version 5.60) ready. Name (ftp.kuis.kyoto-u.ac.jp:ukai): anonymous 331 Guest login ok, send your E-MAIL ADDRESS as password. Password: ukai@kuamp.kyoto-u.ac.jp 230 Guest 'ukai@kuamp.kyoto-u.ac.jp' login ok. ftp> cd BSD 250 CWD command successful. ftp> ls 200 PORT command successful. 150 Opening ASCII mode data connection for file list. 4.3BSD-Reno.v2 Tahoe : 386bsd-0.1-PC98-a 386bsd-fj 226 Transfer complete. 114 bytes received in 0.098 seconds (1.1 Kbytes/s) ftp> cd 386bsd-0.1-PC98-a 250 CWD command successful. ftp> ls 200 PORT command successful. 150 Opening ASCII mode data connection for file list. README.98 bin01_98.taz patches.taz : rogue_p2.taz patch.news 226 Transfer complete. 206 bytes received in 0.01 seconds (20 Kbytes/s) ftp> cd Bootable 200 PORT command successful. 250 CWD command successful. ftp> bi 200 Type set to I. ftp> get dist98.fs 200 PORT command successful. 150 Opening BINARY mode data connection for dist98.fs (1228800 bytes). 226 Transfer complete. local: dist98.fs remote: dist98.fs 1228800 bytes received in 13 secounds (91 Kbytes/s) ftp> get util98.fs 以下、同様にして必要なものを get してくる。 mget を使うとワイルドカードが使えるので便利である。 ---------------------------------------------------------------- それぞれのファイルについて簡単に説明する。 Bootable/dist98.fs は 386BSD(98) のフロッピーブート ディスクのイメージファイルである。これを、dwrite98.exe をもちいてフロッピーディスクに書き込むことにより、 386BSD(98)のフロッピーでブートできるのディスクができる。この ようにして作成されたフロッピーディスクでブートすることに より、386BSD(98)のインストールを行なうのである。 Bootable/util98.fs は 386BSD(98) をインストールする ために必要なプログラムが圧縮して入れてある 386BSDの file system のイメージファイルである。これも、 dist98.fs と同様、dwrite98.exe を用いてフロッピーディスク に書き込むことによって、386BSD のディスクを作成する。 Bootable/dwrite98.exe はこれらの386BSD のfile system のイメージファイルをフロッピーに書き込むためのツー ルである。Bootable/dwrite98.c がこの実行ファイルのソー スである。 Bootable/dread98.exe は dwrite98.exe とは逆に フロッピーからイメージファイルを作成するツールであり、 Bootable/dread98.c はそのソールである。dread98.exe はインストールには必要がない。ちなみに、386BSD の file system が書き込まれたフロッピーディスクは MS-DOS の DISKCOPY.EXEでコピーすることができる。 bin01_98.taz は、386BSD(98)のバイナリの中で PC98 独 自のコマンド、及び98版で独自の拡張が行なわれたコマン ドを tar + compress で圧縮したものである。この中には、 それらのコマンドのソースも含まれている。 patches.taz は、オリジナルのままでは問題のあるファ イルに置き換えるファイルを tar + compress で圧縮した ものである。 以下のファイルはドキュメントである。必ず目を通して おいて欲しい。 COPYRIGHT COPYRIGHT.98, COPYRIGHT.sjs FILES.98, FILES.sjs INSTALL.98, INSTALL.sjs README.98, README.sjs COPYRIGHT はオリジナルの著作権について書かれたファ イルである。その他のファイルは 386BSD(98)に関するド キュメントである。拡張子が .98 のファイルは漢字コー ドが EUC(UJIS) であり、.sjs のファイルは 漢字コード が SJIS になっている。これ以外のドキュメントを含め 386bsd(98)に関する全てのドキュメントは doc98.lzh, doc98.tar.Z doc98.taz の中に含まれている。それぞれ、 圧縮方式が lha とtar + compress になっているだけで、 中のドキュメントは同じである。 rogue_p2.taz は、version a の rogue の不具合を修正 するためのパッチである。version b 以降は必要はない。 sys01_98 ディレクトリ の下には、次の 7つのファイル がある。 sys01_98.00, sys01_98.01, sys01_98.02, sys01_98.03 sys01_98.04, sys01_98.05, sys01_98.06 これらは、386BSD(98)のカーネルのソースフルセットで ある。tar + compress したものを単に分割してあるだけ である。 さらに、オリジナルの386BSD の以下のファイルを利用 するので、これらも入手する必要がある。 BIN01.00 〜 BIN01.56 までの57個のファイル。フロッピーディスク12枚分 SRC01.00 〜 SRC01.61 までの62個のファイル。フロッピーディスク13枚分 ETC01.00 〜 ETC01.96 までの97個のファイル。フロッピーディスク20枚分 BIN01 は 386BSD を動作させるために必要なバイナリを 含む様々なファイルが含まれている。BIN01 は必ず入手 しなければならない。 SRC01 は 386BSD のコマンド、カーネルの全てのソース コードが含まれている。PC98 版のカーネルのソースは sys01_98 がすべてであるので必要ないが、コマンドのソー スは手に入れた方がいいだろう。 ETC01 は様々な便利なツール類などを含んでいます。必 ずしも必要ではないがディスクに余裕があるならば入手 しておくことをお奨めする。 これら BIN01, SRC01, ETC01 は、cpio + compress で 圧縮し、それを分割したものである。 386BSD(98) インストールの準備 これから、386BSD(98) のインストールに関して説明して いく。なお、これは version a 及び b でのインストール 手順である。おそらく、これ以後の version に関しても ほぼ同じようなインストール手順になると思われるが、念 のために配布のドキュメントを良く読んで欲しい。 最初にインストールに必要なファイルをフロッピーディスクに 書き込む作業を行なう。 まず、2HD のフロッピーディスクを必要枚数用意する。 98版用のディスクは、dist98.fs に一枚、util98.fs に 一枚、bin01_98.taz と patches.taz で一枚、sys01_98.* で一枚の合計 5枚必要である。dist98.fs, util98.fs は インストール作業中に書き込まれるのでこれらのバックアッ プ用としてさらに 2枚用意しておくのが良い。 BIN01, SRC01, ETC01 のファイルについては先に説明し た分だけのディスクが必要になる。 したがって、最低でも 17枚、kernel の再構成を行なう 場合には、19枚は必要である。SRC01, ETC01 をインストー ルする場合にはさらにたくさんのディスクが必要になる。 用意したフロッピーはすべて MS-DOS で 512バイト/セク タでフォーマットを行なう。このフォーマットは 2HC フォー マットとよばれ、IBM-PC と互換性のあるフォーマットで ある。NEC の MS-DOS では、 FORMAT /5 で、EPSON の MS-DOS では、 FORMAT /E で 512バイト/セクタ でフォーマットできるはずである。 また、Freeware の FO.COM などをつかっても、512バイ ト/セクタでフォーマットすることができる。 フォーマットができたら、dwrite98.exe をつかって、 dist98.fs, および util98.fs をフロッピーディスクに 書き込む。使い方は、MS-DOS の COMMAND.COM から A> DWRITE98 のようにすれば見ることができる。ドライブの番号は 1 からで MS-DOS のドライブではなく、物理的なドライブ番 号を表している。 例えば、ドライブ 1に dist98.fs を書き込むためには、 A> DWRITE98 dist98.fs 1 とすればよい。util98.fs も同じようにして書き込む。 一旦フロッピーディスクに書き込めれば、後は DISKCOPY.EXE をつかって、簡単にコピーをとることがで きる。 dwrite98.exe は、disk cache などと相性が悪いので書 き込みに失敗した場合は cache を抜いてもう一度ためし てみる。また、KI-shell などの常駐ソフトがあると動か ないこともあるので、そのような時は常駐ソフトなどを 外してから書き込んでみて欲しい。 以上で、dist98.fsディスクと util98.fsディスクは作 成完了である。これらのディスクはインストール時に書 き込みを行なうのでバックアップディスクを作って置く べきである。バックアップディスクは DISKCOPY.EXE を 使えば良い。 つぎに、bin01_98.taz, patches.taz の入ったディスク を作る。これらは、単に 2HC でフォーマットされたフロッ ピーディスクに COMMAN.COM の COPYコマンド でコピー するだけで良い。 以下、sys01_98.*, bin01.* も同じように COPYコマン ドでコピーする。src01.*, etc01.* を入手していたら、 これも同様にフロッピーに書き込む。 ---------------------------------------------------------------- ここまでの手順。 すべて、MS-DOS 上で作業する。 なんらかの方法で配布されているファイルを ハードディスクにコピーしておく。 ハードディスクが A ドライブ、 フロッピーディスクが B: C: ドライブ を仮定している。 0) 2HC でフォーマットする。 A> FORMAT /5 B: 1) dist98.fs ディスクの作成、バックアップディスクの作成 A> DWRITE98 DIST98.FS 1 A> DISKCOPY B: C: 2) util98.fs ディスクの作成、バックアップディスクの作成 A> DWRITE98 UTIL98.FS 1 A> DISKCOPY B: C: 3) bin01_98.taz, patches.taz のディスクの作成 A> COPY BIN01_98.TAZ B: A> COPY PATCHES.TAZ B: 4) sys01_98 ディスクその1の作成 A> COPY SYS01_98.00 B: A> COPY SYS01_98.01 B: A> COPY SYS01_98.02 B: A> COPY SYS01_98.03 B: A> COPY SYS01_98.04 B: 5) sys01_98 ディスクその2の作成 A> COPY SYS01_98.05 B: A> COPY SYS01_98.06 B: 6) bin01 ディスクその2の作成 A> COPY BIN01.00 B: : : A> COPY BIN01.56 B: 7) src01 ディスクの作成 A> COPY SRC01.00 B: : : A> COPY SRC01.61 B: 8) etc01 ディスクの作成 A> COPY ETC01.00 B: : : A> COPY ETC01.96 B: ---------------------------------------------------------------- 以上で、フロッピーディスクへの書き込みは終りである。 次に、ハードディスクの準備を行なう。その前に、ハー ドディスクのバックアップはとっておくことを忘れない ように。386BSD(98)のインストール時に DOS の管理領域 を修正するので間違ってインストールしてしまった場合は 元に戻すことはできなくなるので慎重に作業して頂きたい。 現在のversion ではハードディスクは 512バイト/セク タのディスクしか対応していない。512バイト/セクタで フォーマットされていないならば、FORMAT.EXE を使って、 512バイト/セクタでハードディスクの初期化をおこなっ ておく。 次に、ハードディスクに 386BSD(98)用の領域を確保する。 まず、FORMAT.EXE を起動し、固定ディスクを選択し、領 域確保で386BSD(98)用の領域を確保する。386BSD(98)用と して最低でも 40M は確保すべきである。できれば 80M は 欲しいところである。 以上で、インストールの準備は終りである。SCSI ディス クにインストールする場合は SCSI-ID を 0にしておく。 386BSD(98) のインストール フロッピードライブ 1から dist98.fs でブートする。 dist98.fs には書き込むので、ライトプロテクトはしては いけない。正常に動作すれば、dist98.fs の 386bsd がブー トし以下のようなメッセージが表示されプロンプト # が 表示される。これでブートしない時はハードウエアの設定 がおかしい可能性がある。もう一度点検して欲しい。 ---------------------------------------------------------------- 386BSD Release 0.1 by William and Lynne Jolitz. [0.1.0 10/17/92 06:34] Copyright (c) 1989,1990,1991,1992 William F. Jolitz. All rights reserved. Based in part on work by the 386BSD User Community and the BSD Networking Software, Release 2 by UCB EECS Department. 386BSD Release 0.1 for PC98 by Kyoto University Microcomputer Club. Copyright (c) 1992 A.Kojima F.Ukai M.Ishii (KMC). All rights reserved. real mem = 10481664 avail mem = 9138176 pc0 at 0x41 irq 1 on isa com0 at 0x30 irq 4 on isa as0 [dma is changed to #3] at 0xcc0 irq 3 drq 3 on isa fd0 at 0x90 irq 11 drq 2 on isa lpt0 at 0x40 irq 8 on isa as0: attached tgt 0 winchester disk warning: no swap space present (yet) 386BSD for PC98 DIST.FS Floppy Release 0.1 To make floppy writable, use "mount -u /dev/fd0a /". erase ^H, werase ^W, kill ^U, intr ^C # ■ ---------------------------------------------------------------- ブートしたらまず ---------------------------------------------------------------- # mount -u /dev/fd0a / ---------------------------------------------------------------- として、書き込み可能にしておく。 次に、DOS のハードディスク管理領域の変更、及び 386BSDによるパーティションの確保、論理フォーマットを 行なう。これを行なうために dospart98 を起動する。 ---------------------------------------------------------------- SCSI-HD にインストールを行なう場合は、 # dospart as0 ( SCSI-ID が 0 の場合) ノート内蔵ハードディスクの場合は、 #dospart98 wd0 を実行する。 ---------------------------------------------------------------- dospart98 は、どの領域を 386BSD 用にするかを決定し、 386BSD のパーティションサイズを計算する。この結果 に基づき 386bsd の領域を確保し、論理フォーマットを 行なう。 パーティションサイズは、簡単モードの時は root file system として 6M を確保し、swap size から残りのパー ティションサイズを計算する。swap size は、メモリ容 量の2.5倍くらい確保しておくのがいいと聞いている。 簡単モードでなく手動にした時は、それぞれのパーティ ションで何シリンダ確保するか入力していけば良い。 386BSD では a パーティションが root file system b パーティションが swap file system となっているこ とに注意する。 ---------------------------------------------------------------- 実行例: ICM MO-3120 ハードディスク互換モード **************************************************************** erase ^H, werase ^W, kill ^U, intr ^C # mount -u /dev/fd0a / ^^^^^^^^^^^^^^^^^^^^ # dospart98 as0 ^^^^^^^^^^^^^ # |boot|active|OS |start|end |vol name [mid,sid] 1|on |yes |MSDOS | 0001| 0005|MS-DOS 5.00 [A1,81] 2|on |yes |MSDOS | 0006| 0119|MS-DOS 5.00 [A2,91] どちらの操作を行ないますか a) 386bsd領域の確保, b) MS-DOS領域に戻す ? [ab] a ^ どの領域ですか ? (1-2,0=全ての領域,q=終了) 2 ^ 領域 2 を選択しました 領域2を386bsdにします IPL cyl = 6, start cyl = 6, end cyl = 119 vol name = 386bsd disktabを生成します: m) 手動, e) 簡単モード ? [me] e ^ ディスクの名前は? EASY ^^^^ 386bsd用に114シリンダ(114 MB)あります 1024 KB/シリンダです スワップサイズは何MBにしますか? 14 ^^ a パーティション(root): 6シリンダ( 6.0 MB) b パーティション(swap): 14シリンダ(14.0 MB) h パーティション(/usr): 94シリンダ(94.0 MB) /etc/disktabに書かれたdisktab #sample disktab EASY|PC9801 SCSI EASY: (J\(B :dt=SCSI:ty=winchester:se#512:nt#32:ns#64:nc#120: (J\(B :pa#12288:oa#12288:ta=4.2BSD:ba#4096:fa#512: (J\(B :pb#28672:ob#24576:tb=swap: (J\(B :pc#233472:oc#12288: (J\(B :ph#192512:oh#53248:th=4.2BSD:bh#4096:fh#512: DOSの管理領域に書き込んでいいですか? [yn] y ^ disklabel を書き込みますか? [yn] y ^ disklabel -r -w as0 EASY OK # /dev/ras0d: type: SCSI disk: EASY label: flags: bytes/sector: 512 sectors/track: 64 tracks/cylinder: 32 sectors/cylinder: 2048 cylinders: 120 rpm: 3600 interleave: 1 trackskew: 0 cylinderskew: 0 headswitch: 0 # milliseconds track-to-track seek: 0 # milliseconds drivedata: 0 8 partitions: # size offset fstype [fsize bsize cpg] a: 12288 12288 4.2BSD 512 4096 0 # (Cyl. 6 - 11) b: 28672 24576 swap # (Cyl. 12 - 25) c: 233472 12288 unused 0 0 # (Cyl. 6 - 119) h: 192512 53248 4.2BSD 512 4096 0 # (Cyl. 26 - 119) newfs を実行しますか? [yn] y ^ newfs as0a Warning: Block size restricts cylinders per group to 11. /dev/ras0a: 12288 sectors in 6 cylinders of 32 tracks, 64 sectors 6.3MB in 1 cyl groups (11 c/g, 11.53MB/g, 5120 i/g) super-block backups (for fsck -b #) at: 32, newfs as0h Warning: Block size restricts cylinders per group to 11. /dev/ras0h: 192512 sectors in 94 cylinders of 32 tracks, 64 sectors 98.6MB in 9 cyl groups (11 c/g, 11.53MB/g, 5120 i/g) super-block backups (for fsck -b #) at: 32, 22624, 45216, 67808, 90400, 112992, 135584, 158176, 180768, OK # **************************************************************** 入力する部分については下の行に ^ がつけてある。 ---------------------------------------------------------------- これで、386BSD の領域が確保され、論理フォーマット が終了する。 次に、このfile system を mount し、フロッピーの内容 を以下の手順でコピーする。 ---------------------------------------------------------------- # mount /dev/as0a /mnt # mkdir /mnt/usr # mount /dev/as0h /mnt/usr # cd /; cat dist.fs.files | cpio -oc | ( cd /mnt; cpio -iadmv ) ---------------------------------------------------------------- これで、フロッピーディスクの内容がハードディスクに コピーされる。ノート内蔵ハードディスクにインストー ルする場合には、as0 のかわりにwd0 とすればよい。 コピーが終了したら、sync して ディスクに完全に書き 込んでハードディスクをumount する。 ---------------------------------------------------------------- # sync # sync # sync # umount /mnt/usr # umount /mnt ---------------------------------------------------------------- umount したら、さらに sync を数回実行しておく。そ のあと CTRL+GRPH+DEL などでリセットし、次はハードディ スクから 386BSD を起動する。リセットをかけたらフロッ ピーディスクを抜くのを忘れないように。IPL の memu が出てきたら 386BSD を選べば良い。MS-DOS 5 の場合、 起動時に TAB を押していれば、IPL の menu を出すこと ができる。 ---------------------------------------------------------------- # sync # sync # ■ ( CTRL+GRPH+DEL で reset フロッピーディスクを抜く。 ) ( 386BSD をハードディスクからブート ) 386BSD Release 0.1 by William and Lynne Jolitz. [0.1.0 10/17/92 06:34] Copyright (c) 1989,1990,1991,1992 William F. Jolitz. All rights reserved. : : erase ^H, werase ^W, kill ^U, intr ^C # ■ ---------------------------------------------------------------- ブートしたら、root file system を書き込み可能にし、 /usr 領域を mount する。 ---------------------------------------------------------------- erase ^H, werase ^W, kill ^U, intr ^C # mount -u /dev/as0a / # mount /dev/as0h /usr # ■ ---------------------------------------------------------------- 次に、util98.fsディスクを ドライブ 1 にいれて mount し、 インストールに必要なコマンドを展開する。展開が終ったら、 umount して utils98.fs フロッピーを抜きとっておく。 ---------------------------------------------------------------- (util98.fsディスクを ドライブ 1 に入れる。) # mount /dev/fd0a /mnt # cd /; zcat /mnt/utils.cpio.Z | cpio -iadmv : # umount /mnt (util98.fsディスクを抜く。) ---------------------------------------------------------------- 次に、/etc/fstab を作っておく。すでに、 /etc/fstab.as, /etc/fstab.wd としてサンプルが置いて あるのでそれを参考にすれば良い。 /etc/fstab (SCSI 用サンプル ID=0) ---------------------------------------------------------------- /dev/as0a / ufs rw 1 1 /dev/as0h /usr ufs rw 1 1 ---------------------------------------------------------------- /etc/fstab (ノート内蔵ハードディスク) ---------------------------------------------------------------- /dev/wd0a / ufs rw 1 1 /dev/wd0h /usr ufs rw 1 1 ---------------------------------------------------------------- /etc/fstab では、# で始まる行がコメントと見なされ ないことに注意する必要がある。version a のサンプル には # で始まるコメント行が残っているのでエディッタ などで消去しておく。 なお、386BSD では mfs(memory file system)が利用で きる。mfs を使うためにはインストールが終了した後、 次のようにしておけば良い。 ---------------------------------------------------------------- mfs の使い方 ================================================================ まず、一通りインストールをする。 # cd /sbin; ln newfs mfs としておいて、 # mfs /dev/wd0b /tmp とすると /tmp が mfs として mount される。 mfs を実行するかわりに /etc/fstab に /dev/wd0b /tmp mfs rw 1 3 という行を加えておくと、/etc/rc の mount -a -t nonfs で自動的に /tmp が mfs でmount される。 ================================================================ つぎに、BIN01 をインストールする。BIN01 はオリジナ ルのIBM-PC 版と同じものを使う。BIN01 は以下の手順で インストールを行なう。 ---------------------------------------------------------------- # cd /usr/tmp ( bin01.* の入ったフロッピーディスクをドライブ1 に入れる。) # mread "*.*" . ( これを bin01.00 〜 bin01.56 全部読み込むまで繰り返す。) # ln -s /usr/tmp/* /tmp # cd /tmp # /distbin/extract bin01 current <...> newer or same age current <...> newer or same age : (遅いマシンだとかなり時間がかかるが、途中でとめてはいけない。) # rm /tmp/bin01.* /usr/tmp/bin01.* ---------------------------------------------------------------- extract を実行してインストールした場合、最後に hostname の入力を求められた時に失敗してしまうが、気 にしなくてよい。あとで、/etc/myname に自分で hostname を書き込めば大丈夫である。 extract を使えばファイルのチェックなどを行なって くれるのだが、展開時にかなりのディスクを消費してし まう。そこで、ディスク容量の少い人は extract のかわ りに /distbin/extractrm.cpio というシェルスクリプト を使えば良い。 以上で、BIN01 のインストールは終了である。 この後、バイナリの差し替えを行なう。BIN01 の時と同 じようにファイルをハードディスクに読み込む。その後、 uncompress と tar をつかって展開する。 ---------------------------------------------------------------- # cd /usr/tmp ( bin01_98.taz と patches.taz の入ったディスクをドライブ1 に入れる。) # mread "*.*" . # cat bin01_98.taz | uncompress | ( cd /; tar xvpf -) # cat patches.taz | uncompress | ( cd /; tar xvpf -) # rm bin01_98.taz patches.taz ---------------------------------------------------------------- あとは、device file の作成を行なう。device file の 作成には/dev/MAKEDEV というシェルスクリプトを利用す ると良い。 ---------------------------------------------------------------- # cd /dev # ./MAKEDEV std ---------------------------------------------------------------- std を引数に渡すと標準のdeviceのためのdevice file が作成される。同様にハードディスクのdevice file を 作成する。ただし、MAKEDEV でハードディスクの device file を作成すると、次のブート時に fsck で UNREF error が発生する。ファイルのモードが 60600 のUNREF (未参照)のエラーの場合は無視してもかまわない。気に なる人は手で、必要なdevice file をmknod コマンドを 用いて作成すれば良い。 最後に、ホスト名の設定、/etc/rc, /etc/rc.local など を編集し、環境を整えていく。 ホスト名は /etc/myname に次のようにして書き込めば良い。 ---------------------------------------------------------------- # echo ホスト名 > /etc/myname ---------------------------------------------------------------- /etc/rc は 386BSD ブート時に実行されるシェルスクリ プトである。/etc/rc から、/etc/netstart, /etc/rc.local が呼び出されている。ネットワーク関係は /etc/netstart で、local な設定は /etc/rc.local で行なう。 その他、環境の設定は、従来の BSD UNIX とほとんど同 じなので、UNIX のシステム管理に関する本などをみて環 境を整えていけばよい。ただし、パスワードの設定は直接 /etc/passwd を編集するのではなく、必ず vipw コマンド を使って設定する必要がある。 以上で、386BSD(98) の必要最小限のインストールが終了 する。この後、 ---------------------------------------------------------------- # /sbin/shutdown -r now ---------------------------------------------------------------- とすれば、即座に system の停止作業に入り、system が 停止したら、リブートする。次に 386bsd がブートすると マルチユーザモードで立ち上がる。 ---------------------------------------------------------------- 386BSD Release 0.1 by William and Lynne Jolitz. [0.1.0 10/17/92 06:34] Copyright (c) 1989,1990,1991,1992 William F. Jolitz. All rights reserved. : : lpt0 at 0x40 irq 8 on isa as0: attached tgt 0 winchester disk Automatic reboot in progress... /dev/ras0a: .... : starting local daemons:. Wed Nov 11 08:10:53 JST 1992 386BSD (ホスト名) (console) login: ■ ---------------------------------------------------------------- これで、とりあえず386BSDが使えるようになった。 あとは、SRC01, ETC01 などを必要に応じてインストールしていく。 これらは BIN01 と同じようにすればインストールすることができる。 98用のカーネルのソースのインストールは次のように行なえば良い。 ---------------------------------------------------------------- # cd /usr/src # mv sys.386bsd sys.386bsd.ibmpc ( これは、IBM-PC 用のソースを保存する場合。 消してしまってもかまわない。) # cd /usr/tmp # mread "*.*" . # mread "*.*" . (mread を使って sys01_98.* を読み込む。) # /distbin/extractrm.tar sys01_98 (これで、/usr/src/sys.386bsd の下に 386bsd(98) のカー ネルのソースがインストールされる。) ---------------------------------------------------------------- 以上で、インストールの説明は終りである。 386BSD(98) は日々 bug fix, minor version up がなさ れている。これからも色々な device が使えるようにし ていきたいと思っている。また、X window system も移 植しようとしている。 386BSD(98)に関する問い合わせは、 386bsd98@kuis.kyoto-u.ac.jp へ、e-mail を送って欲しい。Nifty や PC-VAN からでも、 WIDE 経由でこのアドレスへ e-mail を送ることができる。