河马虚拟化
码龄14年
关注
提问 私信
  • 博客:269,726
    社区:4,971
    274,697
    总访问量
  • 39
    原创
  • 1,735,966
    排名
  • 230
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:福建省
  • 加入CSDN时间: 2010-11-05
查看详细资料
个人成就
  • 获得106次点赞
  • 内容获得34次评论
  • 获得505次收藏
创作历程
  • 1篇
    2021年
  • 5篇
    2020年
  • 1篇
    2019年
  • 32篇
    2018年
  • 1篇
    2017年
成就勋章
TA的专栏
  • TMS320C674x
  • 软件
    1篇
  • UEFI
    2篇
  • 虚拟化
    24篇
  • BIOS
    8篇
  • QEMU
    6篇
  • KVM
    3篇
  • x86架构
    18篇
  • VMX
    4篇
  • Linux
    5篇
  • Kernel
    2篇
  • VT-d
    5篇
  • 计算机架构
    6篇
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

IOMMU是如何划分PCI device group的?

IOMMU的一个主要作用就是将IO设备发出的请求地址IOVA(I/O Virtual Address)转化为物理内存地址,如果没有IOMMU,那么所有的IO设备都将使用相同的物理地址空间访问物理内存。引入IOMMU后,就会引入IOVA这个地址空间,IO设备可以通过IOVA虚拟地址访问物理内存。在虚拟化引入之前,IOMMU主要有两个功能:创建IOVA到HPA的映射,让设备能够访问任意物理内存。比如,有些I/O设备的寻址空间只有4G,但是平台的物理内存大于4G,为了让这样的I/O设备能够访问4G空间
原创
发布博客 2021.01.05 ·
6127 阅读 ·
3 点赞 ·
3 评论 ·
21 收藏

如何获取x86 CPU L1、L2和L3 cache的大小

CPU cache是介于CPU内核和物理内存(动态内存 dynamic RAM)之间的若干块静态内存(staic RAM),static RAM的访问速度比dynamic RAM的访问速度要快很多,而且不需要像dynamic RAM那样由于会漏电需要保持一定的刷新频率。static RAM作为访问dynamic RAM的缓存,对于系统的内存访问性能起到了很大的提升作用,但是由于static RAM的成本比较高,所以一般static RAM或者说Cache的大小都比较有限,一般都在几十KB到几十MB的范围内。
原创
发布博客 2020.11.05 ·
4664 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

AWS Nitro架构简介

AWS(Amazon Web Services)Nitro架构为Amazon的云服务提供了底层的支持。Nitro架构的总体设计思想是:轻量化的hypervisor配合定制化的硬件,让用户无法区分出运行在虚拟机内和运行在裸金属上操作系统的性能差异。为了实现定制化的硬件(ASIC),Amazon和以色列的一家芯片公司——Annapurna实验室合作,并在后面将其收购,其芯片的logo就是Annapurna山(世界第十高峰)。原本基于Xen架构的虚拟化系统中,服务器既要运行提供给客户的虚拟机,也要运行
原创
发布博客 2020.10.31 ·
7924 阅读 ·
10 点赞 ·
0 评论 ·
28 收藏

qemu虚拟机的关机方式

qemu虚拟机的关闭方式主要包括如下几种方式:通过qemu monitor的system_powerdown命令进行关闭, 在libvirt对qemu进行管理的情况下,通过virsh shutdown命令进行关闭。 在虚拟机内使用Guest OS自带的关机按钮进行关闭。 通过qemu monitor的quit命令进行关闭。 在libvirt对qemu进行管理的情况下,通过virsh d...
原创
发布博客 2020.01.31 ·
7443 阅读 ·
4 点赞 ·
4 评论 ·
5 收藏

教你如何将电脑瞬间关掉

关闭一台电脑的最简单方法就是按电源键,或者点击操作系统(如Windows)的关机按钮,当触发该操作时,操作系统将会将自己关闭,然后断掉主板的电源。更暴力一点的就是长按电源键,甚至拔电源。本文将介绍一种通过软件的方式,将电脑瞬间关闭。以Windows操作系统为例,为了实现该操作,需要下载一个免费的软件rweverything,也称为RW,可以通过该链接直接在官网上下载http://rweve...
原创
发布博客 2020.01.20 ·
1480 阅读 ·
0 点赞 ·
1 评论 ·
3 收藏

qcow2文件的snapshot管理

qcow2是qemu虚拟机中特别常用的镜像文件格式,QCOW即Qemu Copy-On-Write写时拷贝,后面的2即为版本,因为在qcow2出现之前还有qcow格式的镜像文件。从字面上理解,qcow/qcow2的文件组织形式应该是建立在Copy-On-Write这个基本的机制上,即当某个数据块被引用多次(两次或两次以上)时,若某个实例尝试写该数据块,为了不让其他实例看到该数据块的变化,就会将该数...
原创
发布博客 2020.01.18 ·
1834 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

QEMU中VNC Server架构分析

QEMU的入口main函数所在的源文件vl.c中针对QEMU_OPTION_vnc对vnc参数进行解析,vnc选项支持的具体参数在ui/vnc.c中进行定义,如下所示:static QemuOptsList qemu_vnc_opts = { .name = "vnc", .head = QTAILQ_HEAD_INITIALIZER(qemu_vnc_opts.head),...
原创
发布博客 2019.06.18 ·
3366 阅读 ·
0 点赞 ·
1 评论 ·
2 收藏

Intel x86 CPU中断和异常的定义和分类

中断通常被定义为一个打断CPU芯片指令执行的事件,该事件对应到对应到CPU芯片内部或者外部的电路产生的电子信号。中断信号可以被划分为同步中断和异步中断:同步中断,该类型中断由CPU的控制单元在执行指令的时候产生,并且是在当前指令执行完毕下一个指令执行之前产生。 异步中断,该类型中断由其他硬件设备在任意的时间产生,并且遵循CPU的时钟信号传递给CPU。对于Intel的CPU而言,它将同步...
原创
发布博客 2018.12.18 ·
2606 阅读 ·
3 点赞 ·
2 评论 ·
14 收藏

什么是CPU Die?

在看CPU相关的手册的时候,经常会看到Die的字样,刚开始不太理解是什么意思,感觉有点像是一颗CPU芯片,但是这样理解还是不够准确。后来各种查找,终于找到了Die的准确意思,原来Die是处理器在生产过程中引入的概念。总的来说,Die或者CPU Die指的是处理器在生产过程中,从晶圆(Silicon Wafer)上切割下来的一个个小方块(这也是为啥消费者看到的CPU芯片为什么都是方的的原因),...
原创
发布博客 2018.12.02 ·
44470 阅读 ·
28 点赞 ·
3 评论 ·
113 收藏

Intel VT-d(5)- DMAR表组织结构

在系统上电的时候,BIOS/UEFI负责检测并初始化重定向硬件(即VT-d硬件),为其分配相应的物理地址,并且以ACPI表中的DMAR(DMA Remapping Reporting)表的形式告知VT-d硬件的存在。DMAR的格式如下所示,先是标准的APCI表的表头,然后是Host Address Width表示该系统中支持的物理地址宽度;标志字节Flag表示VT-d硬件支持的一些功能,最后是...
原创
发布博客 2018.11.24 ·
4186 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

Intel VT-d(4)- Interrupt Posting

Interrupt-posting是VT-d中中断重映射功能的一个扩展功能,该功能也是针对可重映射的中断请求。Interrupt-posting功能让一个可重映射的中断请求能够被暂时以一定的数据形式post(记录)到物理内存中,并且可选择性地主动告知CPU物理内存中暂时记录着pending的中断请求。在x86处理器的虚拟化中,Interrupt-posting再加上APIC Virtualiz...
原创
发布博客 2018.11.17 ·
2160 阅读 ·
0 点赞 ·
0 评论 ·
10 收藏

Intel VT-d(3)- 中断重映射

VT-d硬件中除了包含DMA重映射硬件外,也会包含中断重映射硬件,该中断重映射单元让系统软件能够对I/O设备产生的中断(包括从I/O APIC发送过来的中断,I/O设备产生的以MSI、MSI-X形式传递的中断,不包含中断重映射硬件本身产生的中断)的传输进行控制,而不仅仅取决于硬件的连接。对于VT-d硬件而言,中断请求就是从外面发送进来对物理地址范围0xFEEX_XXXXh的写请求。VT-d中,...
原创
发布博客 2018.11.11 ·
4449 阅读 ·
2 点赞 ·
2 评论 ·
9 收藏

Intel VT-d(2)- DMA重定向

DMA重定向硬件一般位于Root Complex中,Root-Complex是PCIe系统中引入的概念,它将CPU、内存子系统和PCIe子系连接起来。如下图所示:而Root Complex则经常被集成到CPU芯片上、MCH(Memory Controller Hub)上或者是IOH(I/O hub)上。DMA重定向硬件将来自于I/O子系统的内存访问请求分为两类:不带地址空间ID的请...
原创
发布博客 2018.11.04 ·
4551 阅读 ·
3 点赞 ·
0 评论 ·
10 收藏

QEMU虚拟机中如何安装Virtio驱动

在计算机虚拟化中,Virtio是一种半虚拟化解决方案,即需要对Guest OS进行一定的修改(安装相应的驱动程序),能够对虚拟机的I/O性能进行大幅的提升。在QEMU+KVM的环境中,Virtio的后端驱动由QEMU程序提供,不需要额外的安装,而前端驱动则位于Guest OS中,需要将相应OS类型的驱动程序安装到Guest OS中。本文以QEMU+KVM为VMM,以Win 7为Guest OS...
原创
发布博客 2018.11.01 ·
13706 阅读 ·
3 点赞 ·
0 评论 ·
21 收藏

Intel VT-d(1)- 简介

Intel VT-d的全称是Intel Virtualization Technology for Direct I/O,它是Intel虚拟化技术的一部分,主要针对的是I/O子系统,它的实现主要是通过在硬件上引入重定向单元,该硬件重定向单元用于对I/O子系统的DMA操作和中断传递进行重定向,从而辅助VMM(Virtual Machine Monitor)实现I/O子系统的虚拟化。一般情况下VM...
原创
发布博客 2018.10.28 ·
17389 阅读 ·
3 点赞 ·
0 评论 ·
23 收藏

NBD(Network Block Device)简介及基本使用

NBD指的是Network Block Device,正如其名字的意思,NBD让用户可以通过网络访问到某个块设备,或者设备镜像。你可能会想NFS(Network File System)不是已经可以实现通过网络挂载各种文件系统并进行访问了吗,为什么还要整个NBD呢?如果用户的目的只是为了简单地访问对文件系统内的文件进行读写,那么NFS已经完全足够用了,但是有时候用户可能需要对存储块设备执行...
原创
发布博客 2018.10.21 ·
31370 阅读 ·
1 点赞 ·
0 评论 ·
18 收藏

CPU在空闲的时候做什么

对于大部分负载并不重的计算机而言,可以说CPU大部分的时间都是停留在"idle task"中,在Windows中从任管理器中可以看到大部分的CPU时间都停留在System Idle Process,如下图所示:在Linux中,idle task并不是一个独立的线程,但是可以通过top指令查看CPU的idle比例:总的来说,在Intel x86架构CPU中,“idle task”的...
原创
发布博客 2018.10.14 ·
8224 阅读 ·
5 点赞 ·
4 评论 ·
9 收藏

x86 CPU虚拟化环境中的地址转换加速机制

前面讲过,在Intel x86 CPU中,为了加快线性地址到物理地址的转换,引入了各种地址转换的cache(TLB、PDE cache、PDPTE cache、PML4 cache)和PCID(Processor Context Identifier)机制。不清楚的可以出门左转查看上一篇文章。而在虚拟化环境中,即VMX(Virtual Machine Extension)中,Intel x86...
原创
发布博客 2018.09.26 ·
1492 阅读 ·
3 点赞 ·
0 评论 ·
3 收藏

Intel x86 CPU的地址转换加速机制

在x86 CPU中分页机制引入了线性地址和物理地址的概念,从而在一个独立的物理地址空间上,能够同时存在多个相同且独立的线性地址空间。在分页使能的情况下,CPU访问内存的时候,线性地址首先通过页表查询的机制转化为物理地址,然后再通过物理地址完成物理内存的访问。对于64位的x86 CPU,若采用4级的分页机制,其基本结构如下图所示:首先CR3寄存器存放着分级地址转换页表的入口地址,该地址指...
原创
发布博客 2018.09.21 ·
1129 阅读 ·
1 点赞 ·
0 评论 ·
5 收藏

x86 CPU的MSR寄存器

MSR(Model Specific Register)是x86架构中的概念,指的是在x86架构处理器中,一系列用于控制CPU运行、功能开关、调试、跟踪程序执行、监测CPU性能等方面的寄存器。MSR寄存器的雏形开始于Intel 80386和80486处理器,到Intel Pentium处理器的时候,Intel就正式引入RDMSR和WRMSR两个指令用于读和写MSR寄存器,这个时候MSR就算被正...
原创
发布博客 2018.09.16 ·
11357 阅读 ·
1 点赞 ·
0 评论 ·
25 收藏
加载更多