当前位置:首页 » 编程软件 » qemuwindows编译

qemuwindows编译

发布时间: 2022-08-31 19:44:35

Ⅰ 怎样在windows上用qemu安装linux

您好,qemu是一款虚拟化软件。使用者需要有一定命令行基础,或直接下载qemu manger
qemu的一大缺点就是不能换软盘、光盘
安装Linux需要创建硬盘映像(别太小)和安装光盘
在网络上搜索一下用法就可以了
只要你会使用它的命令行,就可以在qemu里面像正常系统一样的安装.
望采纳

Ⅱ 手机如何用qemu模拟windows

QEMU是一套开源的跨平台模拟器,该文主要介绍QEMU的常用命令以及使用QEMU模拟运行Windows98CE的方法和步骤。

关键词:QEMU;模拟器;Windows

中图分类号:TP311文献标识码:A文章编号:1009-3044(2010)26-7263-02

计算机模拟器(computersimulator)指的是“用计算机模拟计算机的模拟器”。计算机模拟器已被用于在实际发行前调试微程序或者商业应用程序。由于该计算机上的操作都是模拟的,所有信息都可被程序员获取,而模拟的速度、执行等都可以控制。

在最近为某银行开发软件的过程中,由于客户工作环境比较复杂,需要在不同环境和硬件条件下对项目进行测试和部署,由于在一台电脑上反复安装不同的测试环境是一件非常繁琐费时的工作,所以这里选用QEMU模拟不同的软硬件环境来完成不同环境下软件的部署和调试测试。下面以使用QEMU模拟Windows98CE环境为例,介绍QEMU的使用方法。

1QEMU简介

QEMU是一套由FabriceBellard所编写的开源跨平台模拟器。它具备高速度及跨平台的特性。QEMU有两种主要运作模式:1)Usermode模拟模式,亦即是使用者模式。QEMU能启动那些为不同中央处理器编译的Linux程序。而Wine及Dosemu是其主要目标。

2)Systemmode模拟模式,亦即是系统模式。QEMU能模拟整个电脑系统,包括中央处理器及其他周边设备。它使得为系统源代码进行测试及除错工作变得容易。其亦能用来在一部主机上虚拟数部不同虚拟电脑。

QEMU可以模拟IA-32(x86)个人电脑,AMD64个人电脑,MIPSR4000,升阳的SPARCsun3与PowerPC等硬件架构,同时在支持硬件虚拟化的x86构架上可以使用KVM加速配合内核ksm大页面备份内存,速度稳定远超过VMwareESX。QEMU增加了模拟速度,某些程序甚至可以实时运行,同时可以在其他平台上运行Linux的程序,可以储存及还原运行状态(如运行中的程序),也可以虚拟网络卡,使虚拟机可以与真实网络及宿主机进行通信。

2使用QEMU模拟运行Windows98CE

首先介绍一些QEMU的常用命令,这些命令在模拟运行Windows的时候经常用到:

-fdbfile,使用file作为软盘镜像.,这里的file可以是软盘镜像文件名也可以是真实的软盘设备,比如/dev/fd0。

-hdafile-hdbfile-hdcfile,这里的file是指硬盘的镜像文件名。

-bootadc,用于指定系统启动优先使用的设备,a指软盘,c指硬盘,d指光驱。

-mmegs,指定虚拟系统的内存大小,这里的单位是MB,QEMU默认的是128M。

-enable-audio,由于sb16的虚拟声卡驱动在Windows下使用有些问题,默认QEMU是关闭这个选项。

-localetime,QEMU默认使用的是UTC时区

-user-net,使用UserMode网络设备来建立网络连接,这是默认的

虚拟网络模式,相当于VMware的NAT。

在安装之前,首先准备好Windows98CE的安装镜像,然后使用

QEMU来制作磁盘镜像,也就是为即将安装的Windows98CE分配磁盘

空间,命令如下:

>cdc:/qemu/qemu-0.9.0-Windows(假设QEMU安装在c:/qemu/qe-

mu-0.9.0-Windows目录下)

>qemu-img.execreatewince.img10G

下面,开始在制作好的磁盘镜像中安装Windows98,步骤如下:

1)运行命令qemu-bootd-cdromWindows98.iso-hdawin98se.img

,用于启动到DOS,分区和格式化,开始安装。在DOS环境下,对磁盘进

行格式化等处理,,然后运行setup命令开始安装windwos98CE,安装过

程不再详细描述

Ⅲ qemu如何使用

qemu常用网络模式是user、tap。
user使用有局限性,
1) 由于其在QEMU内部实现所有网络协议栈,因此其性能较差。
2) 不支持部分网络功能(如ICMP),所以不能在客户机中使用ping命令测试外网连通性。
3) 不能从宿主机或外部网络直接访问客户机。需要作地址重定向。
tap方式网络没有这些限制。
通过tap又可以实现bridge和nat方式的网络连接。

Ⅳ windows下的qemu怎么仿真arm啊

使用Qemu模拟Cortex-A9运行U-boot和Linux 作者来源于网络

我的开发环境: Ubuntu-12.04 所有软件包为最新

1. 安装GNU工具链

sudo apt-get insatll gcc-arm-linux-gnueabi

sudo apt-get insatll g++-arm-linux-gnueabi
安装完成后会在 /usr/arm-linux-gnueabi/ 目录下生成库文件、头文件等。 我安装的GCC版本为:
arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3

Copyright (C) 2011 Free Software Foundation, Inc.

2. 安装Qemu模拟器
sudo apt-get install qemu qemu-system qemu-utils

这时应该已经可以运行qemu-system-arm命令了, 其版本为:
qemu-system-arm --version

QEMU emulator version 1.0.50 (Debian 1.0.50-2012.03-0ubuntu2), Copyright (c) 2003-2008 Fabrice Bellard

3. 编译和运行U-boot:
ftp://ftp.denx.de/pub/u-boot/ 下载最新版本的U-Boot源代码, 我用的目前最新版本 u-boot-2012.04.tar.bz2
解压后进入源代码目录,在Makefile里面增加两行:

ARCH ?= arm
CROSS_COMPILE ?= arm-linux-gnueabi-
其实就是告诉它使用ARM编译器来编译。

make ca9x4_ct_vxp_config
make
这里配置目标板为 Cortex-A9x4 vexpress. 之所以选这个配置可以从 boards.cfg文件里看到, vexpress是ARM公司使用Cortext-A9的一个开发板,相关的代码在 board/armltd/vexpress/ 目录,配置文件为include/configs/ca9x4_ct_vxp.h。 而且关键的是Qemu里面已经支持这个板卡。

编译完成后会生成u-boot文件
运行:
qemu-system-arm -M vexpress-a9 -m 256M -nographic -kernel u-boot
或者
qemu-system-arm -M vexpress-a9 -m 256M -serial stdio -kernel u-boot
发现,如果没有指定-nographics, 则必须要加-serial stdio才会有打印。

参数-m 256M为指定内存大小。-M 指定板卡的名称, 支持的板卡可以用-M ?查看, 如下:
#qemu-system-arm -M ?
Supported machines are:
beagle Beagle board (OMAP3530)
beaglexm Beagle board XM (OMAP3630)
............
versatilepb ARM Versatile/PB (ARM926EJ-S)
versatileab ARM Versatile/AB (ARM926EJ-S)
vexpress-a9 ARM Versatile Express for Cortex-A9
vexpress-a15 ARM Versatile Express for Cortex-A15
正常运行的结果:

qemu-system-arm -M vexpress-a9 -m 256M -nographic -kernel u-boot

U-Boot 2012.04 (Jul 08 2012 - 00:14:08)

DRAM: 256 MiB
WARNING: Caches not enabled
Flash: ## Unknown flash on Bank 1 - Size = 0x00000000 = 0 MB
## Unknown flash on Bank 2 - Size = 0x00000000 = 0 MB
*** failed ***
MMC: MMC: 0
*** Warning - bad CRC, using default environment

In: serial
Out: serial
Err: serial
Net: smc911x-0
Hit any key to stop autoboot: 0
VExpress#
VExpress# printenv
baudrate=38400
bootcmd=run bootflash;
bootdelay=2
bootflash=run flashargs; cp ${ramdisk_addr} ${ramdisk_addr_r} ${maxramdisk}; bootm ${kernel_addr} ${ramdisk_addr_r}
console=ttyAMA0,38400n8
。。。。。
注意:如果在检测Flash failed后停止运行,是因为在 arch/arm/lib/board.c里面 board_init_r()函数里检测Flash失败后调用了hang(), 暂时先把hang()去掉就可以运行下去了。

Ⅳ qemu windows怎么用

为什么要使用Qemu虚拟机呢? 这个虚拟机一般测试还行真正使用起来还是使用VM或Virtual box 还是一样,加载个XP安装版镜像就可以了,Ghost版需要先将分配好的磁盘格式化再次加载镜像进行安装。

Ⅵ 最新windows版qemu虚拟机使用技巧

RedflagWorkstation下已经带了QEMU
#QEMU-imgcreatewindows.img2G#这个就是创建虚拟机磁盘,2G大小
#QEMU-hdawindows.img-cdrom/dev/acd0-bootd-m512-enable-audio-localtime
-hda是指定硬盘
-cdrom指定使用光驱,这个参数后面必须要跟个文件名,可以是物理光驱/dev/hda,可以使用ISO文件,为文件的路径
-m是指定虚拟机使用的内存大小,如512M
-boot指定虚拟机启动用的设备,-boot后可以选择的参数是a,c,d.其中a是指从软盘启动,c就是用硬盘启动,d是光驱启动。
-enable-audio
-localtime使用实际主板bios上的时间。
应该可以顺利的进入虚拟机了,并开始安装了。
RedflagWorkstation下已经带了QEMU
#QEMU-imgcreatewindows.img2G#这个就是创建虚拟机磁盘,2G大小
#QEMU-hdawindows.img-cdrom/dev/acd0-bootd-m512-enable-audio-localtime
-hda是指定硬盘
-cdrom指定使用光驱,这个参数后面必须要跟个文件名,可以是物理光驱/dev/hda,可以使用ISO文件,为文件的路径
-m是指定虚拟机使用的内存大小,如512M
-boot指定虚拟机启动用的设备,-boot后可以选择的参数是a,c,d.其中a是指从软盘启动,c就是用硬盘启动,d当然就是光驱启动了。
-enable-audio
-localtime使用实际主板bios上的时间。
应该可以顺利的进入虚拟机了,并开始安装了。
安装过程中,要求换盘:在QEMU中按ctrl alt 2切换到QEMUmonitor模式输入?或help可以查看可用命令及使用说明。(在其他版本的QEMU中,运行QEMU加载OS后,这个shell就会自动变成QEMUmonitor模式)
changedevicefilename—changearemovablemedia
如changecdrom/tmp/xp1.iso
常用的快捷键:
ctrl alt F全屏切换
ctrl alt鼠标在虚拟机和主机间切换
虚拟机上网设置两种方式:
1.usermodenetwork:
这种方式实现虚拟机上网很简单,类似vmware里的nat,QEMU启动时加入-user-net参数,虚拟机里使用dhcp方式,即可与互联网通信,但是这种方式虚拟机与主机的通信不方便。
2.tap/tunnetwork:
这种方式要比usermode复杂一些,但是设置好后虚拟机互联网虚拟机主机通信都很容易
这种方式设置上类似vmware的host-only,QEMU使用tun/tap设备在主机上增加一块虚拟网络设备(tun0),然后就可以象真实网卡一样配置它.

dora 5 下的qemu安装使用qemu是最近出现的一种新的虚拟机,本身小巧的系 统和linux的加速器,使它一经面世就受到了热烈的欢迎,国内也有不少用户,但没有一篇完整的文章介 绍,使许多人走了不少弯路,其实,安装是比较简单的,较为复杂的部分是在网络部分,下面,就以 Fedora 5加kernel 2.6.17.4做为主机详细介绍qemu的安装和使用
一.安装
下载
qemu最新版是0.81,同时下载加速器kmenu,最新版是1.3
http://fabrice.bellard.free.fr/qemu/download.html
先安装Kqemu
$ tar zxvf kqemu-1.3.0pre9.tar.gz
$ cd kqemu-1.3.0pre9
$ su root
# ./configure
# make
# make install

然后安装qemu
# tar zxvf qemu-0.8.1.tar.gz
# cd qemu-0.8.1
#./configure --prefix=/usr/local --enable-kqemu --enable-user --enable-alsa --disable-gcc-check
说明:
--enable-user 可以允许系统下的所有用户使用Qemu
--enable-alas 可以允许系统共享系统的声音系统
--disable-gcc-check 因为wqemu默认是使用gcc3.2,我的系统gcc已经升级到了4.1,所有禁止了qemu对gcc的检查
#make
#make install
经过以上的操作,加速器和qemu都已经安装完成了。

二.创建新的img
用户可以将img文件创建到任意位置,只要有足够的空间就行。
# mkdir win2kp
# cd win2k
# qemu-img create win2k.img 2G
Formating 'win2k.img', fmt=raw, size=2097152 kB
2G是指定虚拟机的硬盘大小的
三.网络的设置
国 内的很多人都讲加参数就如何可以使用网络,但实际远没那么简单,我就是一开始看了网络上某人的贴子,结果是反反复复,网络一直不能正常工作,后来从 qemu的网站上下了所有的doc才搞定(比如有人发的贴都是使用-user-net就可以上网了,不但把语法写错了,而且只有这个参数根本就上不了 网!),在此我只说最复杂的部分,就是主机<->虚拟机<->internet全通的模式。
这种方式是使用tun/tap模式,必须崾内核的支持,主机上会增加一块虚拟网络设备(tun0),然后就可以象真实网卡一样配置它.
首先查看你的内核是否支持tun设备:
#ls -l /lib/moles/2.6.17.4/kernel/drivers/net/tun.ko
如果存在,则执行下面的命令,否则重新编译模块。
#modprobe tun

这时检查moles:
#lsmod |grep tun
tun 10240 1
tun 加载成功以后,要手工编辑一个shell.而且必须放在/etc下,文件名必须是qemu-ifup.最后要记得给脚本加上执行权限,如果要允许系 统下的所有用户使用,还必须更改脚本的权限,并在脚本中的命令前加上sudo,下面是是个完整的,给所有用户使用的脚本。

#vi /etc/qemu-ifup :
#!/bin/sh
sudo /sbin/ifconfig $1 192.168.10.1
sudo route add -host 192.168.10.100 dev $1
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE

#chmod a+x /etc/qemu-ifup

四.安装虚拟系统
虚拟机的启动有很多选项,下面我就以我安装好的win2k来说明
如果要使用shm,必须进行以下的操作
# umount /dev/shm
# mount -t tmpfs -o size=528m none /dev/shm
别忘了启动加速器
#modprobe kqemu
shm的容量必须比你将要分配给虚拟机的内存大16m,否则无法使用,上面是准备给虚拟机512m的内存,所以,shm被设置成了528,如果你只给虚拟机256m的内存,上面的size应该是272.
好了,下面准备开始给上面创建的win2k.img装入系统
# qemu -hda /usr/local/win2k/win2k.img -cdrom /dev/hdc -boot d -m 512 -win2k-hack
对于win2k的安装必须指定-win2k-hack参数,否则安装会中途出错退出,这个参数只需要在安装的时候使用,在运行的时候是不需要的。
-hda是指定将要使用的image文件,也就是windows的C盘
-cdrom 是准备给cdrom的驱动器,也就是windows的D盘,有人说这个参数是-cdrom /dev/cdrom,是指定你的主机的cdrom的位置,这是一个天大的错误,这里指的是启动后的虚拟机,和主机的cdrom在哪里没关系,当然,你的 系统必须有cdrom,如果没有cdrom,我想在linux下虚拟mount一个还是很容易的。
-boot d ,就是指定系统从D启动,各上面一项相关的
-m 512,指定分配组虚拟机的内存
如果一切顺利,安装完成以后,你就可以启动系统了

五.启动虚拟机
首先,按前面的介绍,加载好加速器和tun的模块,如果前面已经加载了,这里就不再需要了,只在主机重启了以后需要,如果经常使用虚拟机,也可以将它们直接添加进/etc/rc.d/rc.local让系统自动加载。
#modprobe kqemu
#modprobe tun
#qemu -hda /usr/local/win2k/win2k.img -cdrom /dev/hdc -hdb fat:/home/seabird/work -m 512 -localtime -net nic -net tun
参数:
-hdb fat:/home/seabird/work
这是一个非常有用的参数,它的意思是把主机的/home/seabird/work目录直接以fat的格式加载到虚拟机,当然,它是只读的
-localtime,指定虚拟机使用当前的系统时间
-net nic -net tun
这两个参数必须同时使用,否则,你还是上不了网,它的意思是启动虚拟机的网卡同时和主机以及internet通讯,只有这个参数加载的时候,系统才会去读取/etc/qemu-ifup文件,其它的模式是不会读取这个文件的。
启 动完成以后,将win2k的网卡地址指定为192.168.10.100,网关设为1921.68.10.1还记得/etc/qemu- ifup文件吗,这个文件中的地址和你的虚拟机的地址是相关的,并不像有些人说的你可以像主机一样随便指定地址去上网,它是把主机作为一个NAT设备来使 用的。当然,你别忘记指定一个虚拟机可以到达的DNS服务器
六.后记
1.指定虚拟机的网络地址的时候。千万别指一个和你的主机相同网段的,那样,你是不可能上网的。
2.可以去安装98,但到目前的最新版为止,winxp在大多情况下安装是不成功的,这个在qemu的网站上说的很清楚,只有等以后的版本了,所以,你看到的安装winxp的贴子是没有实践的,我在三台配置不同的机器上安装都以失败告终了。
3.win2k运行的时候,如果用它自己的关机是关不掉虚拟机的,原因是不支持电源管理, 教你一个方法,使用win2k的安装/卸载硬件,一步步往下走, 在windows搜索完硬件后出现的对话窗中选择添加新硬件(白痴的windows,我竟然不能让它跳过搜索), ->下一步,选择“否,我想从列表选择硬件”->下一步->NT Apm/legacy支持->下一步,安装完成后你就可以正常关机了。
4.qemu还有一个最大的优点是可以启动你的硬盘上的双系统,如果现在就是双系统,你可以像下面一样直接启动:
#qemu -hda /dev/hda1 -m 512 -net nic -net tun
/hda1是你的另一个系统的硬盘分区,如果你是grub启动,这里就是你的grub所在的位置,等grub菜单出现后,选择想启动的系统就可以了(天啊,别选你现在正在运行的系统啊). Linux联盟收集整理

Ⅶ 汇编语言编写的程序怎样才能用QEMU虚拟机启动

(1)QEMU是虚拟机,需要操作系统,你的exe需要在操作系统中运行。解决方法:在QEMU里装一个DOS或Windows。
(2)exe是编译给操作系统使用的,操作系统加载它时需要一些信息,这些不相干的机器码就是干这个用的。

Ⅷ 如何在windows上编译和运行xv6

首先编译xv6涉及的工具包括gcc,binutils,make,qemu。
xv6需要能生成elf32格式的可执行文件的工具链,好在windows下已经有了mingw32这个gcc在windows下的移植,
这样用mingw32编译一套在windows下运行的i386-none-elf交叉工具链成为可能。
Make和qemu也是如此,这里需要说明的是默认网上下载的qemu可执行文件很可能是不带有gdb调试功能的,
这也是需要重新自己编译qemu的原因之一,第二个原因是qemu默认的输入输出会被定向到两个文本文件,
直接后果是xv6的uart将无法使用,自己编译qemu解决上述两点。
接下来是修改makefile文件,这里同时涉及dd,sign.pl,vectors.pl,mkfs。
dd在这里的作用是将bootblock和kernel两个文件组合构建xv6.img镜像,sign.pl是在bootblock添加0xaa55引导标记,
vectors.pl是生成vectors.S文件,mkfs是构建xv6根文件系统镜像fs.img用的。
我编写了wd.c对应dd,sign.c对应sign.pl,vectors.S在linux构建时直接复制了,mkfs.c也需要修改。
wd.c

[cpp] view plain
#include <stdio.h>

int main(int argc, char *argv[])
{
char buf[512];
int n;
FILE *fdin;
FILE *fdout;

fdout = fopen(argv[1], "wb+");

fdin = fopen("bootblock", "rb");
for(n = 1; n > 0; ) {
n = fread(buf, 1, 512, fdin);
fwrite(buf, 1, n, fdout);
}
fclose(fdin);

fdin = fopen("kernel", "rb");
for(n = 1; n > 0; ) {
n = fread(buf, 1, 512, fdin);
fwrite(buf, 1, n, fdout);
}
fclose(fdin);
fclose(fdout);

return 0;
}

sign.c

[cpp] view plain
#include <stdio.h>

int main(void)
{
FILE *fd;
char buf[2];

buf[0] = 0x55;
buf[1] = 0xaa;

fd = fopen("bootblock", "rb+");
fseek(fd, 510, SEEK_SET);
fwrite(buf, 1, 2, fd);
fclose(fd);

return 0;
}
mkfs.diff

[cpp] view plain
19c19
< int fsfd;
---
> FILE *fsfd;
34a35,39
>
> #define bzero(s,n) memset(s,0,n)
> #define b(src,dest,n) memmove(dest,src,n)
> #define index(a,b) strchr(a,b)
>
61c66,67
< int i, cc, fd;
---
> int i, cc;
> FILE *fd;
75,76c81,82
< fsfd = open(argv[1], O_RDWR|O_CREAT|O_TRUNC, 0666);
< if(fsfd < 0){
---
> fsfd = fopen(argv[1], "wb+");
> if(fsfd == NULL){
118c124
< if((fd = open(argv[i], 0)) < 0){
---
> if((fd = fopen(argv[i], "rb+")) == NULL){
137c143
< while((cc = read(fd, buf, sizeof(buf))) > 0)
---
> while((cc = fread(buf, 1, BSIZE, fd)) > 0)
140c146
< close(fd);
---
> fclose(fd);
158,159c164,165
< if(lseek(fsfd, sec * 512L, 0) != sec * 512L){
< perror("lseek");
---
> if(fseek(fsfd, sec * 512L, SEEK_SET) != 0){
> perror("fseek");
162,163c168,169
< if(write(fsfd, buf, 512) != 512){
< perror("write");
---
> if(fwrite(buf, 1, 512, fsfd) != 512){
> perror("fwrite");
204,205c210,211
< if(lseek(fsfd, sec * 512L, 0) != sec * 512L){
< perror("lseek");
---
> if(fseek(fsfd, sec * 512L, SEEK_SET) != 0){
> perror("fseek");
208,209c214,215
< if(read(fsfd, buf, 512) != 512){
< perror("read");
---
> if(fread(buf, 1, 512, fsfd) != 512){
> perror("fread");

热点内容
impdp存储过程 发布:2025-03-15 09:20:05 浏览:739
pythoniris 发布:2025-03-15 09:05:27 浏览:188
浪淘沙服务器怎么没有了 发布:2025-03-15 09:05:26 浏览:97
ftprpm安装包下载 发布:2025-03-15 09:03:53 浏览:721
如何判断背包配置 发布:2025-03-15 09:03:00 浏览:899
淘宝api源码 发布:2025-03-15 09:00:00 浏览:159
压缩复原修车 发布:2025-03-15 08:46:52 浏览:78
linux调试汇编 发布:2025-03-15 08:38:09 浏览:107
手机上编写c语言 发布:2025-03-15 08:17:53 浏览:754
上传迅雷下载速度 发布:2025-03-15 08:07:50 浏览:554