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

Sanos

VC++が出力したコードをMINIXで動かそうとして、64bit整数型の剰余(a % b)を計算する部分で__aulldvrmというシンボルを使用していたためリンクエラーになりました。32bitのx86では64bitを計算する命令がないため、コンパイラが出力するコードでは計算用の関数を呼び出すようになっています。こういったコンパイラが前提とするライブラリをランタイムと呼びます。

ライセンスの関係上、msvcrtのソースを見るわけにもいかないので途方に暮れていましたが、id:tsupoさんのこちらのブックマークから、VC++で開発されたsanosというオープンソースのOSを見付けました。VC++用のランタイムが含まれています。

唯一のVC++で開発されたオープンソースカーネル(自称)だそうです。ユーザーランドはWindows用のJVMを動かす範囲のWin32APIが実装されているようです。