V7とLinuxでUUCP(1)PCメモPC関係のメモ、気付いたこと。OSをいじって遊んでいます。OSのカスタムビルドを配布しています。ないブログに表示されています。新しい記事を書く事で広告が消えます。V7にホストOSのLinuxからファイルを持っていきたいときに、いちいちテープイメージを作るのは面倒くさいので、今回はUUCPでファイルを転送できるようにしてみたいと思います。V7の時代はまだTCP/IP自体が存在していなかったそうです。V7にはデフォルトでUUCPを動かすために必要なプログラムが含まれています。私はUUCPの現役時代は雑誌記事で読んだ程度でほとんど知りません。今回はそれを試してみようと思います。UUCPの時代は、電話回線経由でダイヤルアップによりコンピュータどうしを接続していたようです。simhのPDP-11エミュレータではダイヤラーなどの自分から外部に接続しに行くためのデバイスがサポートされていません。V7につなぎに行くようにしてみます。相手がエミューレーターだからできる技ですね。言って邪道ですが、まあ良しとします。V7どうしでのUUCP接続は発信用デバイスがないので断念しました。V7からLinuxに送信することもできるようになっています。V7側の設定>まず、前提条件として、こちらの記事で書いた手順で外部からtelnetで接続できるようにしておく必要があります。(DC11を使った場合はうまく通信できませんでした。V7側の着信設定を行います。V7に自動でtelnetで接続し、ユーザuucpでログインしてきます。このuucpユーザのシェルをやはりuucicoにすることでuucicoどうしで会話しながらファイルを送受信する、という形態になります。V7にはデフォルトでユーザuucpが存在していますが少し手直しします。ユーザuucpのパスワード設定を行います。password:#また、/etc/passwdにはデフォルトでシェルのパスとしてuucicoが設定されていますが、パスが実際と食い違っているので直します。スプールディレクトリの作成UUCPでは、送受信するファイルを一時的にためておくためのスプールディレクトリが必要になります。このスプールディレクトリのパスはハードコーディングされているため、その場所に作ります。アクセスするのはuucpユーザなのでオーナーの変更も行います。/usr/spool/uucpなお、スプールディレクトリのパスを変更するためには/usr/src/cmd/uucp/uucp.hを修正してUUCP関連のプログラムをリビルドする必要があります。今回は面倒なのでやりません。リモートサイトの定義uucp関連の設定ファイルは/usr/lib/uucpにあります。ここのL.sysに以下の行を追加して、接続してくるLinuxホストの定義を行います。uucp一番左の"centos6"がリモートサイトの名前になります。次のAnyはいつでも呼び出し可であることをあらわします。当時のUUCPはダイヤルアップ接続がメインであったため、電話代節約の観点で接続時間を限定する、ということがあったようです。今回は関係ないのでAnyにしています。あとはtty00を使って9600ボーでやり取りする、という意味になるようです。V7から別マシンに接続しに行くときに必要になる設定です。具体的には、loginという文字列を受け取ったらuucp送信し、assword:という文字列を受け取ったらuucpを送信する、という意味のようです。要するに相手に接続する際のログインシーケンスです。V7側は着信専用なので、L.sysにもとからある設定をそのままパクっています。続いて/usr/lib/uucp/USERFILEを編集して、Linux側のユーザのアクセス権を設定します。V7にファイルを送信できるようになります。V7にファイルを送信しようとするユーザを指します。以下の行を追加します。/とすると、リモートサイトcentos6のユーザuserが/配下のどこにでもアクセスできるということになります。userは実在のユーザで適宜読み替えてください。実際の運用ではこんな危ない設定はしないと思いますが、まあ、今回は試すだけなので良しとします。V7のuucpユーザなので、uucpユーザがアクセスできないところには読み書きできないはずです。動作確認ここまで設定したら動作確認します。V7にtelnetで接続し、ユーザuucpでログインします。このとき、LinuxのGNOMEやKDEの端末プログラムではなく、WindowsのTeratermなど、外部から接続するようにするのがベストです。(理由は後述します)。uucpのパスワード。←これが表示されるか確認するこの"Shere"が表示されたら、以下のようにタイプします。(Ctrl+P)Scentos6(Ctrl+Space)これは接続元のサイト名がcentos6であることを表します。これを入力してROKPgと表示されれば通信ができています。これは接続が許可され、gプロトコルで通信を行います、という意味です。ここで、LinuxのGNOMEやKDEだと、Ctrl+Spaceが日本語入力に割り当てられていることがあり、それだとうまく動作確認ができません。いちいち設定を変えるのも面倒ですので、外部から試すのがお手軽です。最後に(Ctrl+P)(Ctrl+H)(Ctrl+Space)とタイプすると通信が切断されます。V7を終わらせて、起動ファイルを修正します。7bを8bに変更7bを8bに変えることで通信中にトップビットがクリアされるのを抑止します。telnetで外部から接続しようとすると文字化けが起きるようになります。長くなったのでここでいったん切ります。次はLinux側の設定について書きます。Unixをインストールするsimhをインストールしてみるランキングに参加してみました。クリックしていただければ嬉しいです。