qemu

MIT-6.828-JOS-环境搭建

北慕城南 提交于 2020-08-11 05:59:52
MIT 6.828是操作系统中最经典的一门课程。完成所有的lab就相当于完成了一个迷你的操作系统。我跟的是2018年的课程,课程首页在 6.828课程官网 。当然所有资料都是英文的,所以难度也不低,这里推荐几本非常有用的参考书:《x86汇编语言-从实模式到保护模式》,《程序员的自我修养-链接、装载与库》,《深入理解计算机系统》,很多知识在这些书中都有提到,参考着看会有奇效。 概述 本文主要讲解实验前的环境搭建,主要分为两个部分,一个是x86模拟器QEMU的安装,另一个是编译工具链。参考资料: 官方文档 实验环境 我的机子装的win10的系统,现在win10支持 WSL ,在windows上也能享受到原生linux一样的体验。我一般用 Xshell 登陆本地WSL,体验很不错。 前期准备 首先从官网clone实验的框架代码到本地: git clone https://pdos.csail.mit.edu/6.828/2018/jos.git lab 编译工具链 编译工具链是一个工具集包括c编译器,汇编编译器,连接器。在命令行下执行 gcc -m32 -print-libgcc-file-name ,如果输出 /usr/lib/gcc/i486-linux-gnu/version/libgcc.a 或 /usr/lib/gcc/x86_64-linux-gnu/version/32

spdk(三)----qemu使用spdk

可紊 提交于 2020-08-10 22:42:55
0. 配置 HUGEMEM=2048 ./scripts/setup.sh 1.启动vhost application: ./app/vhost/vhost -S /var/tmp -s 1024 -m 0x3 & 2. 创建SPDK bdev (注意:SPDK bdev是SPDK中对多种存储后端(storage backend)的抽象。 这些存储后端(storage backend)包括:ceph RBD,ramdisk,NVMe,iSCSI,逻辑卷,甚至是virtio)。这里就体现了SPDK block device layer的概念。 2.1 创建基于physical NVMe的spdk nvme bdev 这里要求运行qemu的Host上插有physical NVME SSD。 ./scripts/rpc.py bdev_nvme_attach_controller -b Nvme0 -t pcie -a 0000:01:00.0 ./scripts/rpc.py vhost_scsi_controller_add_target vhost.0 0 Nvme0n1 2.2 创建基于ramdisk的spdk bdev Malloc0 (vhost-scsi) ./scripts/rpc.py bdev_malloc_create -b Malloc0 128 4096

reposync同步yum源

孤街醉人 提交于 2020-08-10 17:48:44
reposync同步yum源的方法 安装reposync yum install yum-utils -y 在本地配置外网的yum源, 以阿里云上的virt源为例,这个源中的qemu-kvm-rhev包是OpenStack所依赖的,如果你想同步base源或者epel源,更换成对头的baseurl即可 [virt] name=kvm baseurl=http://mirrors.aliyun.com/centos/7/virt/x86_64/kvm-common/ gpgcheck=0 配置完成,更新yum缓存 yum makecache 执行 reposync -r virt -p /home/yum/ 其中 -r选项用来指明同步当前主机的哪个yum源,是根据repo id来选择的 -p选项可以指明同步到哪个目录下,此目录最好是httpd服务器的DocumentRoot,如果不使用-p选项则会在当前路径下创建一个与repo id同名的目录 执行 cd /home/yum/virt/ createrepo . 如果源里面的包发生了更新,需要执行如下步骤: reposync -r virt -p /home/yum/ cd /home/yum/virt/ createrepo --update . 来源: oschina 链接: https://my.oschina.net/u

编译 QtScrCpy for Linux

末鹿安然 提交于 2020-08-09 22:31:18
环境 操作系统:Ubuntu Kylin 优麒麟 20.04 LTS 适用架构:AMD64、ARM64(鲲鹏、飞腾) 操作系统:Debian 10 Buster 适用架构:MIPS64EL(龙芯) 安装依赖 sudo apt install git cmake gcc g++ qt5-default qt5-qmake qtcreator build-essential libgl1-mesa-dev qtbase5-private-dev libqt5x11extras5-dev libavformat-dev libswscale-dev mingw-w64 克隆项目 git clone https://gitee.com/Barryda/QtScrcpy.git 启动 QtCreator sudo qtcreator 编译软件 快捷键 Ctrl + O 或点击“文件”、“打开文件或项目”,选择 QtScrCpy 所在目录中的 all.pro 这个文件。然后点击“Configure Project”配置项目。 一般情况下,上边这一步都可以自动完成。如果 Kits 工具没有完成自动检测,可以手动设置一下。比如,Qt Qmake 的路径。 运行软件 将手机开启“开发者选项”进入开发者模式,启用“USB 调试”。通过 USB 数据线连接到电脑。在弹出的对话框中选择 USB 连接模式为

鹅厂实习绿色通道!!!第二届云安全比赛启动,招募“云上”高手

◇◆丶佛笑我妖孽 提交于 2020-08-07 19:12:32
基于真实通用云环境,展示全路径攻击与防御、开赛38秒提交正确答案……一年前,GeekPwn2019云安全比赛的精彩画面记忆犹新,而即将开始的第二届云安全比赛——GeekPwn2020云靶场挑战赛热身赛将在7月11、12日再度拉开战幕,为中外信息安全高手提供在云安全研究领域PK的舞台。 加速培养云安全生力军 第二届云安全比赛硬核来袭 万物上云时代,云安全也从基础设施向业务应用扩展,渗透至虚拟化、容器、数据、边界、管道、终端、代码…...云计算架构的复杂性、运营模式的独特性、承载业务的多样性都对云计算安全提出了巨大挑战。在此背景之下,腾讯安全云鼎实验室携手GeekPwn联合发起第二届云靶场挑战赛,鼓励参赛选手积极探索云安全领域的前沿技术。 此次比赛,除了激励选手发现网络安全攻防演练中的云安全漏洞,同时也希望可以通过公开的赛事平台去寻找云安全领域的技术先锋,以及培养云安全生力军,为创造云安全的未来价值而储备人才,守护企业安全上云。作为GeekPwn的生态合作伙伴,腾讯安全希望借助与极棒的合作,为加速云安全技术创新、共享技术成果搭建一个长期、持续的沟通交流平台,推动云计算产业健康有序发展。 本届云安全比赛项目包括“ 云靶场挑战赛” 和 “云安全开放赛” 两部分。 其中, “云靶场挑战赛” 设立 线上热身赛(初赛) 和 线下决赛 两阶段,模式分为解题和攻防对抗两种形式。选手可自由选择报名参赛

KVM与FusionCompute简介

为君一笑 提交于 2020-08-07 14:58:59
KVM概述 一、KVM简介: 1、在开源的虚拟化技术中 KVM是全虚拟化,而Xen同时支持半虚拟化和全虚拟化。 2、KVM是Kernel-based Virtual Machine的简称(基于内核的虚拟机)是一种Ⅱ型全虚拟化 3、kVM 其就是Linux的一个内核模块该内核模块使得 Linux 变成了一个 Hypervisor(虚拟机监视器) 4、KVM自从 Linux 2.6.20 起就作为一模块被包含在yu Linux 内核中 当Linux系统安装了KVM模块后会增加三种运行模式 ·Guest Mode:此模式主要是指虚拟机,包括虚拟机的 CPU、内存、磁盘等虚拟设 备,该模式被置于一种受限的 CPU 模式下运行;  User Mode:用户空间,此模式下运行的主要是 QEMU,它用来为虚拟机模拟执行 I/O 类的操作请求; Kernel Mode:内核空间,在此模式下可以真正的操作硬件,当 Guest OS 执行 I/O 类操作或特权指令操作时需要向用户模式提交请求,然后由用户模式再次发起 硬件操作请求给内核模式从而真正操作硬件。 二、KVM工作原理: 在KVM 中,虚拟机被实现为常规的 Linux 进程,由标准 Linux 调度程序进行调度;虚机的每个虚拟 CPU 被实现为一个常规的 Linux 进程。这使得 KMV 能够使用 Linux 内核的已有功能。但是,KVM

Arm pwn学习

泄露秘密 提交于 2020-08-07 14:56:29
刚刚开始学习ARM pwn,下面如有错误,希望各位大佬多多包han,多多包涵。 先介绍下 Arm的一些常见指令 那就先来 Arm 三操作数指令 看看函数开始时 Arm指令中的 - 感觉蛮简洁的,可以省略很多步骤和指令。 Arm LDR 指令 LDM 和 STM是多数据传送指令,用来装载和存储多个字的数据从/到内存。比如: 寄存器命名: 在常见的程序中 前面的命名一般都是以R*,一些比较特殊的寄存器,就命令,比如 LR SP 在IDA里面都是显示APCS。 Arm 跳转 Arm 程序状态寄存器处理指令 Arm 比较指令 Arm 标志位 做题,了解这些指令就差不多了 环境搭建 可以用qemu-arm加 gdb-multiarch , gdb-multiarch 加gdbserver或者直接arm_now (后面这个。我安装了还是不太会用。逃···· 第一种 这种我没具体的调试过,之前就用了一次,感觉没第二种舒服 第二种 首先先下载 arm-debian的qemu镜像 https://people.debian.org/~aurel32/qemu/armel/ or https://people.debian.org/~aurel32/qemu/armhf/ 其他: 实例调试分析 就只开了 nx 漏洞所在的函数 int __fastcall sub_17F80(char *a1) {

基于mykernel 2.0编写一个操作系统内核

早过忘川 提交于 2020-08-07 09:40:31
一、实验要求 1、按照https://github.com/mengning/mykernel 的说明配置mykernel 2.0,熟悉Linux内核的编译; 2、基于mykernel 2.0编写一个操作系统内核,参照https://github.com/mengning/mykernel 提供的范例代码 3、简要分析操作系统内核核心功能及运行工作机 制 二、实验环境 ubuntu-16.04.6 三、实验步骤 1、按照https://github.com/mengning/mykernel 的说明配置mykernel 2.0 下载并编译mykernel,在终端输入以下命令即可 wget https: // raw.github.com/mengning/mykernel/master/mykernel-2.0_for_linux-5.4.34.patch sudo apt install axel axel -n 20 https: // mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.4.34.tar.xz xz -d linux- 5.4 . 34 .tar.xz tar -xvf linux- 5.4 . 34 .tar cd linux - 5.4 . 34 patch -p1 < ../mykernel- 2

OpenStack 云主机镜像制作

落爺英雄遲暮 提交于 2020-08-07 04:24:30
目录 文章目录 目录 镜像支持功能 手动制作 启动虚拟机环境 配置虚拟机环境 创建 Glance 镜像 使用 OpenStack 环境制作 使用 DIB 半自动化工具制作 将 OpenStack 云主机制作成镜像 镜像支持功能 支持密码注入功能(注:通过 nova boot --admin-pass 指令设置初始密码)。 支持动态修改密码(注:通过 nova set-password 指令重设密码)。 支持根分区大小(根据 Flavor 系统盘参数)自动调整。 支持配置初始化(SSH key、hostname 等)。 手动制作 启动虚拟机环境 下载 ISO 镜像文件:http://mirrors.aliyun.com/centos/8.2.2004/isos/x86_64/CentOS-8.2.2004-x86_64-minimal.iso 生成 QCOW2 文件 qemu-img create -f qcow2 centos8.2.qcow2 10G 创建并启动虚拟机: sudo virt-install --virt-type kvm --name centos8.2 \ --ram 1024 \ --disk centos8.2.qcow2,format=qcow2 \ --network network=default \ --graphics vnc,listen=0.0