Autor Thema: FPU im Real Mode  (Gelesen 16118 mal)

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #20 am: 04. October 2010, 22:55 »
Und wann kommt dann nach deinen Plänen Multiboot dazu? Was meinst du mit Module? Die initrd für Linux?

Die Reihenfolge ist seltsam, aber wenn du meinst... Ich würde es mir mit diesem Zeitplan zutrauen (aber natürlich ohne die Workarounds, die ich in meinem Setup nicht brauche). Ob du es kannst, weiß ich nicht.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

Programm Noob

  • Gast
Gespeichert
« Antwort #21 am: 04. October 2010, 23:00 »
Multiboot ist wenn Linux geht schon drin. ELF auch.

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #22 am: 04. October 2010, 23:09 »
Linux ohne ELF geht auch schlecht. ;)

Also erstmal Multiboot, dann Linux, dann Multibootmodule?
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

Programm Noob

  • Gast
Gespeichert
« Antwort #23 am: 04. October 2010, 23:30 »
Ja also Linux erstmal nur der Kernel, und wenn das mit multiboot Modulen geht, dann sollte auch nen Vollständiges Linux gehen.

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #24 am: 04. October 2010, 23:52 »
Dir ist schon klar, dass Linux gerade kein Multibootkernel ist?

Für Linux gibt es ein relativ einfaches Bootmodell, welches du unter /usr/src/linux/Documentation/ findest. Der Kernel nimmt dir eine ganze Menge der Arbeit ab; auf anderen Architekturen ist es naturgemäß einfacher (ARM: Das Bootprotokoll besteht irgendwie aus einer Datenstruktur im Speicher, einem Zeiger darauf in einem Register, einer Kennziffer in einem Register und einem Sprung in den Kernel.)

Das sollte mMn (Workarounds mal weggerechnet) vor Weihnachten schaffbar sein. Achso, in dem Protokoll sind natürlich initrd und cmdline mit eingerechnet. Das zu trennen fände ich nicht zielführend. ;-)

Multiboot ist eine andere Baustelle, da darfst du auch gerne 3 Monate für einplanen - der Bootloader erledigt da eine Menge der Arbeit vorneweg.

Gruß

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #25 am: 05. October 2010, 00:06 »
Ja also Linux erstmal nur der Kernel, und wenn das mit multiboot Modulen geht, dann sollte auch nen Vollständiges Linux gehen.
Okay. Du schaffst es nicht bis Weihnachten, weil du dich erstmal eine Weile damit beschäftigen solltest, wie denn unterschiedliche Systeme eigentlich genau booten. ;)
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #26 am: 05. October 2010, 00:10 »
Multiboot ist eine andere Baustelle, da darfst du auch gerne 3 Monate für einplanen - der Bootloader erledigt da eine Menge der Arbeit vorneweg.
Nicht wirklich. Ich weiß es nicht mehr ganz genau, aber ich glaube, die erste Multiboot-Implementierung für qemu hat nicht mehr als maximal zwei, drei Tage gedauert.

Du darfst nicht vergessen, dass ein Bootloader, der ähnlichen Umfang wie GRUB benutzen will, die meisten Funktionen schon allein für sich selber braucht. Viel mehr als die Multibootstruktur in den Speicher legen und in den Kernel springen bleibt da auch nicht mehr, wenn Linux mal läuft.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

erik.vikinger

  • Beiträge: 1 277
    • Profil anzeigen
Gespeichert
« Antwort #27 am: 05. October 2010, 10:46 »
Hallo,


Wir werden es sehen. Ich habe grob geplant, das ich nach Weihnachten den Linuxkernel booten kann und ca 2 Monate danach die Module. Und nach weiteren 3 Monaten dann chainloading meines Windows.
Ist diese Planung sehr unrealistisch?
Es gibt hier ein paar wenige Leute denen ich das zutrauen würde (Namen nenne ich jetzt mal keine, ich selber gehöre da nicht dazu).
Ich schreib das mal ganz direkt: Dir traue ich das definitiv nicht zu. Wobei es natürlich schön wäre wenn Du mir (uns allen) das Gegenteil beweist.
Ein Boot-Loader der auf allen möglichen PCs zuverlässig arbeitet, mit allen möglichen und unmöglichen BIOS-Eigenheiten zurecht kommt und dann noch so tolle Features wie klein (das unsinnigste Deiner Ziele), GUI (nett aber nicht zwingenst erforderlich) und Multiboot bietet ist schon ein hartes Stück Arbeit. Wenn die qemu-Leute (beachte den Plural) es in ein paar Tagen hinbekommen haben eine zusätzliche Spec zu implementieren dann ist das IMHO vor allem einer sauberen und flexiblen Code-Basis zu verdanken und gerade dafür braucht man schon einiges an Erfahrung. Ich bezweifle das ein Boot-Loader die richtige Gelegenheit ist diese Erfahrung zu sammeln.

Meine ehrliche Empfehlung ist: schließe Dich einem vorhandenen Projekt an und lerne erstmal!


Grüße
Erik
« Letzte Änderung: 05. October 2010, 11:21 von erik.vikinger »
Reality is that which, when you stop believing in it, doesn't go away.

Programm Noob

  • Gast
Gespeichert
« Antwort #28 am: 05. October 2010, 12:05 »
Also ich habe im Bereich OS-DEV einiges an Erfahrung. Ich werde mein bestes geben, euch zu beweisen, das ich es kann.

PNoob

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #29 am: 05. October 2010, 12:08 »
Wenn die qemu-Leute (beachte den Plural) es in ein paar Tagen hinbekommen haben eine zusätzliche Spec zu implementieren [...]
Ich glaube der Vergleich zwischen qemu und einem eigenen Bootloader in Bezug auf die Multiboot-Spec hinkt gewaltig, da qemu zum einen (afaik) sowieso einen elf-Loader hat und zum anderen einiges einfacher an die nötigen Infos für die Multibootstruktur rankommt. Abgesehen davon ist qemu C-Usermodecode und kein 16Bit-mit-BIOS-Frickelassemblercode.
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #30 am: 05. October 2010, 12:52 »
Also ich habe im Bereich OS-DEV einiges an Erfahrung.
Nein.

Ich glaube der Vergleich zwischen qemu und einem eigenen Bootloader in Bezug auf die Multiboot-Spec hinkt gewaltig, da qemu zum einen (afaik) sowieso einen elf-Loader hat und zum anderen einiges einfacher an die nötigen Infos für die Multibootstruktur rankommt. Abgesehen davon ist qemu C-Usermodecode und kein 16Bit-mit-BIOS-Frickelassemblercode.
Er hinkt nicht so furchtbar gewaltig: Ein Bootloader, der schon Linux laden kann, hat auch einen ELF-Loader. Und der qemu-Multibootloader ist auch nur ein ROM, der 16-Bit-mit-BIOS-Frickelassemblercode enthält. Der Kernel und die Module bzw. initrd lädt er über eine qemu-spezifische Schnittstelle, aber beispielsweise für die Memory Map benutzt er die ganz normalen BIOS-Funktionen (e820 und so). Theoretisch ist das ein Mechanismus, der sich in richtiger Hardware nachbauen ließe.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #31 am: 05. October 2010, 12:59 »
Also ich habe im Bereich OS-DEV einiges an Erfahrung.
Nein.
full ack.

Zitat
Er hinkt nicht so furchtbar gewaltig: Ein Bootloader, der schon Linux laden kann, hat auch einen ELF-Loader. Und der qemu-Multibootloader ist auch nur ein ROM, der 16-Bit-mit-BIOS-Frickelassemblercode enthält. Der Kernel und die Module bzw. initrd lädt er über eine qemu-spezifische Schnittstelle, aber beispielsweise für die Memory Map benutzt er die ganz normalen BIOS-Funktionen (e820 und so). Theoretisch ist das ein Mechanismus, der sich in richtiger Hardware nachbauen ließe.
Oh ok, dann habe ich den Patch falsch eingeschätzt. Ich hätte erwartet, dass das alles im qemu-Code gemacht wird, nicht in einem ROM.
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #32 am: 05. October 2010, 16:15 »
Multiboot ist eine andere Baustelle, da darfst du auch gerne 3 Monate für einplanen - der Bootloader erledigt da eine Menge der Arbeit vorneweg.
Nicht wirklich. Ich weiß es nicht mehr ganz genau, aber ich glaube, die erste Multiboot-Implementierung für qemu hat nicht mehr als maximal zwei, drei Tage gedauert.
Das hab ich nicht geschrieben. ;-) Ich meinte, dass Programm Noob dafür 3 Monate einplanen kann. Ohne mich mit der Multibootspec jetzt tiefgründig befasst zu haben, glaube ich, dass sie schwieriger zu implementieren ist als nativer Linux-Support.

Workarounds sind wahrscheinlich das härteste von allem, das habe ich dazu noch rausgerechnet. Im Gegensatz zu Programm Noob darf Qemu sich übrigens über eine zuerlässige (oder zumindest bekannte) BIOS-Implementation freuen... das vereinfacht Multiboot extrem.

Gruß

DerHartmut

  • Beiträge: 236
    • Profil anzeigen
    • Mein Blog
Gespeichert
« Antwort #33 am: 06. October 2010, 10:33 »
Also ich habe im Bereich OS-DEV einiges an Erfahrung.
Nein.
full ack.
+1

Mal ganz ganz doof gefragt: Wer soll später eigentlich von deinem "NandOS-Loader" (sic!) Nutzen haben? Soll das lediglich ein PoC deines "Könnens" sein, möchtest du damit dein Betriebssystem NandOS laden, soll der OS-Dever an sich das benutzen oder soll das ein Generel-Purpose-Lader werden?

Ansonsten würde ich dir einfach raten, deine Ziele nicht zu hoch zu stecken. Dass du einen Bootloader/manager schreibst ist deine Sache, du lernst mit Sicherheit etwas daraus. Was du daraus lernst weiß ich zwar nicht, aber mit Sicherheit irgendwas.

Ansonsten kann ich mich leider nur der Meinung von erik anschließen: Lerne etwas. Du hast imvvvvho keine Erfahrung im OS-Dev bzw. nicht annähernd genügend (und nein, ich vergleiche dich nicht mit einem Profi wie taljeth, ich vergleiche dich mal mit jemandem wie SHyx0rmZ) und was allgemeine Programmierung und Programmkonstrukte angeht hinkt dein Wissensstand auch oft hinterher.

Nimm das Ganze aber jetzt nicht persönlich und fasse das bitte nicht als "bashing" auf, es sind halt nur gut gemeinte Ratschläge. Du steigerst deine Reputation eben nicht dadurch, dass du hier einen auf Profi machst aber eigentlich keiner bist.

Übrigens: http://tldp.org/LDP/LG/issue70/ghosh.html und http://www.ibm.com/developerworks/linux/library/l-linuxboot/ sind gute Anlaufadressen, um sich in den Bootprozess von Linux einzuarbeiten.

« Letzte Änderung: 06. October 2010, 10:38 von DerHartmut »
$_="krJhruaesrltre c a cnp,ohet";$_.=$1,print$2while s/(..)(.)//;
Nutze die Macht, nutze Perl ;-)

erik.vikinger

  • Beiträge: 1 277
    • Profil anzeigen
Gespeichert
« Antwort #34 am: 06. October 2010, 10:47 »
Hi,

ich vergleiche dich mal mit jemandem wie SHyx0rmZ
Hm, ist das jetzt eine Aufwertung von Programm_Noob oder eine Abwertung von SHyx0rmZ? :-D

SCNR
Erik
Reality is that which, when you stop believing in it, doesn't go away.

DerHartmut

  • Beiträge: 236
    • Profil anzeigen
    • Mein Blog
Gespeichert
« Antwort #35 am: 06. October 2010, 13:09 »
Um es deutlich zu machen:

taljeth > ShyX0rmZ > Programm_Noob.
« Letzte Änderung: 06. October 2010, 13:13 von DerHartmut »
$_="krJhruaesrltre c a cnp,ohet";$_.=$1,print$2while s/(..)(.)//;
Nutze die Macht, nutze Perl ;-)

 

Einloggen