== ISO mit GRUB 2 == grub-mkrescue ist ja eigentlich nicht dazu gedacht, sich eine ISO für sein OS zu erstellen. Mein GRUB2-ISO-Skript funktioniert eigentlich ganz gut, wäre es angebracht das entsprechend einzuarbeiten? Zumal man dann auch kein Problem hätte, die Daten nachträglich auf das Image zu schieben. [http://frostkernel.git.sourceforge.net/git/gitweb.cgi?p=frostkernel/frostkernel;a=blob;f=build/build_iso.sh;h=5c3af219a7a5d002bd45d0bf18c800491479666f;hb=HEAD Zum ansehen des Skripts hier klicken] [[Benutzer:TheThing|TheThing]] 11:23, 22. Jun. 2011 (CEST) == Warum GRUB == Ich finde der Teil >Warum Grub< sollte überarbeitet werden, da er meiner Meinung nach ein völlig falsches Bild vermittelt. Es wird behauptet, dass ein eigener Bootloader daran scheitere, dass dafür tiefergehende Assemblerkentnisse notwendig sein. Ich finde dieses Argument insoweit falsch, als dass ein Projekt Betriebssystem natürlich in jedem Fall tiefergreifende Kentnisse in einer Programmiersprache erfordert. In welcher Sprache die Kentnisse vorhanden (oder auch nicht vorhanden) sind, ist hier eigentlich egal. Weiterhin erschließt sich mir nicht, wieso ein eigener Bootloader fehleranfällig sei. (Oder fehleranfälliger als alle anderen Projekte des Unwissenden.) Der berühmte Fehler, des Loaders, der da nur ein paar Kilobyte lädt, kann einem Anfänger natürlich passieren. Was ist schlimm daran? Was sollte den Anfänger daran hindern die Lösung im Internet zu finden? Wenn der Bootloader ein neues Feature braucht kann ich das selbstredend auch anständig implementieren und nicht nur hinzufriekeln. Wenn GRUB jedoch das Feature nicht hat, kann ich kaum das Feature nachrüsten. Natürlich verschlingt ein eigener Bootloader viel Zeit. Der Kernal aber nicht? Und der Bootvorgang des X86 erfordert es nicht, das A20 einzuschalten. Augenscheinlich soll hier dem Leser das Bild suggeriert werden, dass man seinen Kernal in C im PM schreibt und dann von GRUB laden soll. Das ist ein Weg. Aber nicht der einzige. Beispielsweise habe ich mein OS ausschließlich in RM Assembler geschrieben. Hier wäre GRUB völlig sinnlos. Mein Bootloader passt in den 1. Sektor und stellt sämtliche Dateisystemfunktionen bereit. Diesen Weg kann man auch gehen. :Für einen Bootloader braucht man auf jeden Fall weitere Assemblerkenntnisse, als diese für den Kernel unbedingt nötig sind, vor allem muss man für einen Bootloader RM-Assembler können. Wenn man kein Assembler kann, sollte man keinen Bootloader schreiben (es sei denn, man will dabei Assembler lernen). Mehr steht im Artikel dazu auch nicht drin. :Da die Überschrift des Abschnitts „Warum GRUB?“ lautet, geht es bei „fehleranfällig“ darum, dass der eigene Bootloader fehleranfälliger als GRUB ist; nicht darum, dass er fehleranfälliger als der Kernel wäre. Die meisten Hobby-OS-Entwickler zumindest auf Lowlevel sind der Ansicht, dass einen Kernel zu schreiben das wichtigste oder zumindest das erste Ziel in der OS-Entwicklung sein sollte[citation needed]; wenn der Bootloader dann noch Mist baut, lenkt das nur unnötig ab. „Unnötig“, weil es nach Ansicht der meisten interessanter ist, einen Kernel als einen Bootloader zu schreiben. :Die Lösung zu so etwas im Internet zu finden gestaltet sich meist schwierig, da man erstmal das Problem an sich finden muss (was im Artikel als „schwierig zu debuggen“ beschrieben wird), und dann vermutlich nicht mal etwas relevantes findet, wenn man danach googelt (“Boot loader only loads first 64 kB” wird vermutlich keine schrittweise Anleitung zum Lösen des Problems liefern). Was man machen kann, ist, im Forum oder im IRC zu fragen; dort werden die Leute in Bezug auf Bootloader aber eher weniger hilfsbereit sein und einfach sagen „Nimm GRUB“. Deshalb nimmt der Artikel genau das vorweg. :Ich möchte darauf hinweisen, dass der Artikel im bewussten Abschnitt sogar aufzeigt, dass es Vorteile haben kann, einen eigenen Bootloader zu schreiben. Was der Abschnitt also tut, ist keineswegs zu behaupten, dass jeder GRUB benutzen muss; vielmehr suggeriert er einfach, wie du richtig sagst, GRUB zu benutzen, denn das ist eine weitverbreitete Meinung auf Lowlevel[citation needed]. :Wie gesagt, wenn jemand mit Problemen bei seinem eigenen Bootloader ins Forum oder ins IRC kommt, ist die Antwort im Allgemeinen einfach „Nimm GRUB“, weil es eben schwierig ist, Bootloader zu debuggen und es häufig kein allgemeines Rezept gibt. Außerdem ist es einfach so, dass viele, die einen Bootloader selbst schreiben, sich noch nicht sehr lange mit OS-Dev beschäftigt haben (Quelle: Erfahrung, und außerdem ich selbst). Das macht das Debuggen nicht gerade einfacher. Aus diesem Grund nimmt der Artikel genau diese Reaktion vorweg. Wir möchten niemanden ermutigen, seinen Bootloader selbst zu schreiben, wenn er dann bei Problemen einfach „Nimm GRUB“ gesagt bekommt. Ich persönlich halte es für besser, gleich GRUB zu empfehlen. Vielleicht wäre es besser, wenn wir Leuten, die Probleme mit einem eigenen Bootloader haben, einfach helfen würden. Weiß ich aber nicht, denn ich persönlich halte den Bootloader mittlerweile für ziemlich uninteressant. Alles, was der machen muss, muss auch der Kernel am Ende irgendwie machen. :Ähnlich dazu ist übrigens, dass wir fordern, dass die Leute C können, bevor sie einen Kernel in C schreiben. Das ist eigentlich ziemlicher Unsinn. Ein Kernel ist ein wunderbares Projekt, um C zu lernen (und ich bin nicht der einzige, der das sagt). Aber wir wollen vermeiden, dass im Forum oder im IRC Fragen zur Sprache C gestellt werden, weil das hier nicht die richtige Plattform dazu ist. Also sagen wir einfach, C muss man können, und dann ist klar, dass man sich Antworten dazu von woanders holen muss. :Zuletzt möchte ich noch darauf eingehen, dass du nicht findest, dass man seinen Kernel in C im PM schreiben sollte und im Zuge dessen sagst, das A20-Gate müsste beim Booten nicht eingeschaltet werden: Der RM ist obsolet, und seit der Einführung von UEFI ist es nicht mal unwahrscheinlich, dass er bald gar nicht mehr existiert. Um mehr als jedes zweite MB ansprechen zu können (was sich bei heutigen RAM-Größen durchaus als sinnvoll erweist), muss das A20-Gate eingeschaltet werden (wobei es heute teilweise schon fest eingeschaltet ist). Beides kann man ignorieren, wenn man will, aber das ist nunmal der Stand der Zeit seit zwei Jahrzehnten (oder mehr), und ich halte es für sehr sinnvoll, dieses Wiki daran auszurichten. :Zum Thema C: Der Artikel erwähnt nicht einmal, welche Sprache man zu verwenden hat, soweit ich das sehen kann. Man darf auch C++, D, Pascal, Sather, oder sogar Assembler für den Kernel benutzen. Die Annahme, die der einführende Abschnitt trifft, ist, dass man ein Betriebssystem mit einem Kernel im PM oder LM schreiben möchte. Dabei hilft GRUB, weil ein Bootloader meiner Ansicht nach kein Teil des Betriebssystems ist. :Ich möchte auch noch sagen, dass auch ich eine Menge Bootloader selber geschrieben habe und immer wieder Freude an 512-Byte-Spielereien finde. Ich glaube, wie es auch der Artikel sagt, dass man beim Schreiben eines Bootloaders (und eines Kernels) in Assembler eine Menge über die x86-Architektur lernt. Ich glaube allerdings auch, dass man C wunderbar bei der OS-Entwicklung lernen kann. Da müssen wir uns jetzt überlegen, ob das Wiki zielführend oder nicht ausgerichtet sein soll: Aktuell ist es recht zielführend. Was vermutlich auf lange Sicht nicht funktionieren wird, davon raten wir ab. Kernel in Sprachen außer C, ein eigener Bootloader, Real Mode… Das sind alles Dinge, die viele Leute ausprobiert haben, und die sich dann als nicht so gut erwiesen haben. Umgekehrt kann man das aber alles machen, wenn man Ahnung davon hat. Aber leider versuchen das auch Leute, die keine Ahnung haben, und das funktioniert dann eben häufig nicht so gut. Darauf könnten wir das Wiki aber auch ausrichten, und sagen, „Hey, da werdet ihr ein Jahr oder mehr dran sitzen, ihr werdet am Ende nichts funktionierendes haben, aber ihr habt eine Menge gelernt.“ So lief das für mich, und ich finde das auch gut so. Das wäre die nicht zielführende Variante. :Ich denke, Hobby-OS-Dev ist tatsächlich nicht zielführend. Am Ende hat fast niemand etwas wirklich benutzbares (Betonung auf „fast“), aber fast alle haben eine Menge gelernt. Aber das macht sich doof, wenn man das ins Wiki schreibt. Also bin ich eher dafür, dass da steht „Hey, nimm lieber GRUB, das funktioniert bei den meisten besser“ mit einer Notiz drunter, was man verpasst, wenn mans nicht tut, als dass da steht „Schreib erstmal einen eigenen Bootloader, bevor du dich für oder gegen GRUB entscheidest, dabei lernst du nämlich eine Menge“. :Vielleicht sollten wir eine dicke Notiz auf die Startseite packen, dass alle Vorschläge, wie man etwas zu tun oder zu lassen hat, subjektiv sind, und ausdrücklich empfehlen, dass man sich auch dagegen entscheiden kann. Nur sollte man dann keine Hilfe im Forum oder IRC erwarten (nicht, dass es sie auf keinen Fall gibt, aber na ja…). —[[Benutzer:XanClic|Clici McXan]] 15:05, 2. Mai 2015 (CEST)