Tag: qemu

为什么要使用三元运算符而不为“真”条件赋值(x = x?:1)

在Android开源的qemu代码中,我跑过了这行代码: machine->max_cpus = machine->max_cpus ?: 1; /* Default to UP */ 这只是一个混乱的说法: if (machine->max_cpus) { ; //do nothing } else { machine->max_cpus = 1; } 如果是这样,是不是更清楚: if (machine->max_cpus == 0) machine->max_cpus = 1; 有趣的是,这个编译和工作正常与gcc,但不编译http://www.comeaucomputing.com/tryitout/ 。

如何将flat raw磁盘映像转换为virtualbox或vmplayer的vmdk?

我有一些旧的Linux映像以平面文件格式分发,他们可以被bochs虚拟机使用,但是我需要使用Sun Virtual Box来运行它们。 Virtual Box不能使用这种格式的图像,所以我需要将这些图像从平面文件转换为.vmdk文件格式。 有没有办法做到这一点?

如何使用“x / i $ pc”反汇编GDB中的16位x86引导扇区代码? 它被视为32位

例如,用BIOS打印到屏幕main.asm的引导扇区: org 0x7c00 bits 16 cli mov ax, 0x0E61 int 0x10 hlt times 510 – ($-$$) db 0 dw 0xaa55 然后: nasm -o main.img main.asm qemu-system-i386 -hda main.img -S -s & gdb -ex 'target remote localhost:1234' \ -ex 'break *0x7c00' \ -ex 'continue' \ -ex 'x/3i $pc' 我得到: 0x7c00: cli 0x7c01: mov $0x10cd0e61,%eax 0x7c06: hlt […]

如何用GDB和QEMUdebuggingLinux内核?

我是内核开发的新手,我想知道如何使用QEMU和gdb运行/debuggingLinux内核。 我其实读罗伯特·爱的书,但不幸的是,它不能帮助读者如何安装适当的工具来运行或debugging内核…所以我所做的是遵循本教程http://opensourceforu.efytimes.com / 2011/02 / kernel-development-debugging-eclipse / 。 我使用eclipse作为IDE在内核上开发,但是我想首先在QEMU / gdb下运行。 所以我到目前为止做的是: 1)编译内核: make defconfig (then setting the CONFIG_DEBUG_INFO=y in the .config) make -j4 2)一旦编译完成,我运行Qemu使用: qemu-system-x86_64 -s -S /dev/zero -kernel /arch/x86/boot/bzImage 在“停止”状态下启动内核 3)因此我必须使用gdb,我尝试下面的命令: gdb ./vmlinux 它正确运行,但是…现在我不知道该怎么做…我知道我必须使用远程debugging端口1234(Qemu使用的默认端口),使用vmlinux作为符号表文件debugging。 所以我的问题是:我应该怎么做才能在Qemu上运行内核,将debugging器附加到它上面,从而让它们一起工作,通过内核开发使我的生活更轻松。

为什么Android模拟器如此慢? 我们如何加快Android模拟器?

我有一个2.67 GHz Celeron处理器和一个x86 Windows XP Professional机器上1.21 GB的RAM。 我的理解是Android模拟器应该在这样的机器上相当快地启动,但是对于我来说却不行。 我已经遵循了设置IDE,SDK,JDK等方面的所有说明,并且已经在快速启动模拟器方面取得了一些成功,但这是非常罕见的。 我可以如何解决这个问题? 即使它启动并加载主屏幕,它是非常缓慢。 我已经在版本3.5 (伽利略)和3.4 (Ganymede)尝试过Eclipse IDE 。