How Intel Virtualisation Works
I haven't read this article yet, but this is more or less the best moment to showcase you guys what a friend of mine made. I think it's really cool.<p>He created a memory allocator in which it is impossible to create dangling pointers. He used it by becoming the kernel through Intel VT-x (i.e. he uses ring 0). He uses libdune for this, which in turn uses Intel VT-x.<p>Check it out at: <a href="https://dangless.gaborkozar.me/" rel="nofollow">https://dangless.gaborkozar.me/</a><p>I'm going to write an ascii diagram in the upcoming edit. For now: I'll just leave you with the legend that my friend made.<p>Note: my friend made a video and slides. So for people who are interested, his slides and videos are much nicer to look at than this diagram.<p>DIAGRAM (of all the physical and virtual memory)<p>|1|<-A->|2|<-B->|3|<-C->|4|<p>LEGEND<p>1 = host physical memory<p>2 = host virtual memory<p>3 = guest physical memory<p>4 = guest virtual memory<p>A: normal host pagetable<p>B: embedded page table (this is VT-X thingy)<p>C: guest page table (this is what I mess with)