path: root/community/gsoc/project_ideas/physical_memory_management.mdwn
diff options
authorSamuel Thibault <>2017-02-21 12:50:59 +0100
committerSamuel Thibault <>2017-02-21 12:50:59 +0100
commit371a782cd09a6f0c7f9f99cf336351635c6fa7c9 (patch)
tree603012b6e833dba0b9513bbb6b70f95d2b39ffaa /community/gsoc/project_ideas/physical_memory_management.mdwn
parent84a6ede01b232fbc5c364aaa68bf276af0110f79 (diff)
Drop physical memory management project
it was basically done by Richard
Diffstat (limited to 'community/gsoc/project_ideas/physical_memory_management.mdwn')
1 files changed, 0 insertions, 51 deletions
diff --git a/community/gsoc/project_ideas/physical_memory_management.mdwn b/community/gsoc/project_ideas/physical_memory_management.mdwn
deleted file mode 100644
index 1bb6a760..00000000
--- a/community/gsoc/project_ideas/physical_memory_management.mdwn
+++ /dev/null
@@ -1,51 +0,0 @@
-[[!meta copyright="Copyright © 2015, 2016 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]]."]]"""]]
-[[!meta title="Physical memory management"]]
-GNU Mach is currently suffering from severe limitations caused by the way
-it manages physical memory. For example, since it requires pages to be mapped
-in kernel space in order to be used, the maximum amount of usable physical
-memory is currently around 800MB (or 1.8GB if a 2/2 split is set). And
-because the page allocator is unable to easily return blocks of contiguous
-pages, the kernel has to use virtual memory to provide contiguity.
-But the kernel virtual space is separate from the direct mapping of
-physical memory, so the larger it is, the less physical pages available.
-The size of the kernel space is currently around 200MB, with around 100MB
-for kernel objects. This small size prevents the system from achieving
-scalability, since a panic occurs when the kernel is unable to allocate
-a kernel object such as a port. In addition, the kernel uses mainly tables
-to store IPC rights. When a table is full, it is enlarged through a kernel
-specific version of realloc(). When a file system starts managing many
-files (e.g. because some of their content is cached in physical memory),
-these tables can get big enough to make realloc() fail because of
-The goal of this project is to make as much physical memory available as
-possible for both the kernel and applications, by rewriting the page
-allocator into a buddy allocator to support contiguous block allocations,
-using it directly instead of virtual memory as the backend of the slab
-allocator for kernel objects, and, if time allows it, transform IPC right
-tables (e.g. into radix trees) and get rid of realloc().
-This project requires a good understanding of virtual memory (both physical
-mappings at the MMU level and virtual mappings at the VM level), and strong
-skills in C programming. Note that some work has already been done in the
-X15 project about this, and can be reused as a reference.
-Useful links :
- * <>
- * <>
- * <>
-Possible mentors: Richard Braun