Eigenes OS?
-
Ich hab mir den Thread nicht komplett durchgelesen, aber dein Tutorial find ich bisher echt richtig gut. Ich habe mich schonmal kurz mit Assembler beschäftigt, dann aber mangels an Verständnis wieder abgebrochen. Bin dann letztens doch wieder auf die Idee gekommen mal ein eigenes kleines OS zu schreiben, da mir kein Projekt( normales Programm ) mit C/C++ eingefallen ist was mich motiviert hat. Ich wollt nicht was machen wo ich recht schnell fertig bin, sondern was wo länger geht und wo ich auch immer weiter ausbauen kann, was aber gleichzeitig auch weiterhin motiviert und mir viel bringt( in Bezug auf lernen ). Dadurch kam ich dann wieder auf die Idee mich mit Assembler und anschließend mit der OS-Entwicklung zu beschäftigen, dabei bin ich dann über dein Tutorial gestoßen und arbeite es gerade durch und es ist echt top. Werds jetzt erst mal durcharbeiten und dann selbst weiter am Ball bleiben;-)
Lg freeG und danke für das super Tutorial;-)
-
Hi fr33g (netter Name),
stosse doch einfach zu unserer Truppe dazu.Im Mai starten wir mal wieder richtig durch.
Ich melde mich im ICQ demnaechst.
-
Wir suchen weitere Entwickler zur Verstärkung: http://www.c-plusplus.net/forum/286721
-
Hallo ihr fleißigen Entwickler!
Hab per google das Tutorial gefunden... Ersmal riesen Lob: So ein schweres Thema so einfach erklärt!
Naja auf jeden Fall haben die ersten Teile noch gut funktioniert... Dann wurde der C-Kernel eingeführt und da fingen meine Probleme an...
Auf jedenfall kommt was ich auch mache bei dem Linker die Fehlermeldung:
"kernel.o: file not recognized: File format not recognized"
Hier genaueres:GNU ld (GNU Binutils) 2.21
Supported emulations:
i386pe
using external linker \1:OUTPUT_FORMAT("binary")
ENTRY(RealMode)
SECTIONS
{
.text 0x8000 : {
*(.text)
}
.data : {
*(.data)
}
.bss : {
*(.bss)
}
}==================================================
attempt to open kernel.o succeeded
opened script file kernel.o
kernel.o: file not recognized: File format not recognizedBezieh mich hierbei auf Kapitel 1 des Tutorials.
Ich meine abc.w hatte auf Seite 13 vom selben Problem berichtet. leider hat seine Lösung bei mir irgendwie nicht funktioniert.
Könnte irgendeiner mir erklären wie ich das Problem wegkriege?? Bin wahrscheinlich einfach zu doof dafür......MfG fishat64
p.s. Ich bitte meine Rechtschreibung zu entschuldigen!
-
Entwickelst Du unter Windows oder Linux?
Wenn unter Windows:
Du musst einen ld für ELF-Dateien verwenden (gibts hier: http://www.lowlevel.eu/wiki/Crosscompiler_für_Windows). Das "Supported emulations: i386pe" sieht für mich danach aus, dass du einen LD für Windows-Binaries verwendest.
-
Super!!! Funktioniert!
Vielen vielen Dank!!
MfG fishat64
-
So ein schweres Thema so einfach erklärt!
Freut mich, dass Du das so siehst, denn dies war genau mein Ziel.
Allerdings wird das Thema OSDev rasch komplex, auch bedingt durch die manuelle Nutzung aller Tools. Man lernt dabei aber eine Menge, vor allem Beharrlichkeit und Tiefgang.So einfach also manche Wegstrecke ist, OSDev bietet immer wieder harte Hürden, aber genau dafür habe ich "PrettyOS" als konkretes Beispiel für ein Hobby-OS-Projekt, zuerst alleine später mit anderen zusammen, entwickelt. Im Team kommt man eher vom toten Punkt weg hin zu einer Lösung. Es gibt aber auch Gebiete, da bleibt man ziemlich einsam, so hart das auch sein mag. Das sind dann wirkliche Herausforderungen.
-
Das Thema "Netzwerk" ist wieder voll in die Gänge gekommen. Ein neuer "developer", der professionelles know-how mitbringt, hat unser Team verstärkt. PrettyOS hat die Durststrecke hinter sich gelassen. Solche Phasen gibt es bei vielen Projekten, wahrlich kein Grund aufzugeben, sondern erst recht beharrlich zu bleiben.
-
Wenn ich mich jetzt bei der OS-Entwicklung auch anmelden würde, würdet ihr mich dann erstmal über die OS-Entwicklung belehren? Assembler habe ich gestern angefangen.
-
Hast Du bereits einige Tutorials durchgearbeitet?
http://www.henkessoft.de/OS_Dev/OS_Dev1.htm
http://www.lowlevel.eu/wiki/OS-Dev_für_Einsteiger
http://www.jamesmolloy.co.uk/tutorial_html/index.html (James Molloy auf Basis eines älteren Tutorials)
http://www.brokenthorn.com/Resources/OSDevIndex.html (BrokenThorn Entertainment, Co. )Am besten kommst du in den Chat: IRC-Server: irc.euirc.net Channel: #PrettyOS
(hierzu ist "Nettalk" als client empfehlenswert)
-
PrettyOS steht wieder in voller Blüte. An allen Ecken wird gewerkelt.
-
Nach erfolgreichem DHCP Discover - Offer - Request - ACK können wir erneut einen Meilenstein im Netzwerkbereich bei TCP/IPv4 vermelden:
http://www.c-plusplus.net/forum/p2078200#2078200 TCP 3-way-handshake SYN - SYN/ACK - ACK
http://compsec.org/security/images/pentesting/3way.jpg
http://ironbark.bendigo.latrobe.edu.au/subjects/DC/lectures/17/tcp-handshake.pngDas sind die freudigen Momente bei OSDev.
-
Nach dem "passive open" ist nun auch das "active open" gelungen. Dabei senden wir das SYN und das ACK.
Der Datentausch gelingt bereits gut, z.B. sowohl als telnet Client als auch als Server. Server kann PrettyOS sein mit telnet als Client, oder auch umgekehrt mit PrettyOS als Client und dem telnet dienst (in Win XP) als Server bzw. einem selbst geschriebenen Server (z.B. dem von MrX).
-
PrettyOS goes to Internet. Wir haben es geschafft!
http://www.c-plusplus.net/forum/p2080542#2080542Das ist ein besonderer Moment, wenn das selbst geschaffene TCP-Modul es schafft, dem Router die Verbindung zum Internet zu entlocken.
Hier geht ein besonderer Dank an unseren Chef-Tester Cuervo, der uns den Link zu diesem herrlichen "Starwars"-Telnet-Server gab.
EDIT: Nun geht auch das "Ziehen" einer HTML-Seite: http://www.c-plusplus.net/forum/p2080629#2080629
tcp_send(connection, "GET / HTTP/1.0\r\nHost: www.henkessoft.de\r\n\r\n", strlen("GET / HTTP/1.0\r\nHost: www.henkessoft.de\r\n\r\n"), ACK_FLAG, connection->tcb.SND_NXT, connection->tcb.SND_UNA);
-
Heute ist gelungen, eine kleine Netzwerk-API zum Laufen zu bekommen.
Das erste User-Programm zieht die Daten von dem bekannten telnet-Server:
http://www.c-plusplus.net/forum/p2084431?sid=e87c6e3575b25c6a7266509a9b3b2cf8#2084431
-
Heute ist gelungen, dass sich ein User-Programm aus PrettyOS heraus in den IRC "einwählte" und sich in die Kanäle #PrettyOS und #Lost einloggte.
Wieder ein kleiner Meilenstein. Gerade die Nutzung des Internets macht wirklich Laune, und man lernt die einzelnen Anwendungen und Abläufe hierbei detailliert kennen. Wer Netzwerk bei OSDev macht, der kennt sich wirklich aus.
-
ich wollt das ganze mit Netzwerk ja mal testen ,
nur hier auf dem PC läuft das fertige Image mit Bochs und Qemu nicht mehr richtig, und neu builden lässt sich das ganze auch nicht
der andere computer (laptop) lief gerade bei Bochs 'so nen bischen' heiß,
dann bin ich da auch nicht zu gekommen.
-
@neuer_user: jeder Anfang ist nicht hürdenfrei, dafür aber immer spannend. Also am Ball bleiben. Wir helfen gerne.
-
Wie wichtig und nützlich jedes einzelne Modul sein kann, erkennt man z.B. bei der Protokollierung ausgewählter TCP-Paketdaten über die serielle Schnittstelle in ein File mittels serial_log. Thx to Cuervo für den Einbau dieses Serial-Moduls. MrX hat es heute printf-analog adaptiert. Damit kann man hervorragend arbeiten und das OS im Hintergrund debuggen.
-
Heute hat MrX seine Überarbeitung der VBE-Shell (Original stammt offenbar von internet) präsentiert. Ein weiterer Meilenstein in der Geschichte von PrettyOS.
Sein Kommentar im chat:
<ehenkes>MrX: tell us a little bit about about your vbe ideas
<MrX>I would like to create an interface that covers all graphical output inclusive text output.
<ehenkes>w/o windows?
<MrX>The aim is, to be able to use any graphics device to use PrettyOS.
<MrX>At the moment, windows are not supported, but support can be added.