mona

20000回

exit(0) するだけのプロセスを20000回起動を繰り返しても落ちなくなった。

今日の Mona

Mosh を複数回起動するとメモリが足りなくなる解放漏れがあるっぽいので調べる。

OpenSSL 移植完了 - 週刊Mona

移植完了というと語弊があるか。verify なしの HTTPS GET は完全に動いている。 w3m も SSL を有効にした。これで各種サービスのログイン画面もアクセスできる。

OpenSSL 動いた

何かOpenSSLのビルドが通って libssl.a と libcrypto.a ができあがった。 https://www.hatena.ne.jp が GET できたよ。というか移植終了?

mona 0.3.2 リリース

内部リリースです。mona-0.3.2 マイクロカーネルの各コンポーネント(サーバー)の名前を管理する name server の追加 mg (Emacs クローン)の移植 File API のバグ修正と追加

Mona 次の一手

Facebook API や普通のウェブサイトのログインなどで必要性を強く感じるようになったので SSL をどうにかしたい。OpenSSL を移植すれば済む話なのかな?全く分からないので調べるところから。

mplus フォントのサポートなど 週刊 Mona

mg エディタがまともに動くようになってきた。検索、置換、dired などなど。 移植に際して困るのは Mona には存在しない tty の部分。幸いにも mg では*ある程度* tty が抽象化されているので何とかうまく動かすことが出来た。 一番ハマったのはスクロール…

mplus bitmap フォントを UCS-2 (ISO 10646-1) に変換する

配布されている mplus の bitmap フォントは iso8859-1 。UCS-2 (ISO 10646-1) の方が色々とうれしいので変換する。 monafont に同梱されている tools/jis2unicode を使う。 ./jis2unicode -b < mplus_j12r.bdf > mplus_j12r_u.bdf CHARSET_REGISTRY ヘッダ…

週刊 Mona

mg エディタ移植中。ファイルを開き、簡単な編集して閉じるくらいは動いている。

週刊 Mona エディタに悩む

Mona 上の Mosh で動くコードを Mona 上のエディタで本格的に書くようになってきた。本格的といっても数十行の世界。 エディタは gnote という id:hetappi さんが 2005 年頃に作ってくださったものを少しずつ機能追加してきたものを使っている。愛着もあるし…

週刊 Mona

name server が実装されたので名前を引けるようになった。

name server を実装

Mona にマイクロカーネル的な name server を実装した。従来はプロセス名をキーにして相手にメッセージを送っていたが、これからは "/servers/file" のようにファイルパス構造に似た名前でアクセスするようになる。 Mosh から各種サービスにアクセスする場合…

Mona のメッセージ分類

Mosh に Mona の Message type (例えば MSG_GUISERVER_CREATEWINDOW) を export したくなったので落ち着いて整理してみた。 よくよく考えると Message は 2種類の type に分類される事が分かった。 1つ目はサーバー固有メッセージ。例えばファイルサーバーは…

週刊 Mona 0.3.1

こまめにリリースをする事に決めて 0.3.1 を出した。w3m などもりだくさん。Windows 用の QEMU を同梱したものが用意できていないのでおおっぴらな告知はまだ。 0.3.2 は Mosh から Mona の Window システムに触る部分の足場を作る予定。 とりあえず Message…

週刊 Mona - さようなら monapi_cmemoryinfo

Mona の File API など様々な箇所で使われてい共有メモリ APIる monapi_cmemoryinfo を全面的に廃止にした。 理由は 共有メモリの unmap とオブジェクト自身の解放の両方をプログラマが面倒を見なければならずバグの温床になっていた。 File Server と一部密…

今日の Mona

エディタに Emacs キーバインド ctrl-k を追加した。実装して初めて気がついたがカーソルが行頭かどうかで挙動が変わるのだな。 facebook の notification RSS は parse できた。しかしほとんど情報がなくてログインしないと見られないものばかり、SSL も必…

dogfooding

dogfooding 週刊 Mona

Mosh で HTTP GET のスクリプトを書いていて気づいたのだが Mosh のキャッシュファイルが壊れていた。原因は FAT32 の Long file name 周りのバグ。このバグの修正に苦戦して時間がかかった。 これまで dogfooding ということもあり Mona 内の USER ディレク…

dogfooding

accept がブロックしていたのをなおした ファイルを削除時にキャッシュがうまく消えないバグ修正

クリップボード

dogfooding で Host (Ubuntu) から Guest (Mona) に Facebook のプライベートフィードURL を送りたかったのでクリップボードを実装中。

近い目標は Mona 上だけでコードを書くこと

ドッグフードは続くよ。 エディタを開いてコードの断片を書く。 terminal で動かしてみる コードを追加・修正する 動くものができあがる というサイクルを Mona 内で完結させるために不足しているものを徐々に追加中。 旧 Scheme シェルはすぐ廃止かと思って…

コード書いた

typoしとる。

今日の Mona

コマンドヒストリが /USER 以下に保存されるようになった。

Mosh on Mona

Mosh のコンパイルキャッシュファイルが /USER/TEMP に出力されるようになった。 あわせて /USER に書かれたものは QEMU を落としても保存されて永続化されるようになった。よしよし。

英単語スクリプト Mosh on Mona

動いた。/User にマウントされた FAT32 の HDD にファイル書き込みも上手くいってる。

mount した

FAT32 を実際にマウントした。うまく動いている。さて Mosh で例のスクリプトを動かすかな。

FAT32 LFN(long file name) 対応完了

VFAT の LFN の仕様は後方互換性を残していて賢い。short name の checksum が正しくないとだめとか、クラスタ境界超えられないと*1か色々罠があった。 *1:仕様をきちんと調べたわけでない

FAT32 マウントできた

あとは細かいリファクタリングと、LFN 対応。

FAT32

ルートディレクトリにおいて ファイル読み込み ファイル作成 ファイル書き込み が動くようになってきた。きっちり TDD で書いている。 まじめに書き出すとブロックキャッシュが欲しくなってくる。ぐっとこらえて今は実装しない。完成後計測して許容できない…

ファイルシステム選定

Mosh on Mona がほぼ正しく動いているので実用的なスクリプトを動かしはじめた。例の英単語記憶スクリプトなら毎日使うだろうという事で、動かしたらファイル書き込みが問題に。テンポラリとしてならば RamFS があるのだが、そろそろちゃんと永続記憶をもと…