摘要:
首发公号:Rand_cs Hypervisor 需要对每个虚机的虚拟中断进行管理,这其中涉及的一系列数据结构和操作就是虚拟中断子系统 VIRQ 虚拟中断描述符 struct vcpu { uint32_t vcpu_id; ........... /* * member to record the 阅读全文
摘要:
首发公号:Rand_cs 这一节开始讲述真正的中断虚拟化,首先来看硬件方面的虚拟化。前文 minos 2.3 中断虚拟化——GICv2 管理 主要讲述 GICv2 的 Distributor 和 CPU Interface,在 Hypervisor 存在的情况下,它们都是为 Hypervisor 服 阅读全文
摘要:
首发公号:Rand_cs 前面讲述了 minos 对 GICv2 的一些配置和管理,这一节再往上走一走,看看 minos 的中断子系统 中断 中断描述符 /* * if a irq is handled by minos, then need to register * the irq handle 阅读全文
摘要:
首发公号:Rand_cs 上一节讲述了 ARMv8 异常模型,很多理论,这一节来看一个实际的例子,来看看 minos 中的异常处理流程 异常向量表 直接来看 minos 的异常向量表,很多事情就明了了: elx_vectors: c0sync: // Current EL with SP0 BAD_ 阅读全文
摘要:
首发公号:Rand_cs 硬件肯定需要软件配合,这一节就来实战 GICv2 首先准备好 GICv2 手册:https://developer.arm.com/documentation/ihi0048/bb/?lang=en,对于硬件的管理,最底层的操作就是读写硬件的寄存器,所以这里准备好手册,随时 阅读全文
摘要:
首发公号:Rand_cs 越往后,交叉的越多,大多都绕不开 ARMv8 的异常处理,所以必须得先了解了解 ARMv8 的异常处理流程 先说一下术语,从手册中的用词来看,在 x86 平台,一般将异常和中断统称为中断,在 ARM 平台,一般将中断和异常统称为异常 异常的流程,可以分为 3 个阶段,“设备 阅读全文
摘要:
首发公号:Rand_cs minos 1.2 内存虚拟化——guest 项目来自乐敏大佬:https://github.com/minosproject/minos 本文继续讲述 minos 中的内存虚拟化中关于 guest 的部分,主要弄清楚一个问题,minos 如何管理 guest vm 的内存 阅读全文
摘要:
首发公号:Rand_cs minos 1.1 内存虚拟化——hyp 内存虚拟化,目前理解主要两方面: 内存管理,没有虚拟化的情况时,对于 Linux 内核运行在物理硬件之上,内核需要管理物理内存,需要管理进程的虚拟内存。类似,type1 类型的 hypervisor/minos 运行在物理硬件上,m 阅读全文
摘要:
- 首发公号:Rand_cs minos 0 前(废)言(话) 从今天开始开启一个新的系列,讲述虚拟化的那些事儿。时隔上次发文又隔了好几个月了,主要是平时工作比较忙,没太多时间精力维护博客之类的。 前一个系列 SELinux 没写完,但也不算太监,比较重要的基本都介绍了。剩下的就是 Linux 中关 阅读全文
摘要:
公号:Rand_cs BLP 模型 本篇文章是调研了许多资料后对 BLP 模型的一个总结 MLS,Multi-level Security,主要关心的是数据机密性 D. Elliott Bell 和 Leonard J. LaPadula 在 1996 年提出了基本的 BLP 模型,主要有两个性质: 阅读全文