借り初めのひみつきち

仮ブログです。

最小ステップで作る UEFI OS v0.4

そろそろ GUI の実装に入りたい感じですね。github.com メモリの拡張 現在実装されているメモリ管理はコンパイル時に静的に割り当てたブロックを切り取って分配する手抜き実装でした。 今まではそこまで大量のメモリを必要としていなかったのでこれでよかっ…

最小のEXEファイル?

EXEファイルにはいろいろ形式がありますが、現在主流なのはPEという形式です。これはもともとUN*X方面で使われていたCOFFという実行ファイルの形式にWindowsのために必要な機能を拡張したもので、PE-COFFなどの名称で呼ばれることもあります。 本家UN*X系OS…

最小ステップで作る UEFI OS v0.3.1

前回はコンテキストスイッチを実装しましたが FPU(SSE) のコンテキストスイッチには未対応だったので実装します。 Lazy FPU Context Switch FPU や SSE はレジスタが多く汎用レジスタに比べてコンテキストスイッチのコストが高いわりにほとんどのプログラム…

最小ステップで作る UEFI OS v0.3

もう UEFI とあんまり関係なくなってきましたが OS の開発を続けていこうと思います。github.com スレッディングの実装 まずはスレッディングを実装します。コンテキストスイッチには setjmp/longjmp を使います。 これによって setjmp/longjmp の中身とスレ…

世界一有名な人。

世界で最も有名な人は誰だろう?候補をあげるなら一人目は Phil Katz だと思う。 彼は PKZIP を開発し、彼のイニシャルはたくさんの ZIP ファイルの先頭に刻まれている。 また、 ZIP ファイルはしばしば名前を隠して至る所に存在している。 何億台だかの PC …

最小ステップで作る UEFI OS v0.2.1

v0.2 で忘れていたことがあったので補足します。 EFI Runtime Services の構成 ExitBootServices を呼び出した後も EFI Runtime Services を使うためには GetMemoryMap で取得したメモリマップの VirtualStart の値を適切に設定し、一度だけ SetVirtualAddre…

最小ステップで作る UEFI OS v0.2

前回は IDT の初期化が終わって割り込みが処理できるようになりましたが、まだ外部割り込み (IRQ) の処理ができなかったので実装します。github.comほぼ全ての OS はタイマー割り込みをサポートし、タスクスイッチなどの重要な役割を持っています。 これらは…

フォントのお話

さいきん進行中のUEFIプロジェクトをはじめるにあたってちょうど良いフォントがなくてフリーで使えるフォントを探していたのですが、FONTX2フォントってだいぶ配布してるところが減ってきて、ライセンスも不明瞭だったり作者も行方不明で配布元も閉鎖したり…

最小ステップで作る UEFI OS v0.1

前回は最小ステップで UEFI からカーネルを起動するところまでできたので、今回はその続きを作ってみようと思います。github.comなお、前回は起動までの最短ステップを紹介しましたが、 UEFI Aware な OS を作る場合には RuntimeServices API を使うためにも…

最小ステップで作る UEFI OS v0.0

UEFI で OS ローダーを作るために必要な最小ステップを考えてみました。github.com 1. ACPI テーブルの取得 bootinfo.acpi = efi_find_config_table(&efi_acpi_20_table_guid); 対応するハードウェアが完全に既知でそれ以外対応しないなら不要な気もしますが…

再度進捗的な。

最近忙しいです・・・

進捗的なもの。

さいきんあまり時間がとれてないですが・・・

UEFI のクロス開発

llvm/clang って全部入りなんですよ。

EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL を置き換える

UEFI で文字を表示するときは EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL を使うのが普通です。

x86 の限界を考えてみた。

一般に 32bit CPU の扱えるメモリの限界は 4GB です。

バイバイ、 gnu-efi

gnu-efi は手軽でしたが、不満もありました。

hello world

ついに現カーネルでアプリケーションが実行できました( ー`дー´)キリッ

RAMFS

OSZ に RAMFS を実装できました。

スクロールの巻。

昨日の TOWNS のテキストスクロールの続きです。

TOWNS のジレンマ

今日は OSZ で FM TOWNS のテキスト表示を改良しました。

64KB の壁。

OSZ がメモリ 64KB で起動するようになりました🎉

最近のあれこれ。

最近何もしてないわけじゃないんですが、出せるものがあんまりないのです。

最後の遺産。

以前、 UEFI コンピュータはレガシーフリーであると言いました。

宗教のお話。

今は Visual Studio Code ユーザーです☆(ゝω・)vキャピ

絵の出る IPL に思いを馳せて。

MEG-OS の IPL は高機能だった。

違和感?

とある機種でデバイスマネージャを眺めてたところ違和感が・・・。

GPD Pocket

一般人もちょこちょこ入手可能になりましたね。GPD Win と比べると一見まともそうなキーボードと見せかけてアルファベット以外の配列がかなり変態なのでわりと標準に近い配列の GPD Win のほうが使いやすいまであります。 ポインティングデバイスも使いにく…

BungBungame Photon 2

おひさしぶりです。結構記事の間が空いてしまいました。

はりぼてOSをUEFIで起動する/総集編

この記事は 自作OS Advent Calendar 2016 - Adventar の4日目の記事です。

nasmのバグ?

一般にアセンブリ言語と機械語は一対一に対応するとよく言われますが、実際にはそうとは限りません。