/dev/kvmを直接叩く - Hello KVM!

LinuxカーネルにはKernel-based Virtual Machine(KVM)という機能があり、その名の通り仮想マシンを実現するための機能を提供しています。


KVMは/dev/kvmというデバイスファイルでカーネルから提供されています。

この記事では/dev/kvmを直接叩いてVMを作成し、"Hello KVM!"と表示させてみます。

続きを読む

技術書典4でx86_64自作OS本出します!


技術書典4へ、サークル名"へにゃぺんて"、配置場所"け52"で↑の本を出します!


フルスクラッチで作る!」シリーズの第3弾で、前著までの内容で作ったブートローダーを使い、その上で動くカーネルとアプリを作る本です。

続きを読む

(自分メモ)Meltdown・SpectreのGoogle Project Zeroの報告内容について

Meltdown・Spectreについて報告されている

の内容について、自分なりに理解した自分メモを記録として残しておきます。

続きを読む

Debian Jessie以前で最近のLinuxカーネルをmake-kpkgする際に"missing REPORTING-BUGS"に陥った際の対処

本記事はDebian/Ubuntu Advent Calendar 2017の12/17(日)向けに書いてみた小ネタです。


Debian Jessieを今だに抜け出せず、使い続けているのもアレなのですが、Jessieでmake-kpkgで最近のLinuxカーネルをビルドしようとすると"missing REPORTING-BUGS"というエラーに陥るので、その対処方法について記事にしてみます。

続きを読む

QEMU/実機共に起動できるDebianをUSBフラッシュメモリに構築する

本記事は少し早いですがDebian/Ubuntu Advent Calendar 2017の12/12(火)向けに書いた記事です。Debian関係で最近やったことを記事にしてみます。


Linuxカーネルのブロックレイヤー向けドライバを動かしてみる時などに、Linuxカーネルごと別の環境が欲しくなります。複数台PCを持っていなかったりすると、仮想マシンとして立ち上げることを考えますが、実行速度を求めたい時など、仮想環境を直接PC上で実行したい時もあります。


本記事ではQEMU上でも実機上でも起動できるDebian環境をUSBフラッシュメモリへ構築する方法を紹介します。


といっても、結論から書くと単にQEMUを使用してUSBフラッシュメモリへインストールするだけです。ただし、UEFI向けにインストールする場合、少し変更が必要な箇所があります。

続きを読む

QEMU上で'_'(アンダーバー)を入力できない問題の解決法(debian packageへのコード修正・再ビルド)

少し早いですが、本記事はDebian/Ubuntu Advent Calendar 2017の12/7(木)の記事として書いてみたものです。


qemu-system-x86_64(qemu-system-x86パッケージ、バージョン:1:2.1+dfsg-12+deb8u6)を使用していて、ゲスト上で'_'(アンダーバー)を入力できないという問題がありました。


ソースコードの修正が必要で、以下の記事等で修正方法が紹介されています。


Debianパッケージのソースコードを取得して、ソースコード修正し、debパッケージ再生成を行ってみましたので、
この記事ではその手順をまとめておきます。

手順1. パッケージのビルドに必要なパッケージをインストール

$ sudo apt-get build-dep qemu-system-x86

手順2. qemu-system-x86パッケージのソースコードを取得

$ apt-get source qemu-system-x86

ソースコードダウンロードにより"qemu-2.1+dfsg"というディレクトリが作られているとします。

手順3. ソースコード修正

qemu-2.1+dfsg/ui/x_keymap.c を以下のように修正

--- a/ui/x_keymap.c     2013-08-09 07:40:09.530318381 +0900
+++ b/ui/x_keymap.c     2013-08-09 07:38:27.310309931 +0900
@@ -94,7 +94,7 @@
  */

 static const uint8_t evdev_keycode_to_pc_keycode[61] = {
-    0,         /*  97 EVDEV - RO   ("Internet" Keyboards) */
+    0x73,      /*  97 EVDEV - RO   ("Internet" Keyboards) */
     0,         /*  98 EVDEV - KATA (Katakana) */
     0,         /*  99 EVDEV - HIRA (Hiragana) */
     0x79,      /* 100 EVDEV - HENK (Henkan) */

手順4. debパッケージ再生成

$ cd qemu-2.1+dfsg
$ dpkg-buildpackage -rfakeroot -uc -b

自作OS(OS5)のUEFI+x86_64対応でやったこと/やっていること(そして-fPIEの謎挙動)

少し早いですが、この記事は「自作OS Advent Calendar 2017」の12/3(日)の記事です。


自作OS(OS5GitHub)の「UEFI + x86_64」対応で

  • やったこと(masterブランチへマージ済の内容)
  • やっていること(作業ブランチで作業中の内容)、そして-fPIEの謎挙動

を紹介します。

続きを読む