摘要:本节将创建一个没有内容的内核,并尝试启动该内核。 关键字: kernel,ELF format,makefile 目标: 创建一个简单的内核,并且使用一个bootsector来启动它。 内核 我们的C(语言)内核将会简单的在屏幕的左上角打印一个X。 // kernel.c void dummy_te 阅读全文
posted @ 2021-04-09 18:17 EwanHai 阅读(1) 评论(0) 推荐(0) 编辑
摘要:Makefile Tutorial Intro Makefile是一种复杂的shell脚本,能够将重复性的、对相互关联的源文件进行编译的工作,进行自动化。 该教程将会帮助你学习makefile。 教程目标 解释什么是Makefile 解释一个Makefile如何被建立 什么是Makefile Mak 阅读全文
posted @ 2021-04-09 18:14 EwanHai 阅读(5) 评论(0) 推荐(0) 编辑
摘要:READMSR和CPUID指令在Guest中的代码执行路径学习 内核版本:5.3.0 qemu版本:4.2.0 READMSR指令 作用 读MSR,MSR由ECX(RCX)的内容指定,读出的内容保存在EDX(RDX):EAX(RAX)中. VMX相关 如果guest中执行rdmsr指令,并且以下情况 阅读全文
posted @ 2021-02-24 13:42 EwanHai 阅读(44) 评论(0) 推荐(0) 编辑
摘要:VFIO(Virtual Function IO)研究 主要研究VFIO在虚拟化中的应用,但VFIO的应用不止于虚拟化. VFIO的全称是Virtual Function IO,但这个名字并不能反应它的特点,以下两个假名字更能反应VFIO的特点: Very Fast IO 由于VFIO是将设备直接透 阅读全文
posted @ 2021-02-24 13:39 EwanHai 阅读(58) 评论(0) 推荐(0) 编辑
摘要:KGDB-双物理机调试内核 author: Ewan 准备工作 搭建双物理机调试Linux内核环境之前,需要: 2台物理机,均装有Linux操作系统,下文以Host和Target区分调试机和被调试机 一份需要调试的Linux源码 一根串口转USB线 attention:本文使用Target的ttyS 阅读全文
posted @ 2021-02-24 13:35 EwanHai 阅读(12) 评论(0) 推荐(0) 编辑
摘要:# 在现有文件中安装操作系统 author: Ewan 创建一个镜像文件作为虚拟机操作系统的文件系统 # 创建一个镜像文件,大小为40G, 名为ubuntu18_04.img qemu-img create -f raw ubuntu18_04.img 40G 准备一个系统安装镜像,我的系统安装镜像 阅读全文
posted @ 2021-02-24 13:02 EwanHai 阅读(15) 评论(0) 推荐(0) 编辑
摘要:利用qemu+kgdb调试Linux系统 author:Ewan 在Guest上编译并安装需要debug的内核,需要将以下选项加入编译配置中。 CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_INFO=y CONFIG_CONSOLE_POLL=y CONFIG_KDB_CON 阅读全文
posted @ 2021-02-24 13:01 EwanHai 阅读(24) 评论(0) 推荐(0) 编辑
摘要:iommu-spec 要点 术语和硬件结构 Context 状态的硬件表示,用于标识设备和设备分配到的domain. PCI-E连接在北桥上,北桥内部也有可能集成设备. PCI legacy设备连接在南桥上. DMA & Interrupt Remapping就发生在北桥中,PCI-E & 南桥与处 阅读全文
posted @ 2021-02-24 12:59 EwanHai 阅读(44) 评论(0) 推荐(0) 编辑
摘要:通常external-interrupt会引起vmexi,如果该external-interrupt就是给Guest的,那么hypervisor就会向Guest注入一个virtual Interrupt,那么哪个irq会被注入呢?(即在Guest IDT indexing的Interrupt vec 阅读全文
posted @ 2021-02-24 12:58 EwanHai 阅读(17) 评论(0) 推荐(0) 编辑
摘要:VFIO QOM对象的构造 Everything in QOM is a device QOM(Qemu Object Model)是QEMU最新的设备模型。QEMU一开始采用ad hoc,每种设备都有不同的表示方式,非常混乱。于是开发了qdev,将所有的模拟设备进行了整合,变成了一种单根结点(系统 阅读全文
posted @ 2021-02-24 12:57 EwanHai 阅读(53) 评论(0) 推荐(0) 编辑