/design/trunk/src/ch_userspace.xml |
---|
1,6 → 1,6 |
<?xml version="1.0" encoding="UTF-8"?> |
<chapter> |
<chapter id="uspace"><?dbhtml filename="uspace.html"?> |
<title>User-space</title> |
<para></para> |
/design/trunk/src/ch_intro.xml |
---|
1,7 → 1,7 |
<?xml version="1.0" encoding="UTF-8"?> |
<chapter id="intro"> |
<chapter id="intro"><?dbhtml filename="intro.html" ?> |
<title>Introduction</title> |
<graphic align="center" fileref="images/helenos.gif" /> |
/design/trunk/src/ch_ipc.xml |
---|
1,6 → 1,6 |
<?xml version="1.0" encoding="UTF-8"?> |
<chapter> |
<chapter id="ipc"><?dbhtml filename="ipc.html"?> |
<title>IPC</title> |
<para></para> |
/design/trunk/src/images/mm1.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/design/trunk/src/ch_hardware.xml |
---|
1,7 → 1,6 |
<?xml version="1.0" encoding="UTF-8"?> |
<chapter> |
<chapter id="hardware"><?dbhtml filename="hardware.html"?> |
<title>Hardware handling. Device drivers.</title> |
<para></para> |
/design/trunk/src/ch_synchronization.xml |
---|
1,7 → 1,7 |
<?xml version="1.0" encoding="UTF-8"?> |
<chapter> |
<chapter id="sync"><?dbhtml filename="sync.html"?> |
<title>Synchronization</title> |
<section> |
/design/trunk/src/ch_arch_overview.xml |
---|
1,6 → 1,6 |
<?xml version="1.0" encoding="UTF-8"?> |
<chapter id="arch_overview"> |
<chapter id="architecture"><?dbhtml filename="arch.html"?> |
<title>Architecture overview</title> |
<para>Couple of words about microkernel concept etc </para> |
</chapter> |
/design/trunk/src/ch_memory_management.xml |
---|
1,48 → 1,69 |
<?xml version="1.0" encoding="UTF-8"?> |
<chapter id="mm"> |
<?dbhtml filename="mm.html"?> |
<chapter> |
<title>Memory management</title> |
<section> |
<title>Virtual memory management</title> |
<section> |
<title>Address spaces</title> |
<para></para> |
</section> |
<section> |
<title>Physical memory management</title> |
<title>Virtual address translation</title> |
<para></para> |
</section> |
</section> |
<section> |
<title>Kernel allocators</title> |
<title>Physical memory management</title> |
<section id="zones_and_frames"> |
<title>Zones and frames</title> |
<para>Physical memory is divided into zones. Each zone represents |
continuous area of physical memory frames. Allocation of frames is |
handled by the <link linkend="buddy_allocator">buddy allocator</link> |
associated with the zone. Zone also contains information about free and |
occupied frames and its base addresss in the memory. Some of the |
architectures (Mips, PPC) have only one zone, that covers whole physical |
memory. Other architectures (IA32) have multiple zones.</para> |
</section> |
<section> |
<section id="buddy_allocator"> |
<title>Buddy allocator</title> |
<para>Physical memory allocation is handled by buddy allocator.</para> |
<para>Physical memory allocation inside one <link |
linkend="zones_and_frames">memory zone</link> is being handled by buddy |
allocation system. This approach greatly reduces possibility of memory |
fragmentation and helps in allocating bigger continious blocks of |
physical memory aligned to their size.</para> |
<graphic fileref="images/mm1.png" /> |
<para>Frames are grouped into bigger blocks and blocks of the size i ^ 2 |
are stored in the list indexed with <varname>i</varname> (so called |
order index). If list contains 2 ajacent blocks (of a same size of |
cause) they can be merged into the bigger one and moved into the list |
with higher order index, thus making possible allocation of a bigger |
block.</para> |
</section> |
<section> |
<title>Slab allocator</title> |
<para>Kernel memory allocation is handled by slab.</para> |
</section> |
</section> |
<section> |
<title>Memory sharing</title> |
<para></para> |
<para>Not implemented yet(?)</para> |
</section> |
</chapter> |
</chapter> |
/design/trunk/src/ch_scheduling.xml |
---|
1,6 → 1,6 |
<?xml version="1.0" encoding="UTF-8"?> |
<chapter> |
<chapter id="scheduling"><?dbhtml filename="scheduling.html"?> |
<title>Scheduling</title> |
<section> |
<title>Basic terms</title> |
/design/trunk/Makefile |
---|
45,7 → 45,7 |
BUILD_HTML_CHUNKED_DIR = build/html.chunked/ |
all: html pdf |
all: html htmlchunked pdf |
build: clean all |
56,6 → 56,7 |
xsltproc \ |
--stringparam section.autolabel 1 \ |
--stringparam section.label.includes.component.label 1 \ |
--stringparam section.autolabel.max.depth 3 \ |
--output $(BUILD_HTML_DIR)index.html $(DOCBOOK_DIR)html/docbook.xsl src/index.xml |
htmlchunked: |
mkdir -p $(BUILD_HTML_CHUNKED_DIR) |
64,6 → 65,8 |
xsltproc \ |
--stringparam section.autolabel 1 \ |
--stringparam section.label.includes.component.label 1 \ |
--stringparam chunk.section.depth 0 \ |
--stringparam section.autolabel.max.depth 3 \ |
--output $(BUILD_HTML_CHUNKED_DIR)index.html $(DOCBOOK_DIR)html/chunk.xsl src/index.xml |
pdf: |