qemu

kvm虚拟化

早过忘川 提交于 2020-02-08 03:46:42
一、kvm虚拟化介绍 什么是虚拟化 虚拟化就是通过模拟计算机硬件(cpu,内存,硬盘,网卡)来实现在一台物理服务器上运行同时多个不同的操作系统,并且使每个操作系统之间都是互相隔离的 为什么要学习虚拟化 目前国内的公有云底层采用的都是kvm虚拟化,经过这几年的快速发展,kvm计算已经非常成熟稳定,在任何linux发行版中,kvm都是标配,虚拟化已经成为了一项必备的技能 虚拟化的应用场景 场景1:只有一台服务器,但是要运行多个版本的软件,不同版本之间还相互冲突 场景2:机房的迁移,物理机在运输过程中容易损坏,导致数据丢失 场景3:openstack部署太难!步骤太繁琐,如何体验最新版的openstack 场景4:开发环境和测试环境经常损坏,运维重复装系统 场景5:业务的扩张,需要快速部署10个一模一样的集群 二、安装KVM虚拟机 环境准备 主机名 kvm01 IP 10.0.0.11 操作系统 centos7 内存 4G 硬盘 50G 在处理器设置中勾选 虚拟化 Intel VT-x... 优化: kvm01在安装系统的时候,不要使用自动分区,自动分区使用的LVM分区,在使用kvm的时候,特别卡! 关闭selinux 关闭firewalld 安装kvm管理工具 安装: yum install libvirt virt-install qemu-kvm -y  建议使用光盘安装,会特别快

Binwalkt提取固件及qemu模拟

五迷三道 提交于 2020-02-08 01:30:15
Binwalk在ctf的杂项题目常用,在日常的安全研究中常用于固件的逆向、提取等。 我们都知道binwalk可以对指定文件进行扫描,然后打印出可能在其中的一些特定类型的文件,比如打ctf的隐写类题目时有时候binwalk一下就搞定了。 但是binwalk是怎么实现的呢。 Binwalk会扫描整个文件寻找文件signature,比如找到了0x89 0x50 0x4E 0x47 0x0D 0x0A 0x1A 0x0A,那么就知道这里有png文件。Binwalk做到这一点其实是调用了libmagic的库来进行识别。 我们接下来就实战看看。 随便找个提供固件下载的官网,这里找了一个tp-link的。 下载固件 下载来后先使用signature选项搜索镜像里的文件签名 可以看到通过签名匹配找到了很多东西 可以看到镜像使用U-BOOT作为BootLoader 简单说下u-boot: U-Boot不仅仅支持嵌入式Linux系统的引导,它还支持NetBS D, VxWorks, QNX, RTEMS, ARTOS, LynxOS, android嵌入式操作系统。 以及bootloader: 在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境

qemu mips调试

こ雲淡風輕ζ 提交于 2020-02-07 00:24:28
查看模块支持的列表: qemu-system-mipsel -device help 查看mips支持的板 qemu-system-mipsel -M help mipsel 文档说明: https://blog.csdn.net/D_R_L_T/article/details/79534896 调试说明: https://coderdock.com/2017/04/29/VirtualBoard/虚拟开发板-Qemu调试uboot/ https://blog.csdn.net/hejinjing_tom_com/article/details/47108381 mips调试命令: qemu-system-mipsel -m 256M -nographic -kernel /home/nfs/u-boot-mt7688-P1806A/u-boot -gdb tcp::1234 -S 来源: https://www.cnblogs.com/hzijone/p/11615358.html

基于RT-Thread系统使用 QEMU 运行 RT-Thread 提供的基于多线程的非阻塞 socket 编程

一曲冷凌霜 提交于 2020-02-03 03:58:32
多线程非阻塞网络编程 简介: 在实际开发中,往往要求网络传输时不能阻塞当前线程,以致无法及时处理其他消息。在用户无法直接套用简单的 socket demo 时,RT-Thread 提供基于多线程的非阻塞 socket 编程示例,方便用户进行应用程序开发。 在 RT-Thread 使用 socket 网络编程时,当一个任务调用 socket的 recv()函数接收数据时,如果 socket 上并没有接收到数据,这个任务将阻塞在这个 recv() 函数里。这个时候,这个任务想要处理一些其他事情,例如进行一些数据采集,发送一些额外数据到网络上等,将变得不可能了。与此同时,其他线程也需要将数据上传同一个服务器,如果直接多个线程共同使用一个 socket 操作,这将会破坏底层 lwip 的消息事件模型。 客户端使用流程: socket() 创建一个 socket,返回套接字的描述符,并为其分配系统资源。 connect() 向服务器发出连接请求。 send()/recv() 与服务器进行通信。 closesocket() 关闭 socket,回收资源。 服务器使用流程: socket() 创建一个 socket,返回套接字的描述符,并为其分配系统资源。 bind() 将套接字绑定到一个本地地址和端口上。 listen() 将套接字设为监听模式并设置监听数量,准备接收客户端请求。 accept

Valgrind and QEMU - Unable to detect memory leak

早过忘川 提交于 2020-02-02 16:01:22
问题 I want to test my C++ code for memory leaks with Valgrind (memcheck) x86. But the software gets cross-compiled and is running on ARM. In order to do some automated testing I decided to emulate my ARM hardware via QEMU. And I also decided to use the cpputest unit test ARM binaries to ensure a deterministic behaviour and search for memory leaks within the scope the unit test covers. All in all, I have an ARM binary which should be emulated via QEMU user mode. My call looks like that: ./valgrind

ppc qemu

浪尽此生 提交于 2020-02-02 15:36:42
qemu-img create -f raw disk-img.raw 2.5G sudo losetup /dev/loop7 disk-img.raw sudo losetup -o $((2048*512)) /dev/loop6 /dev/loop7 sudo mkfs.ext3 /dev/loop6 sudo qemu-system-ppc -cpu G4 -nographic -k en-us -kernel ./Image -m 512 -drive file=disk-img.raw -append "console=ttyS0,115200 ip=dhcp root=/dev/hda1 rw init=/sbin/init" 来源: CSDN 作者: 杨幂的咪 链接: https://blog.csdn.net/Hsu_smile/article/details/85050165

[转帖]x86机器上运行arm64 docker

旧时模样 提交于 2020-02-01 22:44:57
x86机器上运行arm64 docker https://blog.csdn.net/xiang_freedom/article/details/92724299 还有一个dockerpi 改天学习一下. Docker Hub 上可以找到各种非 x86_64 平台的镜像,但是在x86上直接运行会报错: panic: standard_init_linux.go:175: exec user process caused “exec format error” [recovered] 在 x86_64 平台上缺少运行 arm32v7 的 Python 解释器所需要的“环境依赖”,值得庆幸的是在 Linux 上我们可以用 QEMU 来做到跨平台运行,QEMU 的 User-mode emulation 对于容器技术来说是最适合的模式。 https://juejin.im/post/5af86fb15188251b8015c102 步骤 在 https://github.com/multiarch/qemu-user-static/releases 下载qemu-xxx-static文件,注意要根据自己平台选择,如arm64是qemu-aarch64-static,arm32是qemu-arm-static,选错文件后面的步骤会失败。 拷贝文件 sudo cp qemu-aarch64

Start two Android emulators with different locale

耗尽温柔 提交于 2020-02-01 05:12:04
问题 Most of the idea is in the title, I just would like to know if it is possible to start 2 emulators at the same time with 2 different locale (to test the I18n of my app). If there was a way of doing it in Eclipse, that would be greater... Something like 回答1: If you click the Button for starting the emulator in Eclipse (the litlle mobile phone) Eclipse should open a dialog that lets you choose which android virtual device (AVD) you want to start. You can create a second AVD in this dialog and

QEMU & GDB 调试内核

瘦欲@ 提交于 2020-01-26 18:08:43
目录 简介 文件的分布 编译内核 修改**config**配置 编译 运行 gdb 开始调试 参考资料 简介 本篇文章用来 QEMU & GDB 调试内核使用 文件的分布 ROOT = /root/runlinux/Chapter1 ROOTFS = $ROOT /fs ROOTFS_IMG = $ROOT /rootfs.img ROOTFS_IMG_MOUNT = /mnt/rootfs KERNEL_ROOT = $ROOT /linux-4.0 KERNEL_IMG = $KERNEL_ROOT /arch/arm/boot/zImage KERNEL_DTB = $KERNEL_ROOT /arch/arm/boot/dts/vexpress-v2p-ca9.dtb 编译内核 首先修改Makefile 文件中的架构以及编译工具链 # ARCH ?= $(SUBARCH) ARCH ?= arm # CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%) CROSS_COMPILE ?= arm-linux-gnueabi- 以及 将 优化等级修改为 -O1 ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE KBUILD_CFLAGS += -O1 $(call cc-disable-warning,maybe

QEMU - No kernel output after “Booting kernel”

◇◆丶佛笑我妖孽 提交于 2020-01-26 03:57:45
问题 I try to boot precompiled kernel in QEMU self-created machine. Serial peripherial is configured and I sucessfully can boot precompiled U-boot image for this machine. In U-Boot all serial IO works great (memory adressing and UART address is also prepared in machine setup). Using option -nographic i can read and write in UBoot command prompt. I can issue a bootm command in Uboot to load kernel to RAM and boot it. Last string i see is "Uncompressing Linux...done. Booting kernel...". And there i