Hi there 👋

低レイヤに興味があります

AMD-V におけるゲストモードへの移行と復帰の流れ

AMD-V (SVM) を使ってゲスト側で HLT 命令をループして実行するだけのシンプルなコードを動かすことができたので、ゲストモードへの移行とホストモードへの復帰の流れをメモしておく。前回の記事で書いた AMD-V の有効化はしてある前提。なお、今回参照したドキュメントは AMD64 Architecture Programmer’s Manual Volume 2: System Programming の主に以下の項目。 ...

2025-06-22

AMD-V/SVM を有効化する

AMD 向けのハイパーバイザを自作するにあたって、AMD の仮想化支援機能 AMD-V (あるいは SVM) を有効化する方法を調べたのでメモ。BIOS の設定で有効にするとかの話ではなく、そちらは有効になっている前提でハイパーバイザ実行時に有効化するお話。 ...

2025-06-11

Writing Hypervisor in Zig をやっている

最近、Writing Hypervisor in Zig というブログシリーズに沿ってハイパーバイザの自作に取り組んでいる。といってもまだ肝心のハイパーバイザ部分にはたどり着いてなくて、先日ようやくカーネルのパートが終わったところである。 ...

2025-06-03

GraalVM Natvie Image でグラフをダンプする

GraalVM の native-image によるバイナリ生成時にグラフをダンプする方法を調べたのでまとめておく。参考にしたサイトは以下。 Command-line Options - Graph Dumping Native Image 機能使用時にグラフをダンプするためのオプションについて (公式ドキュメント) Ideal Graph Visualizer ダンプしたグラフを表示したり解析したりするための GUI ツール Ideal Graph Visualizer (IGV) についての公式ドキュメント Understanding Basic Graal Graphs – Logico Inside Shopify の中の人の記事の日本語訳 グラフの見方について詳しく説明されている 使用するサンプルコードはこちら。グラフの内容には触れないのでなんでもよいのだけれど、oracle/graal#9320 の issue について調べている過程でグラフを見てみたくなってダンプ方法を調べたので、こちらの issue の再現コードを使用する。 ...

2025-01-23

GraalVM をビルドする - Windows 編

以前の記事 GraalVM をビルドする では Linux 環境における GraalVM のビルド方法を紹介した。今回は Windows 環境におけるビルド方法についてまとめておく。大筋は Linux と変わらないのだけど、いろいろハマりポイントがあったのでその辺を中心に記載する。なお、ビルド対象は substratevm。 ...

2025-01-05