Qemu 系统仿真

  QEMU 是一个开源PC 系统仿真器。除了仿真处理器,QEMU 还可以仿真必要的子系统设备,如连网硬件和视频硬件。并且还允许实现高级概念上的仿真(如对称多处理系统(多达 255 个 CPU)和其他处理器架构(如 ARM 和 PowerPC)。

安装QEMU

1) yum 安装

  sudo yum install qemu 
2) 源码下载安装

  由于yum下载安装的版本比较底,可以到http://wiki.qemu.org下载最新版本qemu。

  wget http://wiki.qemu.org/download/qemu-1.0.1.tar.gz
  tar xfvz qemu-1.0.1.tar.gz 
  cd qemu-1.0.1
  默认configure回编译支持的各个处理器架构,比较慢,可以根据需要编译相应的处理器架构。
 ./configrue --target-list="i386-softmmu i386-linux-user"
 make
 make install

安装kqemu

kqemu是为了加速qemu的模块,可以认为是qemu插件,编译出来是.ko文件,可以通过insmod 安装模块,rmmod卸载模块。

tar xfvz kqemu-1.4.0pre1.tar.gz
cd kqemu-1.4.0pre1
./configrue
make
make install
编译时内核版本高时编译问题修改:

kqemu-linux.c

+#include <linux/sched.h>

+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39)
 #include <linux/smp_lock.h>
+#endif

+/* init_MUTEX macro was removed in 2.6.37 */
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 36) && !defined(init_MUTEX)
+#define init_MUTEX(sem)        sema_init(sem, 1)
+#endif

测试qemu

wget http://wiki.qemu.org/download/linux-0.2.img.bz2
bzip2 -d linux-0.2.img.bz2
qemu-system-i386 linux-0.2.img

参考资料

http://www.ibm.com/developerworks/cn/linux/l-qemu/

http://wiki.qemu.org


### QEMU 硬件仿真概述 QEMU 是一款开源的模拟器和虚拟机监视器,能够提供全面的系统仿真功能[^1]。通过创建完整的计算机环境,不仅限于 CPU 架构,还包括内存子系统以及各类输入输出(I/O)设备。 #### 启动配置实例 对于希望利用 QEMU 进行硬件仿真的用户而言,启动配置至关重要。以 QEMU 8.2.2 版本为例,在命令行界面下可以指定不同的参数来加载特定的目标架构镜像文件并设置相应的外设连接方式: ```bash qemu-system-arm -M versatilepb -m 128M -kernel zImage -initrd initrd.img -append "root=/dev/ram" ``` 上述指令演示了一个基于 ARM 架构的标准 Linux 内核引导流程,其中 `-M` 参数指定了机器类型为 Versatile PB;而 `-m`, `-kernel`, `-initrd` 则分别定义了分配给来宾 OS 的 RAM 容量、待执行的操作系统映像及其初始 ramdisk 文件路径。 #### 设备仿真特性 为了提高效率和支持更广泛的应用场景,QEMU 提供了一系列经过优化设计的 VirtIO 类型设备模型,这些模型特别适合用于加速 I/O 密集型任务处理过程中的数据传输速率。此外,借助 vhost-user 技术或者多进程模式下的外部进程协助机制,某些复杂度较高的外围装置也可以被独立出来单独运行,从而减轻主程序负担[^2]。 #### 应用案例分享 具体到嵌入式领域内的 STM32 微控制器系列,QEMU 不仅允许开发者们脱离物理原型开展早期阶段的产品研发活动——比如编写驱动层代码或是构建应用程序逻辑框架——而且还能充当一个理想的测试平台用来评估新版本固件的表现情况。与此同时,在教育行业里同样发挥着重要作用,成为教授学生们掌握现代微处理器内部结构的理想工具之一[^3]。 #### 配置建议与最佳实践 当涉及到具体的安装部署环节时,推荐按照如下几点来进行调整: - **启用调试信息**:编译过程中加入 `--enable-debug` 标记; - **增强日志级别**:运行期间附加 `-d unimp,guest` 参数获取更加详尽的日志条目; - **定期检验质量**:频繁运用自动化脚本来验证各个模块的功能完整性,如 `make check` 或者针对不同体系结构定制化的 qtest 测试套件。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值