PDP-11
お盆休みに予定していたV6移植ハッカソンですが、残念ながら参加者が少なかったため中止とさせていただきました。今後は池袋バイナリ勉強会の中で作業を進める予定です。力不足、大変申し訳ありません。
スタート低レイヤー#2でid:shinichiro_hさんに全部入りのbinutilsが作れるということを教えて頂きました。さっそく試してみました。MSYS(MinGW)用のバイナリを置いておきます。 binutils-2.23.2-msys-cross-all.tar.xz (14.6MB) /usr/localに展開するだけで…
先日、PDP-11から8086へのトランスレータを試作しました。 PDP-11のアセンブリを8086に変換 簡単なプログラムを変換して大まかなABIが見えてきたので、仮にまとめます。詳細についてはV6移植ハッカソンで作業しながら決めていこうと思います。
V6移植ハッカソンの作業フローをまとめました。今まで作って来たインタプリタやトランスレータの位置付けがはっきりするのではないでしょうか。
V6移植ハッカソンでは手始めにトランスレータを作りながらPDP-11から8086への変換について調べる予定です。現場でスクラッチから始めると発散しかねないので、ある程度方向付けるためトランスレータを試作しました。 pdp2i8086.py コマンドライン引数を表示…
前回、インタプリタを複数のCPUやOSに対応させる過程を書きました。 インタプリタのクラス設計 実際に動かしてみます。 $ file write-minix write-v6 write-8086v6 write-minix: Linux-8086 impure executable write-v6: PDP-11 executable write-8086v6: DO…
自作インタプリタを少しずつ進化させて、複数のCPUやOSをサポートできるようになりました。クラス設計で試行錯誤した過程を残しておきます。 https://bitbucket.org/7shi/i8086tools ※ 文中の図はインラインSVGで描いています。(ソース)
i8086インタプリタにPDP-11インタプリタを統合しました。1つのプログラムでMINIX 2とUNIX V6の両方のバイナリを動かせます。 https://bitbucket.org/7shi/i8086tools UNIX V6のccを動かしてカーネルがビルドできることを確認しました。 https://twitter.com/…
Lions本読書会2011秋合宿での作業についてまとめたスライドを公開します(他の方の発表)。UNIX V6のCコンパイラを改造しようとして、前段階のビルドにハマって何もできなかった話です。 Cコンパイラの改造(未) View more presentations from n 7shi pptx…
Lions本読書会2011秋合宿で発表したLTの資料を公開します(他の方の発表)。id:n7shi:20111011で告知したサンクと継続の勉強会に絡めた内容です。 V6でJIT・部分適用・継続 View more presentations from n 7shi pptx版(同内容): v6-jit-th-cr.pptx ソース…
名古屋Geek Bar 5月2日(月)でLTをして来ました。V6関係のツールがメインですが、自己紹介に絡めて独自言語のセルフホスティングも取り上げています。V6 Interpreter (Nagoya Geek Bar 2011-05-02)
id:n7shi:20110408で開発したSilverlight版のPDP-11インタプリタですが、ブラウザから出してコマンドラインで動かなければ、実用には厳しいと感じました。そのためC++で書き直して、Win32とPOSIXに対応しました。Win32はMinGW、POSIXは Interix 3.5, NetBSD …
id:n7shi:20110330で開発に着手したPDP-11のインタプリタですが、最低限必要な命令とシステムコールを実装して、ようやくV6のコンパイラが動くようになりました。Silverlightに対応した環境ではブラウザ内で動きます。 実行 ⇒ http://7shi.net/v6/ ソース ⇒ …
id:n7shi:20110322で開発したPDP-11の逆アセンブラを拡張して、UNIX V6のバイナリを対象としたインタプリタの開発に着手しました。まだ未実装の命令やシステムコールが多数ありますが、とりあえずprintf()くらいは動くようになりました。Silverlightに対応し…
PDP-11の命令について調査するため、Silverlightで逆アセンブラを作成しました。UNIX V6のa.outに対応しています。 実行 ⇒ http://7shi.net/v6/ ソース ⇒ https://bitbucket.org/7shi/v6/src/e49b87e118af Lions本では8進数に戸惑ったため、デフォルトの出力…
MSYSでPDP-11のクロスgccをビルドしました。バイナリを置いておきます。 gcc-4.6.1-msys-cross-pdp11-aout.tar.xz /usr/localに展開すれば、pdp11-aout-gccとして呼び出せるようになります。特定OS用のcrtなどは含まれていないため、実行ファイルを出力する…
Lions' Commentary on UNIX 読書会 Part 002に参加しました。初回は参加できなかったため途中参加となりましたが、いきなりアドレスが8進数で書かれているのに面食らいました。アドレスは16進数に変換してどうにか理解できましたが、アセンブリ言語がよく分…