<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://update.proggen.org/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://update.proggen.org/feed.php">
        <title>proggen.org kernel:tut</title>
        <description></description>
        <link>http://update.proggen.org/</link>
        <image rdf:resource="http://update.proggen.org/lib/tpl/proggenY/images/favicon.ico" />
       <dc:date>2026-04-19T10:33:08+0200</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=kernel:tut:about_tut&amp;rev=1663868366"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=kernel:tut:first_boot&amp;rev=1663868366"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=kernel:tut:goals_motivation&amp;rev=1663868366"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=kernel:tut:helper_grub&amp;rev=1663868366"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=kernel:tut:printing_on_screen&amp;rev=1663868366"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=kernel:tut:required_skills&amp;rev=1663868366"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=kernel:tut:sidebar&amp;rev=1663868366"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=kernel:tut:start&amp;rev=1663868366"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=kernel:tut:used_linkerscript&amp;rev=1663868366"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://update.proggen.org/lib/tpl/proggenY/images/favicon.ico">
        <title>proggen.org</title>
        <link>http://update.proggen.org/</link>
        <url>http://update.proggen.org/lib/tpl/proggenY/images/favicon.ico</url>
    </image>
    <item rdf:about="http://update.proggen.org/doku.php?id=kernel:tut:about_tut&amp;rev=1663868366">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:26+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>kernel:tut:about_tut</title>
        <link>http://update.proggen.org/doku.php?id=kernel:tut:about_tut&amp;rev=1663868366</link>
        <description>Über das Tutorial

Aufbau

Die einzelnen Kapitel bauen auf einander auf. Es ist also empfehlenswert, das Tutorial von vorne an zu lesen.
Ich versuche dennoch, die einzelnen Kapitel möglichst allgemein zu halten, sodass man auch ohne genaue Kenntnis der vorherigen Kapitel etwas versteht. Allerdings wird und kann mir das nicht immer gelingen.</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=kernel:tut:first_boot&amp;rev=1663868366">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:26+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>kernel:tut:first_boot</title>
        <link>http://update.proggen.org/doku.php?id=kernel:tut:first_boot&amp;rev=1663868366</link>
        <description>Der erste Start

Zunächst einmal möchten wir uns in diesem Abschnitt einen Kernel schreiben, der nichts weiter tut als starten. Klingt nicht besonders aufregend und anspruchsvoll.

Aber ich kann dir versichern: Anspruchsvoll ist es schon ein bisschen. Vielleicht mehr, als mancher denkt.</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=kernel:tut:goals_motivation&amp;rev=1663868366">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:26+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>kernel:tut:goals_motivation</title>
        <link>http://update.proggen.org/doku.php?id=kernel:tut:goals_motivation&amp;rev=1663868366</link>
        <description>Ziele und Motivation zu einem solchen Projekt

Dies ist ein sehr wichtiges Kapitel. Bevor man überhaupt die erste Codezeile schreibt, bevor man überhaupt erste Informationen einholt sollte man sich darüber klar sein:
  Warum möchte ich einen Kernel schreiben?</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=kernel:tut:helper_grub&amp;rev=1663868366">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:26+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>kernel:tut:helper_grub</title>
        <link>http://update.proggen.org/doku.php?id=kernel:tut:helper_grub&amp;rev=1663868366</link>
        <description>GRUB - Der nette Helfer
GRUB? Wer ist das?
GRUB ist ein Bootloader, der für uns die unangenehme Arbeit übernehmen wird, unseren Code und damit unseren Kernel zu starten. Wieso unangenehm? Nunja, das liegt daran, dass zu Starten von Code viel dazu gehört. Arbeiten wir ganz normal auf einem Betriebssystem, dann erledigt das Betriebssystem die ganze Arbeit für uns.
Denn irgendwie muss der Code in den Speicher.</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=kernel:tut:printing_on_screen&amp;rev=1663868366">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:26+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>kernel:tut:printing_on_screen</title>
        <link>http://update.proggen.org/doku.php?id=kernel:tut:printing_on_screen&amp;rev=1663868366</link>
        <description>Ausgabe auf den Bildschirm

Damit wir auch mitverfolgen können, was unser Kernel denn gerade tut, ist es hilfreich, wenn wir Text auf den Bildschirm ausgeben können. Haben wir Funktionen dafür, so sind wir in der Lage, Debug- oder Statusinformationen auszugeben.</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=kernel:tut:required_skills&amp;rev=1663868366">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:26+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>kernel:tut:required_skills</title>
        <link>http://update.proggen.org/doku.php?id=kernel:tut:required_skills&amp;rev=1663868366</link>
        <description>Erwartungen an den Leser

Da dieses Tutorial ein schon recht fortgeschrittenes Thema behandelt, erwarte ich von dir zumindest einige Grundvoraussetzungen.

Fähigkeiten des Lesers

So solltest du in der Lage sein, die Programmiersprache C zu verstehen und auch selbst Code in dieser Sprache anzufertigen.</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=kernel:tut:sidebar&amp;rev=1663868366">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:26+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>kernel:tut:sidebar</title>
        <link>http://update.proggen.org/doku.php?id=kernel:tut:sidebar&amp;rev=1663868366</link>
        <description>Tutorial

	* Start

Infodatenbank

	* Übersicht

Community

	* Wiki Startseite
	* Forum
	* Links</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=kernel:tut:start&amp;rev=1663868366">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:26+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>kernel:tut:start</title>
        <link>http://update.proggen.org/doku.php?id=kernel:tut:start&amp;rev=1663868366</link>
        <description>Tutorial zur Programmierung eines eigenen Kernels

Hier wird nach und nach ein Tutorial zur Kernelprogrammierung entstehen.

Wir werden uns langsam in die Grundzüge der Kernelprogrammierung einarbeiten und mit Praxis das Erlernte vertiefen.

Es ist hilfreich, die Kapitel nacheinander in der richtigen Reihenfolge zu lesen, da sie auf einander aufbauen.
Es ist aber auch möglich (z.B. bei entsprechendem Vorwissen), mitten im Tutorial einzusteigen.</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=kernel:tut:used_linkerscript&amp;rev=1663868366">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:26+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>kernel:tut:used_linkerscript</title>
        <link>http://update.proggen.org/doku.php?id=kernel:tut:used_linkerscript&amp;rev=1663868366</link>
        <description>Das Linken

In diesem Kapitel soll es nur kurz um das Linkerskript und das Linken im allgemeinen gehen.

Das Linkerskript


ENTRY(start)
OUTPUT_FORMAT(elf32-i386)

SECTIONS
{
    . = 0x100000;
    __kernel_start = .;
    .multiboot_data :
{
        *(.multiboot_data)
}

    .text :
{
        *(.text)
}

    .data :
{
        *(.data)
        *(.rodata)
}

    .bss :
{
        *(.bss)
}
    __kernel_end = .;
    end = .;
}</description>
    </item>
</rdf:RDF>
