<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Eigenes OS?]]></title><description><![CDATA[<p>Mich würde mal interessieren, wer alleine oder mit anderen an einem eigenen OS entwickelt, zu welchem Zweck und in welcher Sprache (ASS, C oder C++)? Links?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/236354/eigenes-os</link><generator>RSS for Node</generator><lastBuildDate>Fri, 13 Mar 2026 01:39:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/236354.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 13 Mar 2009 19:03:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Eigenes OS? on Sat, 24 Jan 2015 10:00:36 GMT]]></title><description><![CDATA[<p>Mich würde mal interessieren, wer alleine oder mit anderen an einem eigenen OS entwickelt, zu welchem Zweck und in welcher Sprache (ASS, C oder C++)? Links?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1679585</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1679585</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Sat, 24 Jan 2015 10:00:36 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenes OS? on Fri, 13 Mar 2009 19:21:54 GMT]]></title><description><![CDATA[<p>Erhard Henkes schrieb:</p>
<blockquote>
<p>Mich würde mal interessieren, wer alleine oder mit anderen an einem eigenen OS entwickelt, zu welchem Zweck und in welcher Sprache (ASS, C oder C++)? Links?</p>
</blockquote>
<p>Ich entwickel mit ein paar anderen zusammen ein eigenes OS, finden kannst du es <a href="http://www.kernel.org" rel="nofollow">hier</a>. Ist in C geschrieben und der Zweck ist denke ich klar :???:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1679595</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1679595</guid><dc:creator><![CDATA[Kernel-Developer]]></dc:creator><pubDate>Fri, 13 Mar 2009 19:21:54 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenes OS? on Sat, 14 Mar 2009 07:52:05 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Habe vor graumer Zeit mal angefangen, aber schon nach dem Multiboot Kernelloader aufgehört. War in C und Assembler...</p>
<p>Mfg.<br />
way</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1679722</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1679722</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Sat, 14 Mar 2009 07:52:05 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenes OS? on Sat, 14 Mar 2009 10:17:48 GMT]]></title><description><![CDATA[<p>Erhard Henkes schrieb:</p>
<blockquote>
<p>zu welchem Zweck und in welcher Sprache (ASS, C oder C++)?</p>
</blockquote>
<p>Ich habe mich auch mal mit einem eigenen OS in Assembler beschäftigt zwecks endlich mal den Protected Mode der Intel CPUs zu verstehen. Habe aber diesbezüglich versagt und daraus wurde nichts. Hm, vertane Lebenszeit... hätte lieber in was anderes und sinnvolleres investieren sollen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1679769</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1679769</guid><dc:creator><![CDATA[abc.w]]></dc:creator><pubDate>Sat, 14 Mar 2009 10:17:48 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenes OS? on Fri, 10 Jul 2009 22:52:55 GMT]]></title><description><![CDATA[<p>Alleine ist sicher schwierig. Zu zweit oder dritt macht das mehr Sinn. Wichtig ist, dass man alles genau dokumentiert, wenn man zwischenzeitlich pausieren will/muss.</p>
<p>Ich denke, dass es auch teilweise an der mangelnden Erklärung der Vorbilder und an langatmigen Theorie-Erklärungen liegt, wenn es in der Praxis schief geht. Beim Einstieg haben die wenigsten den kompletten Durchstieg durch alle Facetten. Also ist es wichtig, die Dinge detailliert zu erklären und vor allem auch Anregungen für eigene Experimente zu geben, damit die Dinge wirklich &quot;glasklar&quot; werden.</p>
<p>Bevor man bei einem Hobby- oder Experimental-OS auf den Protected Mode umschaltet, sollte man erst den Real Mode didaktisch komplett ausloten, damit der PM nicht zur Belastung wird, sondern zur Bereicherung.</p>
<p>Ich habe mir vorgenommen, didaktisch den Einstieg in die OS-Entwicklung zu erleichtern, denn es hilft, sowohl Assembler, C und auch die Hardware richtig zu verstehen, zumindest dann, wenn man dies möchte. Daher bitte ich euch mit zu helfen.</p>
<p>Hier die Seite:<br />
<a href="http://www.henkessoft.de/OS_Dev/OS_Dev1.htm" rel="nofollow">http://www.henkessoft.de/OS_Dev/OS_Dev1.htm</a></p>
<p>Bitte um konstruktive Kommentare/Ideen. Mir ist volles Verständnis und ein stufenweiser und leichter Einstieg wichtig. Kein blitzschnelles Voranhuschen einer Elite. Die brauchen solche Seiten nicht, sondern nur Datenblätter, Tabellen, ....</p>
<p>Wenn jemand mitmachen möchte, gerne. Bitte hier oder per mail. Im Kopf der Seite ist Platz für viele Namen. Hauptziel: Spaß und wirkliches Verständnis vermitteln. Ich möchte auch niemanden zwingen, zunächst Linux zu installieren, um zu beginnen.</p>
<p>Bisher haben sich für mich gvim [EDIT: notepad++ bringt mehr Komfort], nasm und bochs als wirklich brauchbar heraus kristallisiert. partcopy.exe kann sicher durch etwas anderes ersetzt werden. Wichtig ist, dass sich niemand die Festplatten &quot;zerschießt&quot;.</p>
<p>Ich habe eine Floppy Disk zum Booten verwendet. Heutige PCs haben dies nicht mehr ohne weiteres. Viele haben aber noch alte PCs mit Floppy Disk und wollen wirklich &quot;physisch booten&quot;. Didaktisch muss das einfach sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1679847</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1679847</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Fri, 10 Jul 2009 22:52:55 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenes OS? on Sat, 14 Mar 2009 15:07:06 GMT]]></title><description><![CDATA[<p>Euer Problem ist, daß ihr immer nur in x86 denkt. x86 ist nicht unbedingt die optimale Plattform für einen Einsteiger mit dem ganzen 20 Jahre alten Schrott wie Realmode, Callgates, Segmentregistern und dem ganzen anderen Mist. Ich verstehe nicht, warum immer alle Welt sowas immer unbedingt für die x86 Architektur machen muss. Die ist nicht nur hässlich, sondern auch klobig und extrem Noobunfreundlich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1679900</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1679900</guid><dc:creator><![CDATA[asdca]]></dc:creator><pubDate>Sat, 14 Mar 2009 15:07:06 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenes OS? on Sat, 14 Mar 2009 15:08:43 GMT]]></title><description><![CDATA[<p>Gleicher Flame richtet sich natürlich auch an div. Buchautoren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1679902</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1679902</guid><dc:creator><![CDATA[asdca]]></dc:creator><pubDate>Sat, 14 Mar 2009 15:08:43 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenes OS? on Sat, 14 Mar 2009 15:20:04 GMT]]></title><description><![CDATA[<p>asdca schrieb:</p>
<blockquote>
<p>Euer Problem ist, daß ihr immer nur in x86 denkt. x86 ist nicht unbedingt die optimale Plattform für einen Einsteiger mit dem ganzen 20 Jahre alten Schrott wie Realmode, Callgates, Segmentregistern und dem ganzen anderen Mist. Ich verstehe nicht, warum immer alle Welt sowas immer unbedingt für die x86 Architektur machen muss. Die ist nicht nur hässlich, sondern auch klobig und extrem Noobunfreundlich.</p>
</blockquote>
<p>da bin ich voll bei dir. erhard: mach was für 'ne ARM-plattform. ich wette es gibt mehr ARM-basierte systeme auf der welt als PC(x86)-kisten.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1679908</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1679908</guid><dc:creator><![CDATA[+fricky]]></dc:creator><pubDate>Sat, 14 Mar 2009 15:20:04 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenes OS? on Sat, 14 Mar 2009 15:48:15 GMT]]></title><description><![CDATA[<p>+fricky schrieb:</p>
<blockquote>
<p>asdca schrieb:</p>
<blockquote>
<p>Euer Problem ist, daß ihr immer nur in x86 denkt. x86 ist nicht unbedingt die optimale Plattform für einen Einsteiger mit dem ganzen 20 Jahre alten Schrott wie Realmode, Callgates, Segmentregistern und dem ganzen anderen Mist. Ich verstehe nicht, warum immer alle Welt sowas immer unbedingt für die x86 Architektur machen muss. Die ist nicht nur hässlich, sondern auch klobig und extrem Noobunfreundlich.</p>
</blockquote>
<p>da bin ich voll bei dir. erhard: mach was für 'ne ARM-plattform. ich wette es gibt mehr ARM-basierte systeme auf der welt als PC(x86)-kisten.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
</blockquote>
<p>Ich könnt kotzen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    />, da +fricky recht hat <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1679917</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1679917</guid><dc:creator><![CDATA[Verärgerter Gast]]></dc:creator><pubDate>Sat, 14 Mar 2009 15:48:15 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenes OS? on Sat, 14 Mar 2009 16:16:27 GMT]]></title><description><![CDATA[<p>Verärgerter Gast schrieb:</p>
<blockquote>
<p>Ich könnt kotzen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    />, da +fricky recht hat <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<p>wie jetzt?!?<br />
ach ja, erhard: wie wär's mit 'nem OS für nintendo-DS? die plattform ist weit verbreitet, einigermaßen gut 'reverse engineered' und es gibt, meines wissens, bisher nur ein hobbyisten-OS dafür.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1679931</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1679931</guid><dc:creator><![CDATA[+fricky]]></dc:creator><pubDate>Sat, 14 Mar 2009 16:16:27 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenes OS? on Sat, 14 Mar 2009 17:15:16 GMT]]></title><description><![CDATA[<p>ARM, Nintendo DS etc. ist sicher sehr interessant, leider hat nicht jeder so etwas greifbar, vom Programmieren mal abgesehen. Die 80i86 Historie hat uns wirklich einen monströsen Wirrwarr als Kellerfundament hinterlassen. Da habt ihr völlig Recht. Aber umso größer die didaktische Herausforderung. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Ich versuche die Reihenfolge:</p>
<ol>
<li>Werkzeuge bereit stellen</li>
<li>Praktisches Arbeiten</li>
<li>Notwendiges Backgroundwissen praxisnah vermitteln</li>
<li>Experimentieren, um Auswirkungen zu zeigen</li>
</ol>
<p>einzuhalten.</p>
<p>Wenn man einsteigt, benötigt man z.B. zunächst nur das Wissen über CPU, Register und Interrupts. Das findet man heute alles ordentlich bei wiki ... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Das Mittel, das viele an der Hand haben, die am Internet hängen und Tutorials lesen, ist nun mal der 80i86 PC mit MS Windows.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1679974</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1679974</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Sat, 14 Mar 2009 17:15:16 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenes OS? on Sat, 14 Mar 2009 20:07:54 GMT]]></title><description><![CDATA[<p>Erhard Henkes schrieb:</p>
<blockquote>
<p>Das Mittel, das viele an der Hand haben, die am Internet hängen und Tutorials lesen, ist nun mal der 80i86 PC mit MS Windows.</p>
</blockquote>
<p>klar, aber du nutzt doch sowieso 'nen simulator (bochs) für deine experimente. dann könntest du auch 'nen simulator für eine interessante plattform verwenden, und nicht für dieses stokelige x86-gedöns.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1680049</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1680049</guid><dc:creator><![CDATA[+fricky]]></dc:creator><pubDate>Sat, 14 Mar 2009 20:07:54 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenes OS? on Sat, 14 Mar 2009 20:27:21 GMT]]></title><description><![CDATA[<p>das 'monströse Wirrwarr' machts aber gerade interessant.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1680071</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1680071</guid><dc:creator><![CDATA[&#x27;&#x27;]]></dc:creator><pubDate>Sat, 14 Mar 2009 20:27:21 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenes OS? on Sun, 15 Mar 2009 00:16:44 GMT]]></title><description><![CDATA[<p>@+fricky: Gegen dieses Argument kann man nur einwenden, dass nach der Emulation auch noch die echte Anwendung kommen sollte. Bei ARM fallen mir sofort z.B. Roboter und sonstige Elektronikanwendungen ein, ein schönes Thema, aber man kann nicht alles gleichzeitig machen.<br />
@&quot;: Ich denke, dass einige User, die mit dem PC unter MS Windows arbeiten, vielleicht einfach mal Lust haben, ein OS zum Ticken zu bringen. Das Entscheidende dabei ist die praktische Beherrschung des Themas, denn nur dann hat man die Kraft und Leidenschaft zum Experimentieren und Umsetzen von Ideen. Das ist der entscheidende Punkt, wo viele didaktische Ansätze stecken bleiben.</p>
<p>Im ersten praktischen Schritt habe ich den Mini-Kernel komplett bootbar in Sektor 1 geschrieben.</p>
<p>Im nächsten Schritt wird ein Bootloader in Sektor 1 vorgeschaltet, der den gleichen Mini-Kernel nun aus Sektor 2 lädt (BIOS INT für Floppy Disk) und im Speicher anspringt. Im Kernel wird dann lediglich die Boot-Signatur entfernt und die Segment-Adresse geändert.</p>
<p>Das ist technisch für den Ersteller einfach durchführbar:</p>
<p>nasm boot.asm -f bin -o boot.bin<br />
nasm kernel.asm -f bin -o kernel.bin<br />
copy /b boot.bin + kernel.bin myOS.img<br />
partcopy myOS.img 0 400 -f0</p>
<p>siehe: <a href="http://www.henkessoft.de/OS_Dev/OS_Dev1.htm" rel="nofollow">http://www.henkessoft.de/OS_Dev/OS_Dev1.htm</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1680098</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1680098</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Sun, 15 Mar 2009 00:16:44 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenes OS? on Sun, 15 Mar 2009 10:14:13 GMT]]></title><description><![CDATA[<blockquote>
<p>Bitte denken Sie daran, sich für solche Aufgaben entsprechende bat-Dateien zu schreiben, wenn Sie experimentieren.</p>
</blockquote>
<p>Habe das Tutorial mal kurz überflogen und das ist der Satz, der mich persönlich &quot;stört&quot;. Ich bin nämlich für den Einsatz von Makefiles. Man kann nämlich die Makefiles wie gewöhnliche Batch-Dateien schreiben mit dem Vorteil der &quot;automatischen&quot; Fehlerbehandlung:</p>
<pre><code>all:
    nasm boot.asm -f bin -o boot.bin 
    nasm kernel.asm -f bin -o kernel.bin 
    copy /b boot.bin + kernel.bin myOS.img 
    partcopy myOS.img 0 400 -f0
</code></pre>
<p>Sollte in der einen oder anderen Zeile ein Fehler auftreten, wird Makeprozess sofort abgebrochen... Bei Batch-Dateien müsste man mit unübersichtlichen goto's arbeiten, was dann schnell unübersichtlich wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1680263</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1680263</guid><dc:creator><![CDATA[abc.w]]></dc:creator><pubDate>Sun, 15 Mar 2009 10:14:13 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenes OS? on Sun, 15 Mar 2009 12:28:44 GMT]]></title><description><![CDATA[<p>Ich habe ganz früher mal einige kleinere Dinge gebaut: Bootloader + Kommandozeile + FAT-Dateisystem + Interpreter (Sah aus wie Assembler, wurde aber interpretiert...). Alles nur 16-bit Assembler mit rawwrite auf Diskette und dann gebootet. Für 32-bit und PMode hatte ich weder die Zeit, noch die Nerven. Die Dokumentation hat mir seinerzeit schon gereicht um zu wissen, dass ich es gar nicht erst versuchen sollte. Warum ich das gemacht habe? Aus Eigeninteresse, und um etwas neues zu lernen. Inzwischen würde ich mich sehr für 64-bit OS-development interessieren, doch wie gesagt habe ich keine Zeit^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1680353</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1680353</guid><dc:creator><![CDATA[*rant*]]></dc:creator><pubDate>Sun, 15 Mar 2009 12:28:44 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenes OS? on Sat, 28 Mar 2009 12:07:00 GMT]]></title><description><![CDATA[<blockquote>
<p>Ich bin nämlich für den Einsatz von Makefiles.</p>
</blockquote>
<p>Danke für diesen wichtigen Hinweis! Ich denke, zu Beginn erleichtert dies die Sache für einen Einsteiger nicht wirklich. Da lässt man ihn besser die einzelnen Befehlszeilen immer wieder in die Konsole hacken, damit er sich daran gewöhnt. Welches make.exe ohne notwendige DLL würdest Du denn einsetzen? Download-Link? Wo wird der Einsatz möglichst einfach beschrieben? Vielleicht überzeugst Du mich doch noch.</p>
<p>Das waren die Gründe, warum ich mich - zumindest für die ersten Schritte - für bat-Dateien entschieden habe. Langfristig geht dies natürlich nicht, aber momentan habe ich noch keine C-Toolchain im Einsatz. Es gibt nur nasm.exe und partcopy.exe.</p>
<p>Ich habe auch das img gegen bin getauscht, um nicht zu verwirren:</p>
<pre><code>nasm boot.asm   -f bin -o boot.bin
nasm kernel.asm -f bin -o kernel.bin
copy /b boot.bin + kernel.bin MyOS.bin
partcopy MyOS.bin 0 400 -f0
</code></pre>
<p>EDIT: Habe doch noch ein einfaches make.exe ohne DLL gefunden:<br />
<a href="http://www.steve.org.uk/Software/make/make.zip" rel="nofollow">http://www.steve.org.uk/Software/make/make.zip</a><br />
EDIT1: Bei den Bin-Tools von gcc 2.03 ist auch ein alleinstehendes make.exe dabei: <a href="http://www.osdever.net/downloads/compilers/DJGPP-Installer-nocpp.exe" rel="nofollow">http://www.osdever.net/downloads/compilers/DJGPP-Installer-nocpp.exe</a></p>
<p>Ich werde dies im Tutorial abändern, weil der Einsatz von make.exe / makefile langfristig wirklich der richtige Weg ist. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Ist als Alternative zu den bat-Dateien dargestellt, siehe<br />
<a href="http://www.henkessoft.de/OS_Dev/OS_Dev1.htm#mozTocId748324" rel="nofollow">http://www.henkessoft.de/OS_Dev/OS_Dev1.htm#mozTocId748324</a> (Kapitel 4.5.3)<br />
Praktisches Hindernis können die notwendigen Separatoren im makefile sein, aber gvim zeigt dies sehr gut durch fehlende bzw. vorhandene rote Schriftfarbe an.<br />
Ein Einstieg in den make-Prozess muss auf jeden Fall erfolgen. Da führt wahrlich kein Weg beim OS Development vorbei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1680395</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1680395</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Sat, 28 Mar 2009 12:07:00 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenes OS? on Sun, 15 Mar 2009 16:44:24 GMT]]></title><description><![CDATA[<blockquote>
<p>Bootloader + Kommandozeile + FAT-Dateisystem + Interpreter (Sah aus wie Assembler, wurde aber interpretiert...).</p>
</blockquote>
<p>bootloader + command-line interpreter ist nun vorhanden, zumindest im Real Mode. Einige Befehle und strcmp wurden bereits implementiert, damit man Experimente mit eigenen Befehlen leicht beginnen kann. Vielfach wird hier in Tutorials nur der Reboot eingebaut und man wird mit &quot;Go wild!&quot; oder &quot;Viel Spaß!&quot; alleine gelassen.<br />
Den Reboot haben wir mit &quot;exit&quot; natürlich auch schon. Ich hoffe, dass ich bisher alles möglichst verständlich und zum praktischen Nachmachen einladend dargestellt habe, sonst kann ich gleich aufhören. Diesbezüglich bitte ich um ernsthaftes Feedback.</p>
<p>Der Tipp mit dem make-Prozess wurde inzwischen umgesetzt. Danke!</p>
<p>Vielleicht könnt ihr auch über den Code schauen, denn bei einem OS sollte alles möglichst performant laufen.</p>
<p>@/rant/: Wenn Du Lust hast, kannst Du mich gerne unterstützen, soweit Du kannst.<br />
Hier steht nichts unter Zeitdruck. Didaktische Qualität und leichte Umsetzung ist wichtig und geht vor Quantität.</p>
<p>Die Umschaltung von RM nach PM übernehme ich gerne. Da knoble ich noch an der Didaktik.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1680460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1680460</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Sun, 15 Mar 2009 16:44:24 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenes OS? on Sun, 15 Mar 2009 20:18:35 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>habe mal aus Neugier das Tutorial &quot;durchgearbeitet&quot; (mit copy-paste natürlich ;)).<br />
Habe mit <em>bochs</em> folgende Erfahrung gemacht: Booten funktioniert auch mit von <em>nasm</em> erzeugten Binärdateien. D.h. man benötigt nicht unbedingt ein Diskettenlaufwerk oder sonstiges. In der <em>bochsrc.txt</em> reicht z.B. folgendes:</p>
<pre><code>floppya: 1_44=c:\BochsMyOS\MyOS.bin, status=inserted
</code></pre>
<p>Und die Datei <em>MyOS.bin</em> erzeugen wie immer:</p>
<pre><code>nasm.exe kernel.asm -f bin -o MyOS.bin
</code></pre>
<p>Finde ich schön, weil wer hat denn heutzutage ein Diskettenlaufwerk...</p>
<p>Und ein Problem habe ich mit meinem Makefile gehabt. Folgende Zeile wollte <em>make</em> irgendwie nicht akzeptieren:</p>
<pre><code>...
    copy /b bootloader.bin + kernel.bin MyOS.bin
</code></pre>
<p>Da kommt bei mir immer folgende Fehlermeldung:</p>
<pre><code>process_begin: CreateProcess(NULL, copy /b bootloader.bin + kernel.bin MyOS.bin, ...) failed.
make (e=2): Das System kann die angegebene Datei nicht finden.
mingw32-make: *** [OS3] Error 2
</code></pre>
<p>Und hier ein &quot;Workaround&quot;:</p>
<pre><code>...
    cmd /c copy /b bootloader.bin + kernel.bin MyOS.bin
</code></pre>
<p>Man muss also eine neue Instanz der Windows Befehlsinterpreters <em>cmd</em> starten und das eine Kommando übergeben. Warum auch immer. Aber wie dem auch sei, mein <em>Makefile</em> sieht jetzt so aus:</p>
<pre><code>all:
	@echo Please select target: OS1 or OS2 or OS3

OS1:
	@echo OS1 selected.
	rm -fv kernel.bin bootloader.bin MyOS.bin
	c:\nasm-2.06rc6\nasm.exe kernel.asm -f bin -o MyOS.bin
	@echo Ready.

OS2:
	@echo OS2 selected.
	rm -fv kernel.bin bootloader.bin MyOS.bin
	c:\nasm-2.06rc6\nasm.exe kernel2.asm -f bin -o MyOS.bin
	@echo Ready.

OS3:
	@echo OS3 selected.
	rm -fv kernel.bin bootloader.bin MyOS.bin
	c:\nasm-2.06rc6\nasm.exe bootloader.asm -f bin -o bootloader.bin
	c:\nasm-2.06rc6\nasm.exe kernel3.asm -f bin -o kernel.bin
	cmd /c copy /b bootloader.bin + kernel.bin MyOS.bin
	@echo Ready.

clean:
	rm -fv kernel.bin bootloader.bin MyOS.bin
</code></pre>
<p>Man kann also mit <em>make OS1</em> oder <em>make OS2</em> oder <em>make OS3</em> das eine oder andere assemblieren lassen...<br />
Ansonsten hat alles wunderbar funktioniert (unter <em>bochs</em>) <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> Bin gespannt auf <em>Protected Mode</em>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1680548</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1680548</guid><dc:creator><![CDATA[abc.w]]></dc:creator><pubDate>Sun, 15 Mar 2009 20:18:35 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenes OS? on Sun, 15 Mar 2009 21:56:04 GMT]]></title><description><![CDATA[<blockquote>
<p>habe mal aus Neugier das Tutorial &quot;durchgearbeitet&quot;</p>
</blockquote>
<p>Danke für den Test und das positive Feedback.</p>
<blockquote>
<p>floppya: 1_44=c:\BochsMyOS\MyOS.bin, status=inserted</p>
</blockquote>
<p>Darauf habe ich sofort im Tutorial als Alternative für das config-File hingewiesen.<br />
Heute gibt es wirklich kaum noch Floppy Disk Laufwerke. Aber es ist für viele Coder einfach ein tolles Gefühl, wenn man einen (alten) PC mit einem selbst gebastelten OS physisch von einer Floppy booten lassen kann. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Da ich selbst noch eines an meinem PC eingebaut habe, verwende ich es natürlich. Ich mag einfach dieses Klack-Geräusch und das aufleuchtende Lämpchen, wenn die Floppy angesprungen wird. Aber man muss mit der Zeit gehen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Danke für den &quot;Workaround&quot; bezüglich copy. Ich verwende noch Win XP. Vielleicht klappt es deshalb. Weiß eigentlich jemand wo dieses copy heutzutage auf der Platte steckt? In win/system32 habe ich es nicht gefunden.</p>
<p>Das ausgefeilte makefile wird sicher auch noch Verwendung finden, ich möchte aber nicht zu früh vom eigentlichen OS ablenken. Die Tools sind vor allem Mittel zum Zweck, und gerade beim Thema makefile blicken viele - durch die IDEs - nicht mehr durch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1680594</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1680594</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Sun, 15 Mar 2009 21:56:04 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenes OS? on Mon, 16 Mar 2009 11:36:08 GMT]]></title><description><![CDATA[<p>Hab's mal ueberflogen ... besonders die Codes:</p>
<p>1. Beispiel:<br />
Z. 19 (mov si, ...) ist ueberfluessig<br />
(Auf Kosten der Uebersicht haette man das und evtl. einiges Andere nat. insgesamt auch effizienter loesen koennen...)</p>
<p>Z. 103, 104 (mov ah, ...; mov al, ...) ist uebelste x86-Suende: sowas schreibt man wenn irgendwie moeglich immer auf einmal in das uebergeordnete Register (hier ax)</p>
<p>Z. 119, 120 das gleiche</p>
<p>Das strcmp koennte man IMHO nun aber wirklich effizienter machen:<br />
Z. 130 ist ueberfluessig. Vergleiche besser direkt al mit [di]<br />
&quot;cmp reg, 0&quot; kannst du gegen &quot;or al, al&quot; <a href="http://o.Ae" rel="nofollow">o.Ae</a>. tauschen (wie du es schon in print_string machst)<br />
ich bevorzuge da &quot;test reg, reg&quot;, AFAIR belegt das weniger Platz... Zumindest solltest du dich mal fuer eins entscheiden. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Es waere auch sinnvoller, das Ergebnis im Z-Flag zurueck zu geben. Das ist naemlich bei deinem Code so wie so schon 0, wenn eq und 1, wenn nicht eq... -&gt; Kram mit CF weg und nur ein Ruecksprung-Label. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Z. 96 wieder der 0-Vergleich...</p>
<p>Es waere uebrigens sinnvoll, die Initialisierung des Stacks nicht unter den Tisch fallen zu lassen.<br />
Ich bin mir nicht mal sicher, wo das BIOS den Stack anfangs hinzaubert. AFAIK gilt das als undefiniert. Da sollte man eigentlich nicht so einfach reinschreiben. Ein ueberwaeltigender Aufwand ist das nun wirklich auch nicht. Um dem Vorzubeugen: um das mov ss,.. und mov sp,.. gehoeren keine cli/sti, da man bei Intel so schlau war, bei &quot;mov ss, ... &quot; automatisch die Interrupts fuer die naechste Instruktion zu unterdruecken.</p>
<p>Den &quot;buffer&quot; haette man um Platz zu sparen zB. auch auf den Stack packen koennen.</p>
<p>Beispiel &quot;Bootloader&quot;:<br />
Z. 30: xor ax, ax waere kuerzer... (Z. 37 dito)<br />
Z. 41-45: Wieder direkt hintereinander 8Bit-Register mit Konstanten geladen: Boese!</p>
<p>insgesamt ist das nat. ein *sehr* rudimentaerer BL, aber ich gehe mal davon aus, das war beabsichtigt...</p>
<p>Beispiel in 4.5.2:<br />
IMHO wenig sinnvoll, es und ds in BL <em>und</em> Kern direkt hintereinander auf den selben Wert zu setzen. Das im Kern wuerde reichen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1680769</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1680769</guid><dc:creator><![CDATA[Nobuo T]]></dc:creator><pubDate>Mon, 16 Mar 2009 11:36:08 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenes OS? on Mon, 16 Mar 2009 13:26:31 GMT]]></title><description><![CDATA[<p>Erhard Henkes schrieb:</p>
<blockquote>
<p>Weiß eigentlich jemand wo dieses copy heutzutage auf der Platte steckt? In win/system32 habe ich es nicht gefunden.</p>
</blockquote>
<p>COPY ist als &quot;Funktion&quot; in der cmd.exe integriert. Ist deshalb nur verfügbar in einer Konsole.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1680840</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1680840</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 16 Mar 2009 13:26:31 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenes OS? on Mon, 16 Mar 2009 16:34:32 GMT]]></title><description><![CDATA[<p>Erhard Henkes schrieb:</p>
<blockquote>
<p>Mich würde mal interessieren, wer alleine oder mit anderen an einem eigenen OS entwickelt, zu welchem Zweck und in welcher Sprache (ASS, C oder C++)? Links?</p>
</blockquote>
<p>hab auf dos einen multitasking aufsatz gecodet, damit konnte ich dann unter dos mehrere programme gleichzeitig laufen lassen (und ein TSR was im hintergrund per timer interrupt 92mal in 5sekunden die tasks gewechselt hat, wenn ich das noch recht im kopf habe.<br />
hab ein game os in flat-memory-mode geschrieben, darin funktionierten die 16bit treiber usw. leider nicht, war damit man auf den ganzen speicher zugreifen konnte ohne XMM usw.<br />
fuer gameboy ein simples OS das mir noch erlaubt hat primitiv den speicher zu begutachten nach nem absturz.<br />
fuer ps3 hab ich nen simples OS erweitert damit ich andere aufloesungen und den zweiten ppu-thread nutzen kann. hab dann noch ein lightweith task system geschrieben. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1680975</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1680975</guid><dc:creator><![CDATA[rapso]]></dc:creator><pubDate>Mon, 16 Mar 2009 16:34:32 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenes OS? on Tue, 17 Mar 2009 19:49:08 GMT]]></title><description><![CDATA[<blockquote>
<p>Es waere uebrigens sinnvoll, die Initialisierung des Stacks nicht unter den Tisch fallen zu lassen.</p>
</blockquote>
<p>Ich hatte einen geschrieben, selbstverständlich ohne cli/sti, habe ihn aber im Tutorial gelöscht, weil es auch so lief (Didaktik ;)).<br />
Reicht es, wenn man den Stack erst im Kernel implementiert? Im BL (bewusst primitiv gehalten, weil ansonsten immer zu GRUB geraten wird) hat der Stack m.E. noch nichts zu suchen.</p>
<p>Die al/ah vs. ax Geschichte macht Sinn (werde ich abändern auf ax), weil wir auf jeden Fall nicht unter 16 bit anfangen müssen.</p>
<p>Welche Speicheradressen würdet ihr verwenden?<br />
0x0000:0x07C0 für den Bootloader ist klar<br />
0x1000:0x0000 für den Kernel?<br />
0x9000:0x0000 für den noch einzurichtenden Stack?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1681047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1681047</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Tue, 17 Mar 2009 19:49:08 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenes OS? on Mon, 16 Mar 2009 18:36:09 GMT]]></title><description><![CDATA[<p>Erhard Henkes schrieb:</p>
<blockquote>
<blockquote>
<p>Es waere uebrigens sinnvoll, die Initialisierung des Stacks nicht unter den Tisch fallen zu lassen.</p>
</blockquote>
<p>Ich hatte einen geschrieben, selbstverständlich ohne cli/sti, habe ihn aber im Tutorial gelöscht, weil es auch so lief (Didaktik ;)).<br />
Reicht es, wenn man den Stack erst im Kernel implementiert? Im BL (bewusst primitiv gehalten, weil ansonsten immer zu GRUB geraten wird) hat der Stack m.E. noch nichts zu suchen.</p>
</blockquote>
<p>Dafuer, dass er im BL &quot;noch nichts zu suchen hat&quot;, machst du aber doch regen Gebrauch davon. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Wenn du es ganz sauber haben willst, kannst du ihn im Kern nochmal an eine ausgekluegeltere Stelle verfrachten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1681052</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1681052</guid><dc:creator><![CDATA[Nobuo T]]></dc:creator><pubDate>Mon, 16 Mar 2009 18:36:09 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenes OS? on Mon, 16 Mar 2009 20:09:24 GMT]]></title><description><![CDATA[<pre><code>; set parameters for reading function
    ; 8-bit-wise for better overview
    mov dl,[bootdrive] ; select boot drive
    mov al,10          ; read 10 sectors
    mov ch, 0          ; cylinder = 0
    mov cl, 2          ; sector   = 2
    mov dh, 0          ; head     = 0
    mov ah, 2          ; function &quot;read&quot;
</code></pre>
<p>Das bleibt! Hier geht die Didaktik vor. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Ansonsten danke für die Tipps!<br />
Ich habe alle Helfer bereits &quot;namentlich&quot; im Tutorial erwähnt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p><a href="http://www.henkessoft.de/OS_Dev/OS_Dev1.htm" rel="nofollow">http://www.henkessoft.de/OS_Dev/OS_Dev1.htm</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1681105</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1681105</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Mon, 16 Mar 2009 20:09:24 GMT</pubDate></item></channel></rss>