From b91f1d19f234c6da2ad4795db625030be855c992 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 16 Feb 2011 10:11:16 +0100 Subject: microkernel/mach/gnumach/memory_management: New. --- microkernel/mach/gnumach/memory_management.mdwn | 36 +++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 microkernel/mach/gnumach/memory_management.mdwn (limited to 'microkernel/mach/gnumach') diff --git a/microkernel/mach/gnumach/memory_management.mdwn b/microkernel/mach/gnumach/memory_management.mdwn new file mode 100644 index 00000000..49a082e9 --- /dev/null +++ b/microkernel/mach/gnumach/memory_management.mdwn @@ -0,0 +1,36 @@ +[[!meta copyright="Copyright © 2011 Free Software Foundation, Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] + +IRC, freenode, #hurd, 2011-02-15 + + etenil: originally, mach had its own virtual space (the kernel + space) + etenil: in order to use linux 2.0 drivers, it now directly maps + physical memory, as linux does + etenil: but there is nothing similar to kmap() or vmalloc() in + mach, so the kernel is limited to its 1 GiB + (3 GiB userspace / 1 GiB kernelspace) + that's the short version, there is a vmalloc() in mach, but this + trick made it behave almost like a kmalloc() + braunr: the direct mapping is *only* for the benefit of Linux + drivers?... + also, the configuration of segments limits the kernel space + antrik: i'm not sure, as i said, this is the short version + antrik: but there is a paper which describes the integration of + those drivers in mach + you mean the linux 2.0 drivers? + braunr: I read it once, but I don't remember anything about the + physical mapping in there... + etenil: well, originally it was 1.3, but essentially that's the + same... + i don't see any other reason why there would be a direct mapping + except for performance (because you can use larger - even very + lage - pages without resetting the mmu often thanks to global pages, but + that didn't exist at the time) -- cgit v1.2.3