[[!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]]."]]"""]] [[!tag open_issue_documentation]] 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) IRC, freenode, #hurd, 2011-02-15 however, the kernel won't work in 64 bit mode without some changes to physical memory management and mmu management (but maybe that's what you meant by physical memory) IRC, freenode, #hurd, 2011-02-16 antrik: youpi added it for xen, yes antrik: but you're right, since mach uses a direct mapped kernel space, the true problem is the lack of linux-like highmem support which isn't required if the kernel space is really virtual --- IRC, freenode, #hurd, 2011-06-09 btw, how can gnumach use 1 GiB of RAM ? did you lower the user/kernel boundary address ? I did 2G ? yes ok it doesn't make so much sense to let processes have 3G addressing space when there can't be more that 1G physical memory that's sad for an operating system which does most things by mapping memory eh well, if a process wants to map crazy things, 3G may be tight already e.g. ext2fs yes so there's little point in supporting them we need hurd/amd64 and there's quite some benefit in shrinking them to 2G yes actually even 2G may become a bit tight webkit linking needs about 1.5-2GiB things become really crazy wow i remember the linux support for 4G/4G split when there was enough RAM to fill the kernel space with struct page entries