工学実験1 最初の準備
授業のページ
今回の演習は、Chukyo BSD上で、プログラムを実行し、結果を収集します (同じ設定なら、全員が同じ結果になります)。仲間で協力しよう。
- Virtual Boxから、Chukyo BSDを起動します。
- 演習で使うCプログラムをMaNaBoからダウンロードして準備します。
1. Virtual Box から、Chukyo BSDを使ってみよう
- Windowsで、Virtual Box を起動
メニュー左のChukyo BSDを選択。 →起動を選択。
- 仮想的に、電源を入れた状態です。UNIXが起動します。
- スケールモードを選択しよう (一つのウィンドウが大きく、Virtual Boxになります)
無事、起動したら、ログインしよう
- login guest
- password 表示されません
- 忘れたら、鈴木先生の資料
UNIXのウィンドウシステム、Fluxbox を使ってみよう
(日本語の入力切り替えは、Shiftとスペースキー)
- 右メニューで、ソフト一覧(英語)。選択すると、ソフトウェアが起動
- Firefox ウェブページブラウザ
- urxvt ターミナルソフト (コマンドを入力できるウィンドウ)
- tkgate (回路シミュレータ) (「コンピュータのアーキテクチャと構成」で利用予定でした)
- Firefoxで、MaNaBoにアクセスしてみよう 。授業のページ、9回目へ。
- Chukyo BSD起動中に、マウスポインター(→)が消えた、という場合は、右のCtrlキーを試してみて
2. 演習で使うCプログラムをMaNaBoからダウンロードして準備します
(指導書4.3)
urxvtを使用する。基本のUNIXコマンドを入力してみよう。マウスによるコピーはせずに、キーボード入力だ!
- urxvt が起動した最初のディレクトリを、ホームディレクトリ、といいます。
- ls
- pwd
- 授業用のディレクトリ (Windowsではフォルダ)を作成します。 problem-solvingという名前にします。(問題解決にあたる専門用語です)
- cd problem-solving (移動します)
- pwd で、移動を確認しよう
MaNaBoから、この演習で使う2つのファイルをダウンロードしよう。 mt-search.c と node.c です。2つをproblem-solvingの下にダウンロードします。
- save link as
- ダウンロード先に、guest を選択し、problem-solvingディレクトリを指定しよう
- 本当にファイルがあるか、urxvtウィンドウで、確認しよう
- ls -l (もう少し詳しい情報表示)
- cat ファイル名
- less ファイル名 (大きいファイルのとき。次のページは、スペース。1ページ戻るにはb。終了はq)
- 今は使いませんが、ファイル操作用コマンド
- rm ファイル名
- mv 元のファイル 移動先
- cp 元のファイル コピー先
ダウンロードしたCのソースファイルを、コンパイルしよう。
- gcc -o mt-search mt-search.c
- うまくいけば、mt-search というファイルができます。ls -l で確かめてみよう。
mt-searchを実行しよう。最初の ./ をお忘れなく。
- ./mt-search 2 3 4 0
- このプログラムの指定: モデル木の木の分岐数2 木の深さ3段(最初は0に注意) 目標ノード番号4 探索アルゴリズム識別0 (0は深さ優先探索)
- 実行例 (小笠原先生の例) (ループのたびに、探索アルゴリズム中の リスト L の内容を 出力。最後の行は、目標状態に到達した場合のパス(探索履歴)を出力しています)
もう1つのプログラムをコンパイルしよう。
- gcc -o node -lm node.c
- -l は、リンクせよ、という意味。mは、mathematicsつまり、数学関係のライブラリのリンクを指定しています。
- ls -l で、コンパイル成功を確認しよう。
- ./node 3 4 3
- このプログラムの指定 : b, m, d
- モデル木の例は、指導書のp.33。mt-searchを実行する前に、b, m, dを指定した場合のモデル木のノード番号を知る必要があります。
- 実行例 (分岐数 3, 木の深さ 4段、3段目までのモデル木、左端と右端のノード番号の出力)
WindowsとUNIXのファイルの改行コードについて
- UNIXとWIndowsでは、同じ日本語コードであっても、改行コード(各行の最後にある、見えない文字コードです)は異なっています。
- UNIXはLF,WindowsはCR+LFです。今回のプログラムは、UNIXにあわせてあります。
- 改行コードの変更方法は、ネットなどを参照のこと。Terapadは簡単
そのほか、いろいろと必要になりそうな作業
urxvtで、ファイルを編集
- emacs エディターを推薦。 emacs ファイル名
- emacs の編集用コマンドは、覚える必要あり。ネットを活用のこと。
- 基本編 のコマンド。 まずは、終わり方を
一方のコマンド出力を、次のコマンドの入力へ
- | (パイプと呼ばれる機能)
- ./mt-search 2 3 4 0 | grep NULL | wc
コマンド出力結果を、ファイルに書き出し
- > (リダイレクトと呼ばれる機能。出力結果をディスプレイ表示から、ファイル出力へ切り替え)
- ./mt-search 2 3 4 0 > 2-3-4-0.log
- cat 2-3-4-0.log
- >は、元あるファイルをオーバーライト(上書きで内容を消してしまう)。 >> とすると、元のファイルの最後に追加 (これをアペンド、という)
コピーアンドペースト
- Chukyo BSD 内
- コピー: 左ボタンハイライト ペースト:2つのボタンを両方押し下げ。
- Windows と Chukyo BSD
- できません。。Chukyo BSDの実行結果を、Windowsに持ってくるには、ファイルの転送 。下の「WindowsとChukyo BSDで、情報/ファイルやりとり」を。
Windows と Chukyo BSDで、情報のやりとり (ファイルを使わないで、windows内のコピーアンドペーストへ 鈴木先生は、これを推薦かな)
- Windowsに、Tera Term をインストール (窓の杜をおすすめします)
Windowsからみて、ChukyoBSDのIP アドレスを確認
- urxvtで、ifconfig
- em1のアドレスを: 192.168. 何とか. 何とか のはず。 (例は、192.168.56.109)
Tera Termを起動する1
- 起動して、ホスト名にIPアドレスを直打ちする。例は、192.168.56.109
- サービスは、SSH
- OK
Tera Termを起動する2
- ユーザ名とパスフレーズを入力して
- 認証方式を、「キーボードインタラクティブ認証を使う」
- Tera Termで、作業する。
- Windowsのソフトを使っていることになるので、Windowsのコピーアンドペーストが使える。マウスハイライトで、Cont cとCont vだ。
Windows と Chukyo BSDで、ファイルのやりとり1
- cncドライブ の利用 (ウェブブラウザを使います)
- google ドライブなど、クラウドドライブの利用
Windows と Chukyo BSDで、ファイルのやりとり2
- WindowsのPowershellから、scp コマンド (ネットワーク上の cpコマンド)
- Chukyo BSDのIP アドレスを知るには
- urxvtで、ifconfig
- em1のアドレスを: 192.168. 何とか. 何とか のはず。 (例は、192.168.56.109)
- chukyo BSDのファイルを (~/problem-solving/2-3-4-0.log というファイルを例に)、Windowsにとってこよう
- PowerShellを起動: Windows側、持ってきたいフォルダーで、Shift 右クリック。メニューから、Power Shell
- scp guest@192.168.56.109:problem-solving/2-3-4-0.log . ( . を忘れないで!)
- パスワードを聞かれるので、入力
- power shellで、ファイルを確認しよう。Powershellも、UNIXに似たコマンド名 (入出力が微妙に違う。。)
Windows と Chukyo BSDで、ファイルのやりとり3
- やりとり2と同様に、IPアドレスを確認する。
- Windows側で、winscpなどのGUIソフトウェアを用いて、接続する。(winscpは窓の杜などからインストール)
終わり方
- Virtual Boxの右上の×
- あるいは一旦ログアウト (FluxboxをメニューからEXIT) して、特別なユーザ rootでログイン
- shutdown -p now
- Virtual Boxというマシンの電源が落ちた状態になります