summaryrefslogtreecommitdiff
path: root/microkernel/mach/gnumach
diff options
context:
space:
mode:
Diffstat (limited to 'microkernel/mach/gnumach')
-rw-r--r--microkernel/mach/gnumach/building.mdwn3
-rw-r--r--microkernel/mach/gnumach/building/example.mdwn54
-rw-r--r--microkernel/mach/gnumach/memory_management.mdwn50
-rw-r--r--microkernel/mach/gnumach/projects.mdwn11
4 files changed, 56 insertions, 62 deletions
diff --git a/microkernel/mach/gnumach/building.mdwn b/microkernel/mach/gnumach/building.mdwn
index 9c075600..99e566bb 100644
--- a/microkernel/mach/gnumach/building.mdwn
+++ b/microkernel/mach/gnumach/building.mdwn
@@ -1,6 +1,3 @@
-Additional to the following text, a further [[example]] has be posted.
-
-
# Building [[GNU_Mach|gnumach]] from Source
If you want to build the [[GNU_Mach|gnumach]] kernel yourself instead of just using a
diff --git a/microkernel/mach/gnumach/building/example.mdwn b/microkernel/mach/gnumach/building/example.mdwn
deleted file mode 100644
index 7db98547..00000000
--- a/microkernel/mach/gnumach/building/example.mdwn
+++ /dev/null
@@ -1,54 +0,0 @@
-[[!meta copyright="Copyright © 2007, 2008 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]]."]]"""]]
-
-## Compiling GNU Mach microkernel
-
-Host development system is IBM T41 running Debian Sarge 3.1r0a GNU/Linux.
-
-* gcc version: 3.3.5
-* GNU sed version: 4.1.2
-* GNU make version: 3.8
-* mig version: 1.3-4
-
-Obtained gnumach-1-branch sources from cvs:
-
- export CVS_RSH="ssh"
- cvs -z3 -d:ext:anoncvs@ savannah.gnu.org:/cvsroot/hurd co -r gnumach-1-branch gnumach
-
-Obtained mig_1.3-4_i386.deb from
-http://www.hadrons.org/~guillem/debian/pool/main/mig/. Installed it using dpkg:
-
- dpkg -i mig_1.3-4_i386.deb
-
-Entered into the gnumach sources and did the following for compilation:
-
- mkdir build
- cd build
- ../configure --host=i386-unknown-gnu0.2 --build=i586-pc-linux-gnu \
- --enable-kdb --enable-ide
- make
-
-The kernel file is created in the build directory. Move it to /boot on the
-testing x86 system Hurd partition. Rename it as gnumach1 and compress it:
-
- mv kernel gnumach1
- gzip gnumach1
-
-Add a new entry on the testing machine /boot/grub/menu.lst to boot the new
-kernel.
-
- title GNU Hurd K10 Compiled gnumach
- kernel (hd0,3)/boot/gnumach1.gz root=device:hd2s4 -s
- module (hd0,3)/hurd/ext2fs.static--multiboot-command-line=${kernel-command-line} \\
- --host-priv-port=${host-port} --device-master-port=${device-port} \\
- --exec-server-task=${exec-task} -T typed ${root} $(task-create)$(task-resume)
- module (hd0,3)/lib/ld.so.1 /hurd/exec $(exec-task=task-create)
-
-Reboot into the new compiled mygnumach1.gz kernel!
diff --git a/microkernel/mach/gnumach/memory_management.mdwn b/microkernel/mach/gnumach/memory_management.mdwn
new file mode 100644
index 00000000..17dbe46f
--- /dev/null
+++ b/microkernel/mach/gnumach/memory_management.mdwn
@@ -0,0 +1,50 @@
+[[!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
+
+ <braunr> etenil: originally, mach had its own virtual space (the kernel
+ space)
+ <braunr> etenil: in order to use linux 2.0 drivers, it now directly maps
+ physical memory, as linux does
+ <braunr> etenil: but there is nothing similar to kmap() or vmalloc() in
+ mach, so the kernel is limited to its 1 GiB
+ <braunr> (3 GiB userspace / 1 GiB kernelspace)
+ <braunr> that's the short version, there is a vmalloc() in mach, but this
+ trick made it behave almost like a kmalloc()
+ <antrik> braunr: the direct mapping is *only* for the benefit of Linux
+ drivers?...
+ <braunr> also, the configuration of segments limits the kernel space
+ <braunr> antrik: i'm not sure, as i said, this is the short version
+ <braunr> antrik: but there is a paper which describes the integration of
+ those drivers in mach
+ <etenil> you mean the linux 2.0 drivers?
+ <antrik> braunr: I read it once, but I don't remember anything about the
+ physical mapping in there...
+ <antrik> etenil: well, originally it was 1.3, but essentially that's the
+ same...
+ <braunr> i don't see any other reason why there would be a direct mapping
+ <braunr> 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
+
+ <antrik> however, the kernel won't work in 64 bit mode without some changes
+ to physical memory management
+ <braunr> and mmu management
+ <braunr> (but maybe that's what you meant by physical memory)
+
+IRC, freenode, #hurd, 2011-02-16
+
+ <braunr> antrik: youpi added it for xen, yes
+ <braunr> antrik: but you're right, since mach uses a direct mapped kernel
+ space, the true problem is the lack of linux-like highmem support
+ <braunr> which isn't required if the kernel space is really virtual
diff --git a/microkernel/mach/gnumach/projects.mdwn b/microkernel/mach/gnumach/projects.mdwn
index 47a2756c..f4ef192a 100644
--- a/microkernel/mach/gnumach/projects.mdwn
+++ b/microkernel/mach/gnumach/projects.mdwn
@@ -1,13 +1,13 @@
-[[!meta copyright="Copyright © 2005, 2006, 2007, 2008 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 2005, 2006, 2007, 2008, 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]]."]]"""]]
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
This page is a place to keep track of ideas about things that may be improved
in GNU Mach, so that it'll evolve to a reliable microkernel for The Hurd, both
@@ -58,7 +58,8 @@ so that no duplicate efforts end up.
* Improve the external pagers interface
- * Implement read-ahead (huge I/O improvements expected).
+ * Implement [[open_issues/performance/io_system/read-ahead]] (huge I/O
+ improvements expected).
* Making this interface synchronous should improve I/O performance
significantly, without (almost) any drawbacks (we also get some