JavaScriptとHTML5で作ったUNIX v6 emulatorっぽい何かの紹介
http://d.hatena.ne.jp/takahirox/20110827/1314441832の続き
紹介動画
免責
まだバグバグな状態です。無限ループなどにはまる可能性もあります。自己責任で使用してください。
ローパワーなマシンだと結構遅いです。
使い方
下記のリンクをクリックしてください。Windows + Chrome環境のみで動作確認しています。
http://unix-v6-hacks.googlecode.com/git/html5/terminal.html
--allow-file-access-from-filesオプションをつけてchromeを実行しておく必要が有ります。このサイトを参考にしてください。
http://chrome.half-moon.org/43.html
emulatorのページを開いたらウィンドウ内にディスクイメージをドラッグ&ドロップしてください。ディスクイメージはこちらを使ってください。
バグのため(後述)、正式なものを使うとうまく動きません。バグを修正次第、上記ディスクイメージは削除します。
terminal
このterminalはかなり適当な実装です。リダイレクション、パイプ未実装。カーソルキーやその他色々なものが使えないし、使うとうまく動きません。
bundled functions
trace
a.out(executable file)を実行後trace_dataをクリック。
バグリスト&未実装な箇所
- filsys(superblock)のs_free, s_inodeが枯渇したときに補充しにいっていない
- これが正式なディスクイメージだと動かない理由。s_inodeが5しかない
- data block, inodeを解放するとき、s_free, s_inodeに戻しにいったり、戻しにいかなかったり
- emulator上で生成したファイルがrmで削除できない
- 一部のプログラムがうまく動いていない(wcとか)
- 一部の命令未実装
- 一部のsystem call未実装
- u.u_ofileの実装がかなり適当
- LARGE FILE対応していたり、していなかったり
- binの下でlsがうまく動かない
- edなど対話形式のプログラムが動かない
- ls -lでファイルサイズが取得できていない
- パーミッション(アクセス管理)未実装
- trace情報や逆アセンブラで、一部表示がおかしい
- ファイル抽出機能がない
- その他色々
その他
emulatorというか、file system viewer + disassembler + a.out interpreterにterminalを被せたもの。
メモリ管理などはしていない。
徐々にemulatorに近づけていく予定。
昔のインターフェイスの方が好きな人はこちらへどうぞ。