Hi there 👋

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

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

GraalVM Native Image のソースコードを雑に読んだ (3)

前回の続き。今回は残りのステージ ([5/8] Inlining methods, [6/8] Compiling methods, [7/8] Laying out methods, [8/8] Creating image) を取り上げる。 環境 OS: Linux (WSL 2 + Ubuntu 24.04.1) GraalVM: 24.2.0-dev (320d02ebb867) JDK: 21.0.2 (jvmci-23.1-b33) 5. Inlining methods In this stage, trivial method inlining is performed. The progress indicator visualizes the number of inlining iterations. 該当する処理は以下の箇所。前回の [4/8] Parsing methods 同様 finish メソッドの中。 ...

2024-12-25