7 月 25
MSDN ライブラリを参考にマニュアルの作成を開始しました!!無謀にも英語版から作ってます(汗
とりあえず、こんな感じ です。
また、MSDN ライブラリを眺めていてふと思ったのですが、「DWORD*」を引数にした API はほとんどないんですよね。ひょっとしてルール違反?と思い調べてみると「PDWORD」を使ってることが多いみたいです。というわけで、WinRing0 API も変更しようと思います。
今までちゃんとしたマニュアルを作ったことがなかったのですが、結構大変な作業ですねぇ。まぁ、この手のライブラリは寿命が長いと思うのでがんばります。
7 月 25
Mac OS X ユーザーにはおなじみだと思うシイラプロジェクトの翻訳システムがすごいです!!そっ、その手があったか!!って感じです。
シイラプロジェクトは、とっても素敵なブラウザを修正BSDライセンスでリリースしているという Mac OS X のフリーソフト事情は良くわからないけど恐らくレアレアなプロジェクトなわけですが、とにかくハイクオリティなんですよねぇ~。
私自身が Mac OS X プログラミングに励む可能性は低いと思いますが、時々チェックしている魅力的なプロジェクトのひとつです。ちなみに、我が家の Mac mini にはインストール済みです。まぁ、Windows XP 専用機に成り下がっているわけですが。。。スマン。
7 月 25
ついにマニュアルを用意しました!!似非英語ですけどね。(日本語版もそのうち作ります。)
今は、ヘッダファイルを多少修正しただけですが、そのうち MSDN みたいなマニュアルになる予定です。やっぱり、ドキュメントが整備されていないと使ってもらえませんからね。
あと、ヘッダファイルの依存関係がめちゃくちゃになっているので、次回はそこらを整理したいと思います。
◇Alpha5 API (@以下は序数)
WritePciConfigByte, WritePciConfigWord, WritePciConfigDword の仕様を変更。
- GetDllStatus @1
- GetDllVersion @2
- GetDriverVersion @3
- GetDriverType @4
- IsCpuid @11
- IsMsr @12
- RDMSR @21
- WRMSR @22
- CPUID @23
- HLT @24
- ReadIoPortByte @31
- ReadIoPortWord @32
- ReadIoPortDword @33
- WriteIoPortByte @34
- WriteIoPortWord @35
- WriteIoPortDword @36
- ReadMemBlock @41
- WriteMemBlock @42
- SetPciMaxBusNo @50
- ReadPciConfigByte @51
- ReadPciConfigWord @52
- ReadPciConfigDword @53
- WritePciConfigByte @54
- WritePciConfigWord @55
- WritePciConfigDword @56
- FindPciDeviceById @57
- FindPciDeviceByClass @58
ダウンロード:WinRing0 Alpha5
7 月 24
デバイスドライバのバージョンやタイプを取得できるようにしました。
◇サンプルアプリケーション
- GetDriverVersion, GetDriverType の動作確認機能を追加

全部の機能を試せるわけではありませんが、大体雰囲気はわかっていただけるかなと。
◇Alpha4 API (@以下は序数)
GetDriverVersion と GetDriverType を追加。
- GetDllStatus @1
- GetDllVersion @2
- GetDriverVersion @3
- GetDriverType @4
- IsCpuid @11
- IsMsr @12
- RDMSR @21
- WRMSR @22
- CPUID @23
- HLT @24
- ReadIoPortByte @31
- ReadIoPortWord @32
- ReadIoPortDword @33
- WriteIoPortByte @34
- WriteIoPortWord @35
- WriteIoPortDword @36
- ReadMemBlock @41
- WriteMemBlock @42
- SetPciMaxBusNo @50
- ReadPciConfigByte @51
- ReadPciConfigWord @52
- ReadPciConfigDword @53
- WritePciConfigByte @54
- WritePciConfigWord @55
- WritePciConfigDword @56
- FindPciDeviceById @57
- FindPciDeviceByClass @58
ダウンロード:WinRing0 Alpha4
7 月 24
OpenLibSys Core SDK の名称を WinRing0 に変更することにしました。大元のプロジェクトは OpenLibSys なので、デバイスドライバ名は OpenLibSys.sys のままですし、OpenLibSys と共通です。
フル機能版:OpenLibSys
コア機能版:WinRing0
google してみたところ、WinRing0 では 1 件も引っかからなかったのでいい名前かなと。名前だけで何をするソフトか一発でわかりますしね。
というわけで、フル機能版 OpenLibSys の開発はこれからですが、WinRing0 はドキュメント整備して、9x 用ドライバを適当に修正すればリリースできそうな感じです。ただ、単体でリリースしても全く注目を浴びることはないと思いますし、本当に必要な人が探しても見つからないことが予想されます。やはり、WinRing0 の知名度を高めるためには、CrystalCPUID 5.1 + OpenLibSys で盛り上げるしかないでしょうね。この辺は、ぬかってばかりではありますが、策はあるということで・・・。
◇サンプルアプリケーション
- OpenLibSys Sample から WinRing0 Sample に改名
- GetDllVersion の動作確認機能を追加

全部の機能を試せるわけではありませんが、大体雰囲気はわかっていただけるかなと。
◇Alpha3 API (@以下は序数)
GetDllVersion を仕様変更。
- GetDllStatus @1
- GetDllVersion @2
- IsCpuid @11
- IsMsr @12
- RDMSR @21
- WRMSR @22
- CPUID @23
- HLT @24
- ReadIoPortByte @31
- ReadIoPortWord @32
- ReadIoPortDword @33
- WriteIoPortByte @34
- WriteIoPortWord @35
- WriteIoPortDword @36
- ReadMemBlock @41
- WriteMemBlock @42
- SetPciMaxBusNo @50
- ReadPciConfigByte @51
- ReadPciConfigWord @52
- ReadPciConfigDword @53
- WritePciConfigByte @54
- WritePciConfigWord @55
- WritePciConfigDword @56
- FindPciDeviceById @57
- FindPciDeviceByClass @58
ダウンロード:WinRing0 Alpha3
7 月 23
うんともすんともいわなくなった。パソコンにつないでも認識されないし・・・。
すげぇ~かなしい。
7 月 18
1冊の本の下に集まった「自作OS」の開発者たち (@IT )
ある意味今年一番の快挙かもしれない。
昨年立ち上げた自作OSコミュニティ「はりぼて友の会」が @IT で紹介されました。
はりぼて友の会の仲間たちとわいわいがやがや取材を受けてきました。「OS自作入門」に出会ってからホントいいことばっかりだ。
新規会員も大募集中ですよぉ~興味が湧いた方はぜひ!!
はりぼて友の会は熱い!!仲間を求めています。
7 月 18
1.0.4a からの変更点
ダウンロード
メガデモの聖地?フィンランドから翻訳ファイルが届きました。
7 月 17
Win98/Me のマイクロソフトのサポートはとっくに終わってますし、今更サポートする必要は全然ないのですが、できることなら動くようにだけはしておきたいなぁ~と思いつつ、
PCI Debug Library for Win32
の vxd を改めて眺めていたのですが・・・もうね。無理!!これと同等の機能もったものを今更 0 から書き直すのは無理!!意味ないです。
※SysInfo.vxd は pcidbg95.vxd と実質同じです。
というわけで、修正版 BSD ライセンスにはできないので、レガシーサポートパックみたいな形で、pcidbg95.vxd に RDMSR/WRMSR/HLT などの機能を追加して、不要な割り込み関連の機能を削除した仮想デバイスドライバを提供しようかと思います。
これなら、そんなに大変ではないのでそのうち試してみたいと思います。必然的に DLL を Unicode ビルドすることはできなくなりますが、まぁ、良いでしょう。どうせ、ASCII の範囲しか使いませんからね。DLL 内では。
マニュアルも書かなければなりませんが、ボチボチがんばるんで首を長くしてお待ちください。今のところ待っている方は誰もいないと思いますけど・・・。
7 月 16
簡単なサンプルアプリを作り OpenLibSys Alpha2 をリリースしました。まだまだ、API をブラッシュアップする必要はありそうですが、結構良い感じになりそうです。
現在開発しているのはコア部分で、今年度内には OpenLibSys Core SDK としてリリースする予定です。その後、SysInfo.dll が備える CPU 情報の取得や PCI デバイス情報の取得機能などを備えた OpenLibSys をリリースする予定です。
この辺はまだ検討中ではありますが、IO ポートや MSR にアクセスしたいという要求に応えるためには、新しい CPU に対応する度に更新されるライブラリよりも OS に大きな変化がない限り数年間バージョンアップすることなく使えるライブラリが望ましいと考えています。(もちろん、バグフィックスはしますけどね・・・)
OpenLibSys Core SDK の目指す方向としては、
に近い感じですが、修正版 BSD ライセンスとすることで誰でも自由に使えるものにしたいと考えております。
フル機能の OpenLibSys は SDK という形ではなく、CrystalCPUID や CrystalMark 200X などの基盤ライブラリとして使用するつもりですが、ライセンスは修正版 BSD ライセンスとする予定です。 まぁ、自由に使ってやって下さいということで。