Autor Thema: Irgendwie geht der bootloader nicht...  (Gelesen 16026 mal)

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #20 am: 11. April 2005, 19:37 »
Zitat von: DarkThing
Du solltest bedenken das ist Leute gibt die ihr OS zu 100% in Assembler schreiben! Aber du musst ja net so der Asm-Freak werden. Im Prinzip reicht es wenn du den Bootsector in Asm schreibst und auch verstehst (das wird oft unterschätzt). Den Rest machst du dann in C oder C++.


ja, ich zum beispiel gehöre zur manschaft der deppen, die es sich besonderst schwer machen, weil sie eigendlich masuchisten sind :D:D:D
(achtung, ironie!)
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,...

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #21 am: 11. April 2005, 19:43 »
Ist zwar stellenweise wirklich masochistisch (Filesystem & alles was Verwaltung braucht also Fenster bei GUI usw. stell ich mir schrecklich vor) aber der Kernel belegt viel weniger Speicher, ist schneller und wenn man mal was mit den Binärfiles zu tun hat findet man sich in denen stellenweise sogar zurecht.

matthieuriolo

  • Beiträge: 226
    • Profil anzeigen
Gespeichert
« Antwort #22 am: 11. April 2005, 19:55 »
ich kanns mir ned wirklich vorstellen das C/C++ kernel grösser und langsamer sind... gibs da irgend eine erklärugn wieso? Sonst muss ich doch auch so nen machosischt werden  :lol:

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #23 am: 11. April 2005, 20:02 »
ASM ist fast genauso aufgebaut wie reine Maschinensprache (nur aufgebaut!), ein C Programm/Kernel hat praktisch keine Ähnlichkeit mit Maschinensprache (deshlab nenne man Sprachen wie C Hochsprachen). Der Compiler hat natürlich keine Vorstellung was der Code später tun soll, er übersetzt den Code einfach nur Zeile für Zeile. Es ist logisch das das nur sehr begrenzt gut geht, weshalb der Code langsamer und größer wird.

matthieuriolo

  • Beiträge: 226
    • Profil anzeigen
Gespeichert
« Antwort #24 am: 11. April 2005, 21:08 »
Mir sind gerade ein (2) paar sachen aufgefallen... Ich wollte die nachricht ändern wo sagt das es fehlgeschlagen is... error. Weiss zwar wieso aber hilft ja nicht viel ;) nun hab ich am schluss staht times 512-blabla einfach mal times 1024-bla geschrieben ... haut super nicht hin :P und ich glaube das es daran liegt das er beim kernel laden irgendwie sich selber auflistet oder so was... aber sicher bin ich mir ned...   ?

Und noch was. Er sucht ja nach dem kernel ABER wieso "KERNEL BIN"? wieso nicht klein geschrieben und ein punkt dazwischen?

jeb

  • Beiträge: 341
    • Profil anzeigen
    • http://www.jebdev.net
Gespeichert
« Antwort #25 am: 11. April 2005, 21:13 »
schau dir mal das FAT12 tut von TeeJay an. Dort steht folgendes: Der name wird nach der altbekannten 8+3 konvention angegeben wobei der punkt nicht mitkommt. das FAT12 Dateisystem unterscheidet nicht zwischen Gross- und Kleinschreibung.

mfg, jeb

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #26 am: 11. April 2005, 21:36 »
Unterscheiden tut es in gewisser weiße schon. Die Dateinamen werden GROß in das Verzeichnis eingetragen. Der Treiber muss halt dafür sorgen das intern nur mit Großbuchstaben gearbeitet wird.
----------------------
Redakteur bei LowLevel

linu(x)bie

  • Beiträge: 2
    • Profil anzeigen
    • http://www.primary-node.de
Gespeichert
« Antwort #27 am: 18. May 2005, 02:23 »
tach Leute

also ich hab mir mal die tuts von Teejay über das fat12 Dateisystem,
sowie über bootloader und kernel (lowlevel1) durchgelesen.

Und da brennen mir paar Fragen richtig krass auf der Seele:
1.)Wenn ich diesen (aus lowlevel1)bootloader und kernel auf die Diskette
mit rawrite (oder sonst was) schreibe, wird doch das Dateisystem (fat12) zerstört/überschrieben, oder?
2.)ich muss also einen Bootloader schreiben, welcher im Bootsector hinter den informationen des dateisystems [sector usw tabelle] steht, auf welchen dann der jmp befehl verweist?
3.)Bei den tut: "FAT12 Dateizugriff" ist doch solch ein bootloader (siehe 2.)
notwendig, oder? Schliesslich würde der 512byte grosse bootloder
(aus LowLevel1) den ganzen ersten (fat12-)bootsector überschreiben.

Falls die oberen Fragen/Behaubtungen stimmen gibts hier irgendwo bspcode solch eines bootloaders?
(wenn nicht, auch gut)

Für Eure Antwort wäre ich sehr dankbar

gruss :)

Another Stupid Coder

  • Beiträge: 749
    • Profil anzeigen
Gespeichert
« Antwort #28 am: 18. May 2005, 18:07 »
Nein, der Bootsector wird vom Dateisystem nicht gebraucht, das wäre doch viel zu umständlich...

__OS_coder

  • Beiträge: 69
    • Profil anzeigen
Gespeichert
« Antwort #29 am: 19. May 2005, 15:21 »
Hi,

1st
Die Größe des Bootloaders wird mit der Zeile
Zitat
times 512-($-$$)-2 db 0

auf 512 Bytes gepaddet. -2 deshalb, weil die Bootsignatur 0xAA55 ja noch ans offset 510 muss. Du kannst den Wert net einfach auf 1024 abändern, da der Bootloader von Teejay so ausgelegt ist, dass er in einen sector, nämlich den ersten der diskette passt.

2nd
Der Filename lautet "KERNEL  BIN" und nicht "kernel.bin", weil die FAT-Namenskonvention es so vorgibT!!

 

Einloggen