タグ

QEMUに関するYasuyukiMiuraのブックマーク (10)

  • QEMUのなかみ(QEMU internals) part2 - るくすの日記 ~ Out_Of_Range ~

    前回(part1)rkx1209.hatenablog.com の続きです。 part2では仮想IRQ,チップセット,仮想IO,TCGを見ていきます。 多分part2で終わりです。(時間があればまたいつかpart3とか書いてみたいですね...) ではまず仮想IRQから見ていきます。 6.仮想IRQ QEMUにおいてIRQはIRQState構造体で表されます。 (hw/core/irq.c) struct IRQState { Object parent_obj; qemu_irq_handler handler; void *opaque; int n; }; nがIRQ番号でhandlerがIRQ#nに対応するハンドラです。またIRQStateは(include/hw/irq.h)でqemu_irqにtypedefされているため以降はqemu_irqと呼びます。 では前回見ていたマシン初

    QEMUのなかみ(QEMU internals) part2 - るくすの日記 ~ Out_Of_Range ~
  • QEMUのなかみ(QEMU internals) part1 - るくすの日記 ~ Out_Of_Range ~

    ここ一ヶ月ほどQEMUのコードとお戯れしていたのですが、 qemuのソースコードもうすぐ読みきりそうなのでどこかにまとめたいんだけど、qemu internalみたいな記事ってどれぐらい需要あるの— 前代未聞 (@RKX1209) 2015, 11月 9 と言ってみた所なんとなく需要がありそうだったので書きました。 記事ではQEMUの内部実装を追い、具体的な仕組みを見ていきます。もし研究や仕事などでqemuを読む必要がある方や、これから趣味で読んでみようという方はぜひ参考にしてください。 (QEMU internalsというよりはQEMUコードリーディングの方が適切かもしれませんね....) さてここで扱うQEMUはqemu2.4.0でゲストはx86,ホストはx64であると仮定します。 両方共x86系となるとDBTの意味はあまり無く、KVM使ってどうぞという話になるのですが、あくまでコー

    QEMUのなかみ(QEMU internals) part1 - るくすの日記 ~ Out_Of_Range ~
  • KMC Staff Blog:QEMUにデバッガをつなぐ

    2010年03月03日 QEMUにデバッガをつなぐ 今回はQEMUにデバッガをつなぐ話をします。 QEMUそのものをgdbで追いかける QEMU上の仮想マシンにgdbをつなぐ QEMUそのものとその上の仮想マシンを同時に2つのgdbで追いかける QEMUそのものをgdbで追いかける インストールされたqemu-system-armはシンボル情報が削除されています。(stripped) $ file /usr/bin/qemu-system-arm /usr/bin/qemu-system-arm: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped なので、QEMUをソースからビルドして、arm-s

  • KMC Staff Blog:QEMUメモ(3)

    2010年01月18日 QEMUメモ(3) 前の2回にひきつづきqemuのソースを追いかけたときのメモを置いておきます。 メモなのでわかりやすくはありませんが、もしかしたらどなたかの役に立つこともあるかもしれないので。 QEMU TCG 関数tb_gen_codeの内側 tb_gen_code (exec.c) cpu_gen_code (translate-all.c) gen_intermediate_code (target-arm/translate.c) tcg_gen_code (tcg/tcg.c) ターゲットの命令コードから中間コードを生成するのがgen_intermediate_code() 中間コードからホストの命令コードを生成するのがtcg_gen_code() この2段階の生成は必ず続けて行うようになっている。 中間コードはいつも同じ固定の配列(gen_opc_bu

  • KMC Staff Blog:QEMUメモ(2)

    2010年01月14日 QEMUメモ(2) 前回に続きqemuのソースを追いかけたときのメモ。 qemu メインループ cpu_exec.c 大雑把に書くとこんな感じ。 (instruction counter に関してはよくわからなかったのでここでは省略。) cpu_exec() { for(;;) { if (setjmp(env->jmp_env) == 0) { exceptionの処理など(2) ループを抜ける要求があればbreak; for (;;) { exceptionの処理など(1) ARMの場合はFIQの処理。 //PCに対応する変換済みのコードを探す。なければ変換する。 tb = tb_find_fast(); //変換済みのコードを実行する next_tb = tcg_qemu_tb_exec(tb->tc_ptr); } } else { longjmpするとここ

  • KMC Staff Blog:QEMUメモ(1)

    2010年01月06日 QEMUメモ(1) 少し前にqemuのソースを追いかけたときのメモを放出します。 TCG qemuは高速に実行するためにインタプリタでなくJITのようにターゲットのCPU命令列をホストCPU列に変換して実行する。 version 0.10の頃からこの部分が従来のトランスレータからTCG(Tiny Code Generator)と呼ばれるものに置き換えられた。 TCGの概要 ターゲットの命令コードからホストの命令コードに変換する時に一度中間コードを生成する。 つまり、変換は ターゲットの命令コード -> 中間コード 中間コード -> ホストの命令コード の2段階になる。 (原理的にはその間に中間コード->中間コードの最適化のパスを追加することが可能。) このように中間コードを介すことで、サポートするターゲットCPUを追加する時にはそのターゲットの命令コードから中間コ

  • Fabrice Bellard's Home Page

    TSAC: Very Low Bitrate Audio Compression. ts_zip: a practical text compression utility using a large language model. TextSynth Server is a web server proposing a REST API to large language models. They can be used for example for text completion, question answering, classification, chat, translation, image generation. NNCP (lossless data compressor) is now leading the Large Text Compression Benchm

  • Plan9 on QEMU - Plan9日記

    新年なので初心に戻って(?),インストールネタから. 以前,Xenを試してみたけど,やっぱり簡単なのがよいということで,QEMU上でPlan9を動かすことにする.Xenと言えば,Xenoppixが知られているけど,Ron Minnich氏が昨年末から別アプローチによるプロジェクトを始めた.これはXenを起動するために必要最小限のルートディスクを作って,そこからゲストOSとしてPlan9を起動するというもの.ビデオ回りは動いていないので,Linuxからdrawterm経由でアクセスする.スナップショットが公開されているので,気になる人はどうぞ.参照:minimal linux distro with plan 9 on xen. 閑話休題.ググればQEMUのイメージが見つかるかもしれないけど,難しくはないので,オフィシャルサイトからISOイメージを持ってきてインストールすることにする. 用意

    Plan9 on QEMU - Plan9日記
  • Install Minix on Qemu

    After working with Qemu and Minix 2.0.4 for this whole morning, I finally figure out how to install and recompile the minix 2.0.4 on qemu, although I used to play it on bochs. Walking through the following setup you will have your own minix installation on a image file. 1. Preparing the minix image file, which will be used as our target hard disk > qemu-img create -f qcow2 neo_minix.img 80M format

  • QEMU CPUエミュレータユーザードキュメント

    Table of Contents 1. はじめに 1.1 特徴 2. Installation 2.1 Linux 2.2 Windows 2.3 Mac OS X 3. QEMU PCシステムエミュレータの起動 3.1 はじめに 3.2 クイックスタート 3.3 起動 3.4 キー操作 3.5 QEMUモニター 3.5.1 コマンド 3.5.2 整数の表現方法 3.6 ディスクイメージ 3.6.1 ディスクイメージ作成のクイックスタート 3.6.2 スナップショットモード 3.6.3 qemu-imgの起動 3.6.4 Virtual FATディスクイメージ 3.7 ネットワークのエミュレーション 3.7.1 VLAN 3.7.2 TAPネットワークインターフェースの使い方 3.7.3 ユーザーモードでのネットワークの使い方 3.7.4 QEMUの間でのVLANの接続 3.8 Linu

  • 1