Lowlevel

Lowlevel => Das Wiki => Thema gestartet von: lobby am 15. January 2006, 18:38

Titel: Wie soll anfangen ?!!?!
Beitrag von: lobby am 15. January 2006, 18:38
Also ich dähte und möchte mein eignes kleines Betriebsystem programmieren . Aber wie soll ich da am besten ran gehen ?!?! oder gibt es schon für schnelle , schon so fertige Kernel,Bootsektoren etc.: ?!? Wäre nett wenn ihr mir Tipps gebt  :roll:
Titel: Wie soll anfangen ?!!?!
Beitrag von: maumo am 16. January 2006, 13:29
wenn dann fragst du UNS ja? :evil:
Titel: Wie soll anfangen ?!!?!
Beitrag von: lobby am 16. January 2006, 13:49
Zitat von: maumo
wenn dann fragst du UNS ja? :evil:
Aus deine Zitat werde ich och net schlau- Aber O.k alsovon der Seite http://home.datacomm.ch/glarema/objectsos/sonstiges/downloads.htm hab ich nun "Nexos" downloadet und nun meine Frage wie bringe ich nun so hin , das ich (ihr könnt das ja mla das aus  Probiere mit RawWirte das disk.img auf Diskette zu kopiren http://uranus.it.swin.edu.au/~jn/linux/rawwrite.htm)) und nun wie kann ich so da daraus bilden ich damit nun noch das ic das mit einer Datei verknüpfen wo dann mein Betriebsystem wächst und wächst und so.
Titel: Wie soll anfangen ?!!?!
Beitrag von: Jidder am 16. January 2006, 23:59
Zitat von: lobby
Zitat von: maumo
wenn dann fragst du UNS ja? :evil:
Aus deine Zitat werde ich och net schlau

er bezog sich vermutlich auf
Zitat von: T0ast3r
wenn du irgendwann mal irgendeine frage hast, dann frag mich einfach ;)


den rest deines beitrags versteh ich nicht. nimm dir bitte die zeit und schreibe so, dass dich jeder versteht. ein guter anfang wären satzzeichen und zusammenhängende sätze. dann kann dir besser geholfen werden.
Titel: Wie soll anfangen ?!!?!
Beitrag von: lobby am 17. January 2006, 14:54
Also noch mal von Vorne : Also ich habe von http://home.datacomm.ch/glarema/objectsos unter Downloads , den Nexos herrunter geladen . So und nun wo ich es Entpackt und Gespeicher habe ich mit RawWirte das "img" auf Dikskette darauf gespeichert und nun meine Frage : Ich habe dort folgende Boot und Kernel Datei , wie kann ich jetzt , daraus mein Betriebsystem bilden ? Kann ich das ganz einfach nun eine C (++) Dtaei ranhängen oder wie. Jetzt verständliche oder immer noch net.
Titel: Wie soll anfangen ?!!?!
Beitrag von: urx_ am 18. January 2006, 19:53
Schreibst du deine Beiträge in einer anderen Sprache und lässt sie dann von einem Übersetzungsprogramm übersetzen? oO
Ich versteh immer noch kein Wort
Titel: Wie soll anfangen ?!!?!
Beitrag von: maumo am 18. January 2006, 20:09
das img beinhaltet den kernel, um deinen kernel drauf zu machen musst du ihn an die dateie kernel.bin linken und zusammen mit dem bootloader in eine datei schreiben => image.
Titel: Wie soll anfangen ?!!?!
Beitrag von: lobby am 18. January 2006, 20:19
Ich glaube , es kam noch net richtig an O.k Ich überlege mir mal ein neuen Text , ob ihr denn dann versteht ist die 2 Frage  :?:   :oops:
Titel: Wie soll anfangen ?!!?!
Beitrag von: SSJ7Gohan am 18. January 2006, 20:26
Du kompilierst deinen C++ Code mit einem Compiler wie GCC und fügst ihn zum Kernelimage dazu. Wir haben hier ein C++ Kerneltutorial. Um C++ nutzen zu können, musst du aber im Protected Mode sein. (Ein 32Bit Modus der CPU mit Speicherschutz usw.) (Einige Bootloader wie GRUB schalten automatisch in den PM, so das du nur wenig Assemblercode brauchst und sofort mit C++ weitermachen kannst)
Titel: Wie soll anfangen ?!!?!
Beitrag von: DarkThing am 18. January 2006, 20:37
Am besten liest du dir erstmal dieses Tutorial durch:
http://lowlevel.brainsware.org/index.php?pagename=tutorials&showtut_id=2#Kernel-Entwicklung%20in%20C%20(diesmal%20auf%20deutsch)
Dort werden die Grundlagen für das schreiben eines C-Kernel erklärt.
Im Tutorial direkt danach geht es um Grub, wenn du also nicht deinen eigenen Bootloader schreiben willst solltest du dir auch das ansehen.

Zuletzt gibt es noch dieses Tutorial:
http://www.osdever.net/bkerndev/index.php?the_id=90
Das ist auf English, aber dafür ziemlich gut verständlich und für Einsteiger einfach genial.
Titel: Wie soll anfangen ?!!?!
Beitrag von: lobby am 19. January 2006, 20:09
O.k noch mal so das ihr es kapiert . Und zwar zur Bessserung verständniss ein 3 Schritte :
1. Auf der Homepage http://home.datacomm.ch/glarema/objectsos kann man doch (Halb) FertigOS runterladen  .
2 . Es gibt unter "Downloaden"  so welche OS - woe ObjectOS oder LittleOS --> Meine 1. Frage Sind das scho fertige Betriebsystem - Wenn JA wie kann ich das nach meine WÜNSCHEN ändern d.h meine eigne Programm etc einfügen ?!?! Wenn NEIN was fäll da noch
3. Wenn ich dann , alles habe und so , wie kann ich ein Image auf der Diskette ??

Danke für eure mit Hilfe  :roll:
Titel: Wie soll anfangen ?!!?!
Beitrag von: jeb am 19. January 2006, 22:05
Hi!

Fertig ist relativ. Kommt drauf an, was du darunter verstehst. Meinst du mit deinen eigenen Programmen Programme, welche du in C++ oder C auf nem OS wie Linux oder Windows geschrieben hast? Diese funktionieren nur, wenn das OS bereits eine C/C++ Standard Lib hat.

Was macht das Thread überhaupt unter "Magazin"?

mfg, jeb
Titel: Wie soll anfangen ?!!?!
Beitrag von: lobby am 20. January 2006, 15:07
Zitat von: jeb
Hi!

Fertig ist relativ. Kommt drauf an, was du darunter verstehst. Meinst du mit deinen eigenen Programmen Programme, welche du in C++ oder C auf nem OS wie Linux oder Windows geschrieben hast? Diese funktionieren nur, wenn das OS bereits eine C/C++ Standard Lib hat.

Was macht das Thread überhaupt unter "Magazin"?

mfg, jeb
Zu dir als wenn so eine OS keine Lib hat kann ich ,also keine eignen Programme schreiben ?!?! Und nun och zu meiner andern Frage die ich auch gerne beantwortet haben möchte und zwar wie erzeige ich ein Image - Datei ??!!
Titel: Wie soll anfangen ?!!?!
Beitrag von: Jidder am 20. January 2006, 15:18
du legst mit vfd (http://chitchat.at.infoseek.co.jp/vmware/vfd.html) ein virtuelles diskettenlaufwerk an und richtest es entsprechend deinen wünschen ein. das image kannst du dann im emulator weiterverwenden (wobei da das virtuelle laufwerk u.u. besser ist) oder z.b. mit rawwrite auf eine echte diskette schreiben
Titel: Wie soll anfangen ?!!?!
Beitrag von: lobby am 20. January 2006, 15:34
Zitat von: PorkChicken
du legst mit vfd (http://chitchat.at.infoseek.co.jp/vmware/vfd.html) ein virtuelles diskettenlaufwerk an und richtest es entsprechend deinen wünschen ein. das image kannst du dann im emulator weiterverwenden (wobei da das virtuelle laufwerk u.u. besser ist) oder z.b. mit rawwrite auf eine echte diskette schreiben
Gibt es noch ein andere Methode ?!? und dann zur einer Frage , die auch unter gekommen ist Zu dir als wenn so eine OS keine Lib hat kann ich ,also keine eignen Programme schreiben ?!?! d.h Wenn ein fertiges OS ein Lib hat kann ich darein meine Programm tun oder wie läuft das ab :roll:  :idea:  :?:  Beantwortet biite mal diese 2 Fragen  :idea:  :?:  :roll:
Titel: Wie soll anfangen ?!!?!
Beitrag von: Jidder am 20. January 2006, 16:15
Zitat von: lobby
Gibt es noch ein andere Methode ?!?

ja. die sind mir allerdings nicht bekannt, bzw. fallen mir gerade nicht ein. aber die kriegst du sicherlich mit etwas experimentieren+googlen raus.

Zitat von: lobby
Zu dir als wenn so eine OS keine Lib hat kann ich ,also keine eignen Programme schreiben ?!?!

klar man kann programme ohne library schreiben.

Zitat von: lobby
d.h Wenn ein fertiges OS ein Lib hat kann ich darein meine Programm tun oder wie läuft das ab

ein os hat keine library. die library ist sache des compilers. und programme kann man in eine library normalerweise nicht tun, bzw es hat keinen sinn.
Titel: Wie soll anfangen ?!!?!
Beitrag von: jeb am 20. January 2006, 19:35
Zitat
Gibt es noch ein andere Methode ?!?

Da hat wohl UNIX wieder seine Vorteile. Datei erstellen und einfach mounten :lol:
Wenn du ein Dateisystem auf der Diskette haben willst (also dass du sie öffnen kannst), dann bleibt dir unter win wohl nix anderes übrig als das was PorkChicken gesagt hat. Wenn es aber einfach ein OS ohne FS (Dateisystem) Support ist, dann kannst du einfach ein image mit dem Assembler erstellen.

Zitat
Zu dir als wenn so eine OS keine Lib hat kann ich ,also keine eignen Programme schreiben ?!?!


Du codest C/C++ hast du gesagt oder? Ein primitives C-Programm sieht etwa so aus:
#include <stdio.h>

int main()
{
     printf("Hallo!");
     return 0;
}


Schon in der ersten Zeile beginnt das Problem: #include <stdio.h>
Das fügt ja an der Stelle im Programm die Datei 'stdio.h' ein. Was aber, wenn das OS diese Datei nicht hat? Dann kannst du dein Programm schomal in den Eimer werfen. Wenn diese Datei existiert, kommt das zweite Problem:

printf();

Wie du ja sicherlich weisst, muss eine Funktion (in diesem Falle printf) irgendwo implementiert (definiert) sein. Der Prototyp befindet sich in der Datei 'stdio.h'. Doch was genau 'printf()' macht, steht da nicht. In 'stdio.h' steht nur, wo man 'printf()' finden kann. Nämlich in der Standard-C-Library. Deshalb brauchst du die C-lib. Wenn das OS jetzt die C-lib nicht hat, weiss es nicht, was 'printf()' bedeutet und kann dieses Kommando auch nicht ausführen.

Zitat
Wenn ein fertiges OS ein Lib hat kann ich darein meine Programm tun oder wie läuft das ab


Programm wird gestartet. Es fängt an, und kommt zur Funktion 'printf()'. Jetzt guckt es nach, wo es die Funktion findet. 'stdio.h' sagt ihm, es sei in der Standard-C-Library. Das Programm macht also schnell einen Abstecher zur Standard-C-Library, führt die Funktion 'printf()' aus und kommt dann wieder zurück ins Programm. Keine Standard-C-Library, kein 'printf()'.

Ich hoffe das war jetzt einigermassen verständlich und nicht zu langatmig.

mfg, jeb
Titel: Wie soll anfangen ?!!?!
Beitrag von: lobby am 23. January 2006, 14:19
Irgendwie ist die Frage net richtig beantwortet, und zwar , wie kann ich ein "img-Datei erzeugen" also hab mit LittleOs runtergeladen und wie mache ich aus dem Ordner ein "img-Datei" und dann mit RawWirte auf die Diskette schreibe. Danke
Titel: Wie soll anfangen ?!!?!
Beitrag von: Jidder am 23. January 2006, 14:51
Entweder steht das in der Dokumentation von LittleOS oder du nutzt die Methode, die ich beschrieben habe.
Titel: Wie soll anfangen ?!!?!
Beitrag von: lobby am 23. January 2006, 16:03
Zitat von: PorkChicken
Entweder steht das in der Dokumentation von LittleOS oder du nutzt die Methode, die ich beschrieben habe.
Andre Frage , (aber danke , dann nehme ich dien Methode) ,   :arrow:  also wenn ich nun so ein OS Runterlade , wie kann ich mein Programm das die "Desktop" oberfläche zeigt , ein fügen, also das Hauptprogramm.
Titel: Wie soll anfangen ?!!?!
Beitrag von: jeb am 24. January 2006, 12:32
Du musst die Sourcen des OS entsprechend anpassen, sodass die Binärdatei (dein Programm) geladen und ausgeführt wird. Das ist von OS zu OS verschieden. Ich möchte dich aber noch darauf hinweisen, dass Programme, die unter Windows funktionieren mit grosser Wahrscheinlichkeit nicht auf diesem OS funktionieren.

mfg, jeb
Titel: Wie soll anfangen ?!!?!
Beitrag von: Ulrich am 26. May 2006, 10:24
Zitat von: PorkChicken
Zitat von: lobby
Zu dir als wenn so eine OS keine Lib hat kann ich ,also keine eignen Programme schreiben ?!?!

klar man kann programme ohne library schreiben.
Aus dem weiteren Thread folgere ich das nur Assembler-Programmierung ohne Lib ist. Richtig?
Titel: Wie soll anfangen ?!!?!
Beitrag von: stultus am 26. May 2006, 11:12
Man kann auch in C/C++ Progs ohne Lib schreiben, auch wenn es da wirklich empfehlenswert wäre sich eine zu basteln ^^ Gleiches dürfte für Pascal/Delphi gelten, oder allgemein alle Systemfähigen Sprachen. Problematisch sind nur Sprachen die fest auf irgendwelche bestimmten Libs zurückgreifen, z.b. die meisten Basic-Dialekte auf OpenGL und/oder SDL. Aber wer versucht schon dadrin was fürs eigene OS zu machen...