Autor Thema: Total-Noob braucht hilfe  (Gelesen 5866 mal)

Pearly

  • Beiträge: 3
    • Profil anzeigen
Gespeichert
« am: 23. January 2005, 14:41 »
Hallo erstmal.

Ich habe mich mal versucht ein os zu proggen. Ich habe den Bootloader aus dem Tutorial von jay-code.de genommen und versucht ihn mit dem kernel von dem magazin (ausgabe 1) zu kombinieren. Also habe ich alles kompiliert und die Dateien (bootsec.bin & kernel.bin) auf eine formatierte Diskette kopiert. Aber als ich das dann ausprobieren wollte, kam nur eine Meldung 'Bitte entfernen Sie die Diskette. Zum Neustart eine beliebige Taste drücken' Hä? Da sollte doch etwas ganz anderes stehen?!

Ich hoffe ihr könnt mir helfen   :(

Pearly

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #1 am: 23. January 2005, 14:49 »
Mit einfachem raufkopieren geht das ja auch nicht, du musst die Daten mit rawwrite auf die Diskette schreiben(oder mit dd fals du Linuxer bist)

PS: Willkommen bei Lowlevel^^
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

Another Stupid Coder

  • Beiträge: 749
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 23. January 2005, 15:22 »
Vorallem aber schaltet TJays Bootloader doch in den Pmode oder?

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #3 am: 23. January 2005, 16:15 »
Nope er schaltet nicht in den PMode.
Er läd nur die Datei Kernel.bin, sofern im Root-Dir vorhanden, an Adresse 0x1000 führt diese Aus.
----------------------
Redakteur bei LowLevel

Another Stupid Coder

  • Beiträge: 749
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 23. January 2005, 16:46 »
Ja, sorry hatte mich getäuscht, wollte nicht für Verwirrung sorgen :)

Pearly

  • Beiträge: 3
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 23. January 2005, 18:45 »
Ersteinmal danke für die vielen antworten.
Aber wenn ich mit Rawwrite die bootsec.bin auf die Diskette kopiere, dann ist die Diskette doch gar nicht mehr formatier, also kann ich da nichts mehr einfach (per windows) draufkopieren?

Pearly

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #6 am: 23. January 2005, 19:19 »
Zitat von: Pearly
Ersteinmal danke für die vielen antworten.
Aber wenn ich mit Rawwrite die bootsec.bin auf die Diskette kopiere, dann ist die Diskette doch gar nicht mehr formatier, also kann ich da nichts mehr einfach (per windows) draufkopieren?

Pearly


du musst diesen bootloader in den 1. sector bekommen. da da aber der bootloader ist, kann man da mit einem filesystem nicht hinschreiben. und deshalb musst du es mit rawrite dahin schreiben. formatiert ist es dann schon noch, nurnimmer im sinne von windows, was da natürlich einen minibootloader drauf schreibt, der nur ausgibt, dass man damit net booten kann. aber die wichtigen teile (fattabelle, bootrecord), die sind ja auch teilweise im bootloader befinden (bootrecord) sind gleich, sodass das doch als formatiert gild.

EDIT: und noch einen "tipp" von mir: halte dich nicht zu lange im RM auf. wechsele am besten nachdem du ein bisschen geguckt hast in den PM, denn da ist fast alles anderst, und im endeffekt ist ein OS da sicherer.
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

Pearly

  • Beiträge: 3
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 24. January 2005, 14:47 »
Danke!

Ich werds mal ausprobieren  :D

Pearly

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #8 am: 24. January 2005, 16:55 »
Ich hab mit heute mal TJ's Bootloader geschnappt und ein wenig umgebaut^^
Er schaltet in den PMode, lädt also eine GDT und auch eine IDT.
Er kann jetzt insgesamt 3 Dateien laden (z.B kernel-datei, GDT-datei, IDT-datei), FAT12 natürlich
Nebenbei aktiviert er den Grafikmode 13h^^
Ausserdem hat man (zumindest für meinen Kernel) die Möglichkeit das Bootdevice mit an den kernel zu übermitteln.
Alles innerhalb von 512Byte^^
Falls jemand Interesse an diesem leicht getuneten Bootloader hat...^^
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #9 am: 24. January 2005, 17:10 »
Zitat von: Roshl
Ich hab mit heute mal TJ's Bootloader geschnappt und ein wenig umgebaut^^
Er schaltet in den PMode, lädt also eine GDT und auch eine IDT.
Er kann jetzt insgesamt 3 Dateien laden (z.B kernel-datei, GDT-datei, IDT-datei), FAT12 natürlich
Nebenbei aktiviert er den Grafikmode 13h^^
Ausserdem hat man (zumindest für meinen Kernel) die Möglichkeit das Bootdevice mit an den kernel zu übermitteln.
Alles innerhalb von 512Byte^^
Falls jemand Interesse an diesem leicht getuneten Bootloader hat...^^


wenn du ihn noch so a bisserl tunst, dass er noch den rechner nach verschiedenen VESA-Modi absucht, verschiedene modespezifische infos an den kernel schickt, und der reihe nach versucht, die nach prioritäten gegliederte modeliste mit der des PCs zu vergleichen, und den bestmöglichen zu setzen, dann währe das garnet mal so schlecht ;-)

ne, was ich damit sagen will ist, dass ich es sinnvoll finde, für ein OS gleich von anfang an VESA zu verwenden. was will ich mit textmode? oder mit vga! VESA ist ein halber standart, und wird einer werden. und da find ichs besser, gleich vesa zu benutzen, und die routinen, die man braucht halt hinzuwürgen... und das mit den mehreren dateien... naja, pack das lesen in ne funktion, mach 3 vars mit den namen und ruf die funktion 3x auf :-)

mfg

J!N
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #10 am: 24. January 2005, 17:52 »
Ich rufs ja auch 3mal auf ;)
Ging darum das der Loader etwas erweitert wurde.
Das mit VESA würde definitv nicht reinpassen. Es hat so schon mehrere Stunden gedauert, alles an Grösse zu minimieren. Denn alzu viel Codeplatz ist da nicht, nach FAT12 block usw bleiben nur 403 Byte übrig, hab schon reichlich Tricks verwendet, z.b. Code der schon abgearbeitet also Variable benutzt und sowas^^. Ich könnte zwar zusätzliche Sektoren da verwenden, aber da ist doch kein Reiz dabei^^
Ausserdem habe ich das nicht verwendet weil VESA bei mir nicht mehr geht sobald ich Paging an habe, da erscheint nichts mehr, kann ich machen was ich will.
Progge einen Gegenloader;) zum Lowlevelcontest, der irgendwann kommen wird kannste ihn ja einschicken;)
Du hattest doch mal gesagt im RM bleiben zu wollen oder? Hat dich auch nicht das Argument gestört dass der veraltet ist;)
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #11 am: 24. January 2005, 19:28 »
@roshl: nein, ich bin nach wie vor der meinung, dass man im RM ein gutes OS coden kann, und das der auch sicher ist, wenn man ein bisschen aufpasst, ich habe mir nur gedacht, dass ich gerne auch mal den PM ausprobieren würde und dann hab ich halt damit angefangen. außerdem hatte ich LowOS net richtig geplant, sondern einfach drauf losgeproggt, und stand dann vor der entscheidung, 1 1/2 jahre arbeit wegzuschmeißen, und HighOS anzufangen, oder net. und ich hab HighOS angefangen, auch, weil LowOS so gesehen "fertig" ist. es hat MT, Paging und sonstigen schnickschnack, das reicht mir.
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #12 am: 24. January 2005, 22:56 »
Ein OS ist niemals fertig.
Aber vieles aus dem RM kannst du für den PM benutzen, du musst lediglich einen Ersatz für die BIOS-Int's schaffen.
Mit MT meinst du Multitasking korrekt? Versuchs doch auch mit Multithreading, falls du Zeit hast;)
Nun ja sei es drum, 1 1/2 Jahre ist nicht viel, zumindest nicht im PM, da beist man sich dann an Sachen wie nem FDC die Zähne aus, im RM kein Problem, da verschwendet man keinen Gedanken daran.
Problem im RealMode ist du hast nur einen MB an Speicher mehr nicht. der FRM ist ein Bug und nicht wirklich mehr RealMode, ausserdem für mich nicht existent, da ein BUG.
Der RealMode bietet definitiv keine Plattform für ein sicheres OS. Ohne den Speicherschutz den der PM ermöglicht kann jedes Programm dein OS ohne weiteres überschreiben, und du hast nicht die geringste Möglichkeit etwas dagegn zu tun. Im PM ist das nicht so ohne weiteres möglich da Ring 3 Programme hardwaremässig nicht im Paging oder in den Deskriptoren rumpfuschen können, ausser der OS-Programmierer stellt sich saublöd an.
Falls du anderer Meinung bist, gib mir ein Binary deines OS, Header um ein Programm schreiben zu können und ich beweise dir, dass dein RM-OS sehr schnell geknackt ist.
PS: Ich war/bin immer noch Hacker und nehme Herrausforderungen gerne an.
Übrigens, das soll kein Flamewar ala Tanenbaum vs. Torvalds werden.
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

B.G.

  • Beiträge: 27
    • Profil anzeigen
Gespeichert
« Antwort #13 am: 24. January 2005, 23:51 »
Zitat von: Roshl
Ich hab mit heute mal TJ's Bootloader geschnappt und ein wenig umgebaut^^
Er schaltet in den PMode, lädt also eine GDT und auch eine IDT.
Er kann jetzt insgesamt 3 Dateien laden (z.B kernel-datei, GDT-datei, IDT-datei), FAT12 natürlich
Nebenbei aktiviert er den Grafikmode 13h^^
Ausserdem hat man (zumindest für meinen Kernel) die Möglichkeit das Bootdevice mit an den kernel zu übermitteln.
Alles innerhalb von 512Byte^^
Falls jemand Interesse an diesem leicht getuneten Bootloader hat...^^


Würd mich erlich gesagt mal interessieren, vor allem da ich es gerade mal schaffe im PN etwas bunten Text auszugeben... IDT hab ich mich noch nih mit beschäftigt würd's mir gern mal anschauen...

Achja, noch ne kleine Frage am Rande: Ist es möglich im RM den Bildschirm zu leeren wie mans ja oft im PM sieht... würd mich echt mal interessieren da ich, in meinem anderen OS gerne nach dem Login den Bildschirm leeren würd damit die Shell auf einer schönen frischen Seite ist...

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #14 am: 25. January 2005, 08:01 »
Zitat von: Roshl
Ein OS ist niemals fertig.
Aber vieles aus dem RM kannst du für den PM benutzen, du musst lediglich einen Ersatz für die BIOS-Int's schaffen.
Mit MT meinst du Multitasking korrekt? Versuchs doch auch mit Multithreading, falls du Zeit hast;)
Nun ja sei es drum, 1 1/2 Jahre ist nicht viel, zumindest nicht im PM, da beist man sich dann an Sachen wie nem FDC die Zähne aus, im RM kein Problem, da verschwendet man keinen Gedanken daran.
Problem im RealMode ist du hast nur einen MB an Speicher mehr nicht. der FRM ist ein Bug und nicht wirklich mehr RealMode, ausserdem für mich nicht existent, da ein BUG.
Der RealMode bietet definitiv keine Plattform für ein sicheres OS. Ohne den Speicherschutz den der PM ermöglicht kann jedes Programm dein OS ohne weiteres überschreiben, und du hast nicht die geringste Möglichkeit etwas dagegn zu tun. Im PM ist das nicht so ohne weiteres möglich da Ring 3 Programme hardwaremässig nicht im Paging oder in den Deskriptoren rumpfuschen können, ausser der OS-Programmierer stellt sich saublöd an.
Falls du anderer Meinung bist, gib mir ein Binary deines OS, Header um ein Programm schreiben zu können und ich beweise dir, dass dein RM-OS sehr schnell geknackt ist.
PS: Ich war/bin immer noch Hacker und nehme Herrausforderungen gerne an.
Übrigens, das soll kein Flamewar ala Tanenbaum vs. Torvalds werden.


ich weiß, dass der RM derartig unsicher ist, aber wenn man aufpasst, das man eben keine störenden programme drauflässt, dann kann es auch sicher sein. aber halt nur bis zu einem gewissen grad. ich hab nie gesagt, dass LowOS 100% einen angriff übersteht, aber wenn man aufpasst, dann kann es auch sicher sein ;-) zum FRM: FRM ist kein BUG. der wird sogar von Intel kommentiert! was du meinst ist der UnrealMode. der wird nicht kommentiert, und das is angeblich ein mode, der auf PM bau (paging, speicherschutz) und trotzdem Bios-Ints hat. keine ahnung, wie, aber ich habs mal gehört. aber viele schmeißen das zusammen ;-) kann man eigendich in einem VM86-Task im PM auch bios-ints benutzen?

mfg

J!N
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #15 am: 25. January 2005, 11:08 »
Ja kann man, deswegen baut man den V86 überhaupt erst ein.
Ist allerdings nich so einfach^^
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #16 am: 25. January 2005, 11:19 »
Und @B.G.
Wenn du den Grafikspeicher nullst (mit 0 überschreibst) ist logischerweise nichts mehrzusehen. Im RM kannst du das hier verwenden:

clearscreen:
pusha
push 0xB800 ;hier kann man auch mov ax,0xB800 mov es,ax schreiben
pop es           ;aber diese variante braucht weniger bytes und kann
                    ;schneller ausgeführt werden
mov cx,2000 ;das gilt allerdings hier nicht, hier würde es mehr brauchen
xor di,di        ;anstelle von mov di,0 wiedermal weniger bytes
xor ax,ax      ;
stosw
popa
ret

das gilt zumindest für den Textmodus, bei Grafik einfach Segment und Countregister anpassen^^
Ist cleaner 16Bit code, also auch nur 16 Bit Register.
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

 

Einloggen