
qemu源码分析
Tyrion-Lannister
这个作者很懒,什么都没留下…
展开
-
QEMU内在:整体架构和线程模型
原文地址:http://blog.vmsplice.net/2011/03/qemu-internals-overall-architecture-and.html一篇很不错的文章,所以翻译过来和大家分享,因为本人英语并不太好,所以有错误的地方敬请谅解指正。=======================分割线==========================转载 2013-10-20 18:51:33 · 4405 阅读 · 0 评论 -
pid and lock files
pid文件用于记录程序启动时系统分配给他们的pidhao原创 2014-09-25 09:18:04 · 961 阅读 · 0 评论 -
QEMU ARM异常处理流程
precise exception必须考虑暂存器和内存,其中我理解的暂存器为CPUState,在二进制翻译中,我们关注的是guest的precise exception。因此必须确保当guest代码发生异常时,guest的暂存器(CPUState)和内存必须满足precise exception的要求,这样guest的exception handler才能正确处理该异常。QEMU在每一个可原创 2014-09-25 17:24:17 · 2784 阅读 · 0 评论 -
【虚拟化实战】VM设计之一vCPU
作者:范军 (Frank Fan) 新浪微博:@frankfan7虚拟机需要多少个vCPU呢?是不是个数越多性能越好呢?这方面存在着很多误区。给VM配置CPU资源的时候,要精打细算才能最大可能的利用已有资源,来满足商业应用的需要。有的情况下为某个VM设置过多vCPU数目,反而会造成该应能的性能下降。也造成整个系统的资源浪费。本文从概念到实战来阐述如何做好虚拟机上CPU资源规划。转载 2014-09-25 21:46:39 · 4483 阅读 · 0 评论 -
使用monitor command监控QEMU运行状态
使用 monitor command 监控 QEMU 运行状态在虚拟化的研究领域,QEMU 有着举足轻重的地位。2007 年 2 月发布的 Linux 2.6.20 内核中,集成了 KVM 作为其虚拟化的具体实现。而 KVM 是基于 QEMU 并且利用 CPU 的辅助虚拟化特性而略加修改而成的。自此以后,QEMU 项目引起 Linux 开发人员的广泛关注。回页首进入 QEM转载 2014-09-26 11:49:46 · 2198 阅读 · 0 评论 -
用qemu-nbd实现mount虚拟硬盘到Host上的功能
qemu-nbd在有的系统上叫kvm-nbd,qemu-nbd-xen等。基本上都一样啦。 用qemu-nbd实现mount虚拟硬盘到Host上的功能,需要这么做: rmmod nbd modprobenbd max_part=8 因为默认,nbd的增加分区的功能是关闭的,需要指定max_part这个参数。这个参数指定了一个n转载 2014-09-26 11:17:55 · 1551 阅读 · 0 评论 -
qemu中daemonize为什么要两次fork
函数void os_daemonize(void) 将当前进程变成后台进程即放弃终端。一开始不理解为什么要两次fork,后来查网上资料得知,两次fork是为了防止第一个子进程打开终端。首次fork使父进程退出,子进程继承了父进程的进程组ID,但具有一个新的进程ID,这就保证了子进程不是一个进程组的首进程。调用s e t s i d以创建一个新对话期,并使子进程成为了首进程。再次使用fork,使转载 2014-09-24 22:23:21 · 1856 阅读 · 0 评论 -
ALSA Setup
Contents [hide]1 Useful links2 Installing ALSA2.1 Preparing the install2.1.1 ncurses2.2 Build ALSA2.2.1 ALSA library2.2.2 ALSA utilities2.2.3 Complete filesystem for test转载 2014-03-06 16:06:22 · 1062 阅读 · 0 评论 -
交叉编译中的build,host,target
【实例】当前我有一个x86计算机,它上面工具很全,至少有gcc。这时我有了一个arm处理器的上网本。我想为我的arm上网本写点程序,但是因为上网本性能很差我不想在arm上开发编译,于是我就想在自己电脑上开发然后copy过去给他用。这时我就需要一个在我的x86(build)上编译一个“可以在我x86(host)本机上运行的gcc,这个新gcc编出来的程序是可以在arm(t转载 2014-03-02 21:49:01 · 1128 阅读 · 0 评论 -
LTTng 简介&使用实战
一、LTTng简介 LTTng: (Linux Trace Toolkit Next Generation),它是用于跟踪 Linux 内核、应用程序以及库的系统软件包。LTTng 主要由内核模块和动态链接库(用于应用程序和动态链接库的跟踪)组成。它由一个会话守护进程控制,该守护进程接受来自命令行接口的命令。babeltrace 项目允许将追踪信息翻译成用户可读的日志,并提供一个转载 2014-03-01 15:18:19 · 6663 阅读 · 0 评论 -
谈谈Linux打补丁的原理以及如何判别打补丁的错误 --- 从补丁学内核
对于长期使用Linux的童鞋来说,不说有没有打过补丁,至少这个词大家并不陌生,下面我们通过一个实例来说说: 前几天接触了TQ3358这块天嵌的ARM板子,想给它装个实时Linux并做测试,在自带的光盘中我找到了“Kernel_3.2_TQ3358_for_Linux_v1.2” 这样一个内核版本(从Makefile中我们可以看到这是个 3.2.0 版本的内核),我下载了实时补丁转载 2014-03-01 15:59:39 · 6096 阅读 · 0 评论 -
QEMU ARM semihosting
QEMU is able to emulate ARM architectures with many details. One thing that the qemu-system-armprogram implements is the Angel interface, that enables semihosting. Semihosting involves two machines:转载 2014-03-01 12:20:47 · 1436 阅读 · 0 评论 -
学习笔记-Semihosting
如何理解Semihosting?(老帖重发,写得比较久了) Semihosting,顾名思义,就是"半主控",意思就是说,运行在target board上的程序利用主机上的facilities的一种程序调试方式,主要是debug目标板时,利用主机的输入输出设备,例如在AxD的console上打印相应的调试信息或者用主机的键盘输入相应字符作为target上的程序的输入。 C/C++转载 2014-03-01 12:07:25 · 1011 阅读 · 0 评论 -
/lib/ld-linux.so.3: No such file or directory
今天在Ubuntu9.04下搭建了一下Scratchbox交叉编译环境,并在新建的ARM模拟器上对Scratchbox自带的hello-world程序进行编译,运行时出现题目所示错误。 网上查了一下,ld-linux.so.3大概是linux下进行动态库连接的连接器,用于新一代elf格式的可执行文件。因此,推测自己搭建的目标平台下缺少该库,于是到一下网址:http://www.scr转载 2014-02-28 17:20:22 · 3304 阅读 · 1 评论 -
QEMU编译及使用方法
QEMU是一个支持跨平台虚拟化的虚拟机,有user mode和system mode两种配置方式。其中qemu在system mode配置下模拟出整个计算机,可以在qemu之上运行一个操作系统。QEMU的system mode与常见的VMware和Virtualbox等虚拟机比较相似,但是QEMU的优势是可以跨指令集。例如,VMware和Virtualbox之类的工具通常只能在x86计算机上虚拟出转载 2014-02-23 20:39:53 · 6229 阅读 · 0 评论 -
用Qemu模拟ARM(2)
1. 关于Bootloader:(引导程序)位于电脑或其他计算机应用上,是指引导操作系统启动的程序。引导程序启动方式和程序视应用机型种类而不同。例如在普通的个人电脑上,引导程序通常分为两部分:第一阶段引导程序位于主引导记录(MBR),用以引导位于某个分区上的第二阶段引导程序,如NTLDR、GNU GRUB等。嵌入式系统中常见的Bootloader主要有以下几种:Das转载 2014-02-23 18:07:41 · 4935 阅读 · 0 评论 -
用Qemu模拟ARM(3)
1. 下载并交叉编译u-boot。新版本的u-boot我加载后总有问题,2009.11版则可以顺利通过编译和测试。$ wget ftp://ftp.denx.de/pub/u-boot/u-boot-2009.11.tar.bz2$ tar xjvf u-boot-2009.11.tar.bz2 $ cd u-boot-2009.11$ make versatilepb_conf转载 2014-02-23 18:09:46 · 2046 阅读 · 0 评论 -
用Qemu模拟ARM(1)
前面已经安装并配置了编译链和qemu,现在可以用qemu来模拟arm平台了。1. Hello, Qemu!输入下面的代码:hello.c - hello.c#includeint main(){ printf("Hello, Qemu!\n"); return 0;}编译并运行:$ arm-none转载 2014-02-23 18:02:34 · 8083 阅读 · 0 评论 -
KVM 内存虚拟化及其实现
概述KVM(Kernel Virtual Machine) , 作为开源的内核虚拟机,越来越受到 IBM,Redhat,HP,Intel 等各大公司的大力支持,基于 KVM 的开源虚拟化生态系统也日益完善。而实现 KVM 虚拟化,使客户机高效地、安全地使用宿主机的内存资源,就必须实现内存的虚拟化。客户机物理地址空间为 了实现内存虚拟化,让客户机使用一个隔离的、从零开始且具有转载 2014-10-06 14:15:45 · 1833 阅读 · 0 评论