Eigenes OS?
-
@MrX: kannst Du dies bitte uebernehmen? (habe momentan keinen Rechner hier, nur mail-Zugang)
-
Hi,
Könnt ihr mir sagen mit welcher Toolchain ich das kompilieren muss ?
Ich habe das Tutorial von "http://www.henkessoft.de/OS_Dev/OS_Dev1.htm" ausprobiert, letztens mit Cygwin. Aber ich bekomme beim linken immer den Fehler "File format not recognized"
Und wenn ich statt 'aout' z.b. 'elf' nehme, heißt es "cannot perform PE operations on not PE files" und wenn ich 'bin' nehme kann ich keine externen Referenzen einsetzenHoffe ihr könnt mir helfen,
Lg Dark
-
Probiere bitte mal das angegebene DJGPP aus:
http://www.osdever.net/downloads/compilers/DJGPP-Installer-nocpp.exeBei späteren Versionen des Linkers ld gibt es Probleme mit Mischungen aus 16/32-Bit-Code.
http://www.henkessoft.de/OS_Dev/OS_Dev1.htm#mozTocId29572
Hinweis:
Ich empfehle diese DJGPP-Toolchain (gcc 3.1, ld 2.13, ...), da bei Einsatz der MinGW (GCC) Compiler Suite über Linker-Probleme mit dem in diesem Tutorial erfolgreich verwendeten NASM Output-Format a.out (assembler output)-Objektdatei-Format (inzwischen durch COFF und ELF abgelöst) berichtet wurde.Inzwischen wurde im zweiten Ansatz (siehe Teil 2 dieses Tutorials) ein Work-around gefunden:
http://www.henkessoft.de/OS_Dev/OS_Dev2.htm#mozTocId42018
http://www.c-plusplus.net/forum/viewtopic-var-p-is-1736328.html#1736328
-
Momentan haben wir eine "Durchhängephase". Niemand hat Zeit, Energie usw. genug, um ein so komplexes Projekt auf freiwilliger Basis weiter zu treiben. Auch solche Zeiten gehören dazu.
-
Glücklicherweise zieht es langsam wieder an. Großes Lob an die Developer, die PrettyOS in voller Blüte erhalten und sogar weiter verfeinern. Namentlich erwähnen möchte ich MrX, der nun ca. 1 Jahr bei diesem Thema dabei ist.
-
Wow. Ich habe die ersten Seiten überflogen und dachte nur "Was für ein endlos erscheinender Aufwand". Dennoch bleibt ihr anscheinend bei der Sache (wayne Flauten) und zeigt richtig Durchhaltevermögen!
Ich habe mich bisher nicht intensiv mit solchen Themen beschäftigt, aber es kann gut sein, dass ich das Tutorial Mal reinschauen werde. Und auch sonst großes Lob an euch
-
großes Lob an euch
Danke für das positive Feedback! Komm einfach dazu. OSDev hat den gigantischen Charme des völlig Ausgefallenen.
-
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).