借り初めのひみつきち

仮ブログです。

UEFI

ACPI BGRT

昔同じタイトルの記事を書いたところ結構googleしてる人がいるみたいなので、ちゃんとした記事のせときますね:;(∩´﹏`∩);:win8くらいの時からPCが起動する時にメーカーロゴが表示された状態のままwindowsが起動してることにお気づきでしょうか?この仕組みは…

BIOS で消耗するな、 UEFI で消耗せよ。

この記事は 自作OS Advent Calendar 2018 - Adventar の記事です。未来ある若者よ、 BIOS で消耗するな UEFI で消耗せよ。Intel は 2020 年までに CSM (BIOS 互換機能) を撤廃して UEFI に完全移行する方針を発表しました。つまり、もう BIOS に未来はありま…

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

ウィンドウの基本的な部分はできましたが、本格的なウィンドウシステムとしては全然機能が足りてなかったので色々実装しました。半透明のウィンドウもほぼチラつきなしで動くようになりました!そして、自作OS界隈では元ネタより有名な noiz2bg なんかも移植…

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

今週は SMP 環境の安定化と格闘しておりましたがなんとか進捗出せました。。github.com ウィンドーシステム スレッドが動くようになったのでウィンドウシステムの改良です。 今まではルートウィンドウとマウスカーソルだけの特別な処理だったので、他のウィ…

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

昔の CPU は世代が進むごとに動作周波数が向上していき、それに伴って動作も高速になっていました。しかし、やがて動作周波数をあげるのが困難になり、別の方法で性能向上する必要が出てきました。 そこで偉い人は考えました。 超高速な CPU を1個作るより…

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

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

最小ステップで作る 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 の中身とスレ…

最小ステップで作る 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 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 を使うのが普通です。

バイバイ、 gnu-efi

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

最後の遺産。

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

GPD Pocket

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

BungBungame Photon 2

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

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

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

VMware fusion

VMwareのUEFIを見てみましょう。

MacBook Pro (Late 2016)

ふらっとご飯買いにうろうろしてたら売ってたので買ってみました。

GPD WIN

少し前にkonozamaでポチったのがいつの間にか届いてました。

はりぼてOSをUEFIで起動する/5日目?

Hyper-VのUEFIモードはどうでしょうか?

PORTABOOK

さいきん2万円代で売ってると話題のポメラじゃないヤツを確保しました。

はりぼてOSをUEFIで起動する/4日目

どうしても起動時にフリーズしてしまう機種があったのですが、答えはシンプルでした。

はりぼてOSをUEFIで起動する/3日目

昨日の奴、というかそれ以前から致命的なバグがあったので修正しました。

はりぼてOSをUEFIで起動する/2日目

はりぼてOSローダーをアップデートしました。

はりぼてOSをUEFIで起動する/1日目

以前 UEFI 環境でレガシー OS を起動するのは相当厳しそうだという結論が出ましたが、はりぼて OS の事情を考えてみます。