5 comments

  • no9243 days ago
    If I&#x27;m not mistaken, this is just fractal mapping, which is very common. See <a href="https:&#x2F;&#x2F;wiki.osdev.org&#x2F;Fractal_Page_Mapping" rel="nofollow">https:&#x2F;&#x2F;wiki.osdev.org&#x2F;Fractal_Page_Mapping</a>
    • userbinator43 days ago
      It&#x27;s amusing to see a concept that is explained simply in a few lines, become an entire bachelor&#x27;s thesis.
  • cmpxchg8b43 days ago
    I&#x27;m confused, is this meant to be presented as new work? Windows has done this for a very long time.
    • raggi43 days ago
      I found it very opaquely worded the whole way through. I think the work being presented is simply an implementation of the technique in eduos, but short of going and reading the paper I don’t know.
    • protoman300043 days ago
      It’s a bachelor’s thesis.
    • als043 days ago
      &quot;There is only a single reference5 dated to 2010 indicating that Microsoft might use a similar approach for its NT kernel.&quot;
      • cmpxchg8b43 days ago
        Googling for it brings up a ton of results.
  • voidmain43 days ago
    I&#x27;m currently using recursive page tables for the OS I&#x27;m working on, but I&#x27;m probably going to change that. There are lots of different address spaces for different processes and (with IOMMU) devices, and it&#x27;s nicer to be able to modify any of them rather than only the current one. I am leaning toward just assigning 2 MiB of memory to page tables at a time and keeping a mapping for these (I don&#x27;t want to map all physical memory in the kernel for security reasons).
    • amluto43 days ago
      Don’t use recursive page tables.<p>- What if you want to port to an architecture that can’t do them?<p>- How sure are you that all the bonus bits in the entries line up right?<p>- What if you want to use huge pages of various sizes?<p>- What if you want to write-protect some page tables?<p>- What if you want to access a non-current page table? If you do that you need to write all the relevant logic anyway.<p>- What if a page table isn’t allocated? You probably don’t want to find out by trying to access it and getting a page fault in kernel mode.<p>- What if you don’t want user code to be able to trivially guess kernel addresses?
  • jdefr8943 days ago
    Isn&#x27;t this just fractal page mappings? Am I missing something?
  • maximgeorge43 days ago
    [dead]