Linux(Debian) 上にKVMで仮想化環境を作成したので、その方法を紹介します。 KVMはまえから興味があったものの、VMwareやVartualBoxと比べると少しマイナーな印象があり、なかなか使ってみる機会がありませんでした。 最近になって調べてみたところ、KVMの仮想化環境を作るのはそんなに難しくなさそうなことがわかったので、今回チャレンジしてみました。 KVM(Kernel-based Virtual Machine)のインストール方法 今回、KVMで仮想化環境を構築するためのホストOSには、Debian9(Stretch)のLXDEバージョンを使用しました。 普段私はLinuxMintを使っているのですが、ホストOSはKVMが動かすためだけに使用するため、LinuxMintより軽量かつ安定したDebianを選択しました。 まずは、ターミナルから下記のコマンドを実行し、KV
引用元: linux-kvm.org はじめに LinuxでVMを作るにあたり、KVM (Kernel-based Virtual Machine) を使うことにしました。 ※使い始めた理由については、#(参考) KVMを使い始めた理由に書きました KVMを使ってみると、初期設定時に以下のようなもやもやに当たりました。 導入すべきパッケージがよくわからない (必須のもの、任意のもの、いくつかの選択肢から選ぶものが混在している) KVMの動作要件であるVT-x/AMD-Vが何なのかわからずもやもやする KVM周りのコンポーネントが色々あるが、それぞれ何をしているのかわからずもやもやする 本記事は、KVMの導入や使い方紹介に先立って上記の理解を深め、多少なりとももやもやを晴らすことを目的としています。 他記事と比較して、わかりやすさと網羅性を重視して書きましたので、ぜひご覧いただけると嬉しいで
1. 細々とした予備知識 1.1 Qemuのデバイスエミュレーション 1.2 QemuのCPUエミュレーション 1.3 Qemuのスレッド 2. 追加のI/OスレッドとAioContext 2.1 追加のI/Oスレッド 2.2 AioContext 2.3 Big Qemu Lock 3. AioContextの各種イベント処理 3.1 AioHandler 3.2 event_notifier 3.3 タイマー、Bottom half 3.5 スレッドプール 執筆者 : 箕浦 真 こういう 仕事をしていると、ときどきQemuの仕組みや内部動作をお客様に説明する必要があることがあるが、そういう時に「Qemuの〜についてはここを見てね」と言えるような文書があるといいなぁと思って自分で作ってみることにした。 1. 細々とした予備知識 1.1 Qemuのデバイスエミュレーション Qemuはコンピ
QEMUにはgdbserver1が内蔵されており、ホストのgdbからtcp越しにゲストOSのカーネルをデバッグすることができます。この記事は上のGIF動画のようにNetBSD kernelのデバッグを行うHowtoです。 (VMWareでも同じことができるらしいです。WindowsならVirtualBox+VBoxGDBでもできるらしいです。が、私は日常的にNetBSD仮想マシンを使っている訳では無いので、気軽に環境構築・撤去ができるQEMUが好きです。libvertでもできるらしいのでそのうちやってみようと思ってます。) 注意事項 ホストOSはLinux (Ubuntu 18.04), macOS (Mojave 10.14.3) で検証済みです。Windowsや他のOSでの動作報告お待ちしております! ゲストOSは NetBSD - 8.0-amd64 で検証済みです。 i386の場合
モチベーション なぜRustを選んだか? 私はQEMUは「アーキテクチャエミュレーション界のLLVM」だと思っている QEMUが高速な理由:TCG Binary Translation ゲスト命令(RISC-V) → TCG → ホスト命令(x86)の処理をRustで作ろう RISC-Vの命令をフェッチしてデコードする RISC-Vの命令をTCGに変換する TCGをx86に変換する 実装結果 Binary Translation実行を高速化するための様々なテクニック BasicBlock分まで複数命令をまとめて変換 TCG Block Chainingの実装 評価結果 TB Lookup and Jumpの実装 評価結果 まだ完成していないところ 一部の最適化はまだ未実装となっている ゲストアーキテクチャがx86のみとなっている。TCGによる複数プラットフォーム対応として、まずは環境のそろ
先月、国内最大のセキュリティ研究会であるコンピュータセキュリティシンポジウム 2020(CSS 2020)が開催され、そこで、Rust言語を用いてファームウェア、OS、言語処理系を設計・実装した話を発表しました。本来、CSS 2020はリアルで開催されるはずでしたが、コロナ禍の影響でオンライン開催となり発表動画作成が求められました。せっかく作った動画をこのまま捨て置くのももったいないと思い、ここで供養したいと思います。 www.youtube.com 概要 内容は、Rust言語を用いて、AArch64のセキュアワールド内で動作するファームウェア、OS、プログラミング言語処理系を実装した話となります。と言っても、まだまだ基本的な部分しか実装しておらず、実現目標に対して2〜3割と言ったところですが、どうぞご笑覧ください。 ブート部分は多少アセンブリ言語を使っていますが、その他の部分はRustで
Humans make mistakes. Some of these mistakes may end up being part of your OS. Since bugs are more difficult to find than to fix, this page provides a list of common techniques that can be used to isolate bugs in your OS. Debug statements and log files The first solution is probably the easiest, and depends on what kind of information you want to get back from your debugger. The problem with using
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く