【お知らせ】プログラミング記事の投稿はQiitaに移行しました。

PDP-11

V6移植ハッカソンを中止します

お盆休みに予定していたV6移植ハッカソンですが、残念ながら参加者が少なかったため中止とさせていただきました。今後は池袋バイナリ勉強会の中で作業を進める予定です。力不足、大変申し訳ありません。

全部入りbinutils

スタート低レイヤー#2でid:shinichiro_hさんに全部入りのbinutilsが作れるということを教えて頂きました。さっそく試してみました。MSYS(MinGW)用のバイナリを置いておきます。 binutils-2.23.2-msys-cross-all.tar.xz (14.6MB) /usr/localに展開するだけで…

8086版V6のABI(仮)

先日、PDP-11から8086へのトランスレータを試作しました。 PDP-11のアセンブリを8086に変換 簡単なプログラムを変換して大まかなABIが見えてきたので、仮にまとめます。詳細についてはV6移植ハッカソンで作業しながら決めていこうと思います。

V6移植ハッカソンの作業フロー

V6移植ハッカソンの作業フローをまとめました。今まで作って来たインタプリタやトランスレータの位置付けがはっきりするのではないでしょうか。

PDP-11のアセンブリを8086に変換

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のインタプリタを統合

i8086インタプリタにPDP-11インタプリタを統合しました。1つのプログラムでMINIX 2とUNIX V6の両方のバイナリを動かせます。 https://bitbucket.org/7shi/i8086tools UNIX V6のccを動かしてカーネルがビルドできることを確認しました。 https://twitter.com/…

Lions本読書会合宿 結果報告

Lions本読書会2011秋合宿での作業についてまとめたスライドを公開します(他の方の発表)。UNIX V6のCコンパイラを改造しようとして、前段階のビルドにハマって何もできなかった話です。 Cコンパイラの改造(未) View more presentations from n 7shi pptx…

Lions本読書会合宿LT発表資料

Lions本読書会2011秋合宿で発表したLTの資料を公開します(他の方の発表)。id:n7shi:20111011で告知したサンクと継続の勉強会に絡めた内容です。 V6でJIT・部分適用・継続 View more presentations from n 7shi pptx版(同内容): v6-jit-th-cr.pptx ソース…

名古屋Geek Bar LT

名古屋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などは含まれていないため、実行ファイルを出力する…

gcc

Lions' Commentary on UNIX 読書会 Part 002に参加しました。初回は参加できなかったため途中参加となりましたが、いきなりアドレスが8進数で書かれているのに面食らいました。アドレスは16進数に変換してどうにか理解できましたが、アセンブリ言語がよく分…