背景分析: 在之前分析EPT violation的时候,没有太注意qemu进程页表和EPT的关系,从虚拟机运行过程分析,虚拟机访存使用自身页表和EPT完成地址转换,没有用到qemu进程页表,所以也就想当然的认为虚拟机使用的物理页面在qemu进程的页表中没有体现。但是最近才发现,自己的想法是错误的。L Read More
posted @ 2017-04-23 20:16 jack.chen Views(2807) Comments(0) Diggs(0) Edit
2017-04-12 前篇文章对Linux进程地址空间的布局以及各个部分的功能做了简要介绍,本文主要对各个部分的具体使用做下简要分析,主要涉及三个方面:1、MMAP文件的映射过程 2、用户 内存的动态分配 Text:进程代码 Data:全局和静态数据区,但是已初始化 BSS:全局和静态数据区,但是未 Read More
posted @ 2017-04-20 12:29 jack.chen Views(1990) Comments(0) Diggs(0) Edit
2017-04-18 记得很早之前分析过KVM内部内存虚拟化的原理,仅仅知道KVM管理一个个slot并以此为基础转换GPA到HVA,却忽略了qemu端最初内存的申请,而今有时间借助于qemu源码分析下qemu在最初是如何申请并管理虚拟机内存的,坦白讲,还真挺复杂的。 一、概述 qemu-kvm 模型 Read More
posted @ 2017-04-20 11:11 jack.chen Views(6051) Comments(6) Diggs(2) Edit
2017-04-07 脱离物理内存的管理,今天咱们来聊聊进程虚拟内存的管理。因为进程直接分配和使用的都是虚拟内存,而物理内存则是有系统“按需”分配给进程,在进程看来,只知道虚拟内存的存在! 前言: 关于虚拟内存和物理内存这些东东,本篇不作介绍,此等基础知识参考最普通的操作系统参考书籍即可。当然有问题 Read More
posted @ 2017-04-10 16:06 jack.chen Views(3694) Comments(2) Diggs(0) Edit
2017-03-13 上文针对VFS的基本信息做了介绍,并简单介绍了VFS涉及的几个数据机构,本节结合LInux源码,对各个结构之间的关系进行分析。 一、总体架构图 总体架构图如上图所示,结合进程访问文件的实际情况,根据上图进行细节化的描述。进程通过其结构中的files_struct结构和文件建立联 Read More
posted @ 2017-04-07 15:57 jack.chen Views(685) Comments(0) Diggs(0) Edit
2017-03-08 10:37:55 一、虚拟文件系统VFS 文件系统用于将位于磁盘上的文件按照某种方式组织进内存,并给上层应用程序提供统一的访问接口。Linux支持多种文件系统EXT2/3,NTFS,XFS等,而LInux下支持这些文件系统的方式就是VFS,即虚拟文件系统。虚拟文件系统向上层提供 Read More
posted @ 2017-04-07 15:55 jack.chen Views(535) Comments(0) Diggs(0) Edit
2017-04-07 管道通信在linux中使用较为频繁的进程通信机制。基于unix一切皆文件的传统,管道也是一种文件。所以可以使用一般的VFS接口对管道进行读写操作,如read、write。具体管道分为有名管道和无名管道。无名管道的使用场景较为局限,仅仅限制在有亲缘关系的进程之间通信,多由于父子进 Read More
posted @ 2017-04-07 15:51 jack.chen Views(571) Comments(0) Diggs(0) Edit
这里涉及到的几个概念:DPL、RPL、CPL DPL:存在于段描述符中,描述访问此段的最低特权级,即访问此段的进程CPL和RPL必须大于等于此段的DPL RPL:存在于段选择符中的最低两位,成为请求特权级即进程的请求权限,这个可以由程序员自己设置但是其功能受到CPL的制约 CPL:存在于cs和ss寄 Read More
posted @ 2017-04-07 14:06 jack.chen Views(485) Comments(0) Diggs(0) Edit
2017-04-06 之前在看LinuxThreads线程模型的时候,看到该模型是通过信号实现线程间的同步,当时没有多想,直接当做信号量了,现在想起来真是汗颜……后来想想并不是那么回事,于是,就有了今天这篇博文! 其实关于信号的文章,网上有很多,写的也很好,而笔者仅仅是想把自己的想法记录下来,一来帮 Read More
posted @ 2017-04-07 10:43 jack.chen Views(2734) Comments(0) Diggs(0) Edit
2017-04-05 16:14:22 今天脑子中突然想起进程的挂起和阻塞有什么区别,自己头脑风暴了下,还真不好解释,结合进程的睡眠,于是就有了今天这篇文章,以下内容均是个人参考资料后得到的自己的理解,如有错误,还请指正! 要说挂起、阻塞、睡眠难免让人想到进程生命周期中的阻塞态或者等待状态,而挂起和 Read More
posted @ 2017-04-05 17:20 jack.chen Views(23933) Comments(3) Diggs(10) Edit

以马内利