随笔分类 - Linux基础
发表于 2022-06-03 22:34阅读:353评论:0推荐:0
摘要:阅读全文 »
Intel MKTME 在Linux Kernel中的初始化和Key编辑API PCONFIG指令枚举 & MKTME Target枚举 #define X86_FEATURE_PCONFIG (18*32+18) /* Intel PCONFIG */ 检查cpu是否包含某feature,用的是b
发表于 2021-09-16 14:42阅读:270评论:0推荐:0
摘要:工作原因需要下载阅读很多PDF文件,这些PDF文件中有些处于受保护模式,只可以阅读不可以编辑,如添加批注,高亮文字等操作. 因此需要*将受保护的PDF文件变为可编辑PDF*. ## LINUX 在Linux的Terminal中运行: ```shell gs -q -dNOPAUSE -dBATCH
阅读全文 »
发表于 2021-04-19 17:38阅读:118评论:0推荐:0
摘要:https://www.cnblogs.com/hueyxu/p/13745029.html
阅读全文 »
发表于 2021-04-09 18:17阅读:317评论:0推荐:0
摘要:本节将创建一个没有内容的内核,并尝试启动该内核。 关键字: kernel,ELF format,makefile 目标: 创建一个简单的内核,并且使用一个bootsector来启动它。 内核 我们的C(语言)内核将会简单的在屏幕的左上角打印一个X。 // kernel.c void dummy_te
阅读全文 »
发表于 2021-04-09 18:14阅读:236评论:0推荐:0
摘要:Makefile Tutorial Intro Makefile是一种复杂的shell脚本,能够将重复性的、对相互关联的源文件进行编译的工作,进行自动化。 该教程将会帮助你学习makefile。 教程目标 解释什么是Makefile 解释一个Makefile如何被建立 什么是Makefile Mak
阅读全文 »
发表于 2021-02-24 13:42阅读:1549评论:0推荐:0
摘要:READMSR和CPUID指令在Guest中的代码执行路径学习 内核版本:5.3.0 qemu版本:4.2.0 READMSR指令 作用 读MSR,MSR由ECX(RCX)的内容指定,读出的内容保存在EDX(RDX):EAX(RAX)中. VMX相关 如果guest中执行rdmsr指令,并且以下情况
阅读全文 »
发表于 2021-02-24 13:39阅读:5588评论:0推荐:0
摘要:VFIO(Virtual Function IO)研究 主要研究VFIO在虚拟化中的应用,但VFIO的应用不止于虚拟化. VFIO的全称是Virtual Function IO,但这个名字并不能反应它的特点,以下两个假名字更能反应VFIO的特点: Very Fast IO 由于VFIO是将设备直接透
阅读全文 »
发表于 2021-02-24 13:35阅读:1009评论:0推荐:0
摘要:KGDB-双物理机调试内核 author: Ewan 准备工作 搭建双物理机调试Linux内核环境之前,需要: 2台物理机,均装有Linux操作系统,下文以Host和Target区分调试机和被调试机 一份需要调试的Linux源码 一根串口转USB线 attention:本文使用Target的ttyS
阅读全文 »
发表于 2021-02-24 13:02阅读:816评论:0推荐:1
摘要:# 在现有文件中安装操作系统 author: Ewan 创建一个镜像文件作为虚拟机操作系统的文件系统 # 创建一个镜像文件,大小为40G, 名为ubuntu18_04.img qemu-img create -f raw ubuntu18_04.img 40G 准备一个系统安装镜像,我的系统安装镜像
阅读全文 »
发表于 2021-02-24 13:01阅读:996评论:0推荐:0
摘要:利用qemu+kgdb调试Linux系统 author:Ewan 在Guest上编译并安装需要debug的内核,需要将以下选项加入编译配置中。 CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_INFO=y CONFIG_CONSOLE_POLL=y CONFIG_KDB_CON
阅读全文 »
发表于 2021-02-24 12:59阅读:1249评论:1推荐:0
摘要:iommu-spec 要点 术语和硬件结构 Context 状态的硬件表示,用于标识设备和设备分配到的domain. PCI-E连接在北桥上,北桥内部也有可能集成设备. PCI legacy设备连接在南桥上. DMA & Interrupt Remapping就发生在北桥中,PCI-E & 南桥与处
阅读全文 »
发表于 2021-02-24 12:56阅读:1122评论:0推荐:0
摘要:IOMMU历史知识及与VFIO的联系 在虚拟化普及之前,IOMMU主要提供2种功能,避免bounce buffers的功能,创建连续DMA操作功能。 Bounce Buffers 如果外设的寻址空间小于平台(如PC)的寻址空间,例如外设只支持寻址4GB空间,但是PC支持寻址8GB,如果PC中的驱动程
阅读全文 »
发表于 2021-02-24 12:54阅读:703评论:1推荐:0
摘要:QTAILQ队列数据结构 这种数据结构由两种基本结构构成,分别是QTAILQ_ENTRY和QTAILQ_HEAD,前者表示队列的元素,后者表示队列的头。 #define QTAILQ_ENTRY(type) \ union { \ struct type *tqe_next; /* next ele
阅读全文 »
发表于 2021-02-24 12:52阅读:3036评论:0推荐:0
摘要:qemu-kvm的ioeventfd机制 Guest一个完整的IO流程包括从虚拟机内部到KVM,再到QEMU,并由QEMU最终进行分发,IO完成之后的原路返回。这样的一次路径称为同步IO,即指Guest需要等待IO操作的结果才能继续运行,但是存在这样一种情况,即某次IO操作只是作为一个通知事件,用于
阅读全文 »
发表于 2021-02-24 12:50阅读:4678评论:0推荐:1
摘要:Linux的eventfd机制 eventfd初始化 Linux继承了UNIX”everything is a file”的思想,所有打开的文件都有一个fd与之对应,与QEMU一样,很多程序都是事件驱动的,也就是select/poll/epoll等系统调用在一组fd上进行监听,当fd状态发生变化时,
阅读全文 »
发表于 2021-02-24 12:47阅读:3514评论:0推荐:0
摘要:qemu-kvm的irqfd机制 irqfd机制与ioeventfd机制类似,其基本原理都是基于eventfd。 ioeventfd机制为Guest提供了向qemu-kvm发送通知的快捷通道,对应地,irqfd机制提供了qemu-kvm向Guest发送通知的快捷通道。 irqfd机制将一个event
阅读全文 »
发表于 2021-02-24 11:36阅读:2665评论:3推荐:0
摘要:中断虚拟化-内核端 由于历史原因,QEMU和KVM均独立实现了PIC、APIC(IOAPIC+LAPIC).本文档试图说明清楚KVM中实现的PIC和APIC的逻辑。 本文档首先针对PIC、APIC、“Interrupt-Window Exiting”、“Virtual Interrupt Deliv
阅读全文 »
发表于 2021-02-24 11:19阅读:3295评论:0推荐:0
摘要:background 在以5.3为内核的ubuntu中编译3.10的内核时,出现: include/linux/compiler-gcc.h:106:30: fatal error: linux/compiler-gcc5.h错误 尝试了网上说的将当前内核(5.3)的compiler-gcc.h复制
阅读全文 »
发表于 2021-02-24 11:17阅读:1130评论:0推荐:0
摘要:以5.3.8(最新)Linux 内核为例 下载内核源码 从https://mirrors.edge.kernel.org/pub/linux/kernel下载所需的内核源码. wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/lin
阅读全文 »
发表于 2021-02-24 11:14阅读:1348评论:0推荐:0
摘要:以kvm为例 编译 当前系统内核版本: 5.3.8 当前系统内核版本对应的源代码目录: ~/下载/linux-5.3.8/ 当前系统内核版本对应的源代码目录中kvm module源码的位置: ~/下载/linux-5.3.8/arch/x86/kvm/ 当前系统存放module文件的位置: /lib
阅读全文 »