Autor Thema: Assembler, C/C++, Pascal ??  (Gelesen 7499 mal)

schneida

  • Beiträge: 12
    • Profil anzeigen
Gespeichert
« am: 23. April 2008, 07:56 »
Hallo!

Also ich schreib jetzt dieses Thema zum zweiten Mal. Beim ersten mal hat es wohl meine Leitung oder das Forum gegesssen.  :roll:

Meine Frage: Welche Sprache bevorzugt ihr für euren Kernel und warum?

Ich hab bisher meinen ersten Kernel samt bootloader in Assembler geschrieben, was auch gar nicht so schwer war wie ich am Anfang dachte. Leider spinnt jetzt der Bootloader (obwohl ich nur Änderungen am Kernel vollzogen hab) und deshalb wollt ich jetzt umsteigen auf Grub. Dieser funktioniert auch allerdings bootet er den Kernel noch nicht richtig.

Ich könnte mir vorstellen, dass ich einen effektiveren Kernel (nicht von der Ausführungsgeschwindigkeit, sondern viel mehr im Verhältnis Code zu daraus Resultierender Leistung) erhalte und viel schnell komplexere Dinge programmieren kann. Mit Assembler muss ich ja wegen jeder Kleinigkeit 10-20 Befehle schreiben und dann hoffen das das funktioniert und außerdem jede Zeile kommentieren (da man sonst so was von schnell den Überblick verliert).
Die meisten Erfahrungen hab ich allerdings bisher unter Windows sowie Linux (Lazarus) mit Pascal gemacht. Deshalb wäre es für mich auch interessant den Kernel in Pascal zu schreiben.

Was bevorzugt ihr?

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 23. April 2008, 10:31 »
Hauptsache eine Hochsprache. Ob das dann C oder Pascal ist, spielt nicht die große Rolle. Viel wichtiger ist, daß du die Sprache und deinen Compiler gut kennst. Ein kleines Beispiel für einen Multiboot-Kernel in FreePascal habe ich ja ins Wiki gestellt, daran kannst du dich am Anfang orientieren.
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 #2 am: 23. April 2008, 12:17 »
Meine Frage: Welche Sprache bevorzugt ihr für euren Kernel und warum?
Ich persönlich bevorzuge C++, aber ansonsten gebe ich taljeth vollkommen Recht. Vielleicht noch einen Zusatz: Der Compiler (bzw. die gesammte Toolchain) sollte relativ gut unterstützt sein (für das was man machen möchte). zB. eignet sich FreePascal noch nicht sonderlich gut für x64, zumindest schließe ich dass aus den Problemen die Homix (stefan2005 hier im Forum afaik) damit hatte.
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

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 23. April 2008, 13:30 »
Es geht auch sehr gut mit Assembler alleine...Es gibt viele Hobby-OS die damit geproggt werden. Wahnsinnig mehr Zeilen braucht Assembler nun  nicht, vorallem nicht in OS-Dev... Die Nachteile liegen am schwersten bei fehlenden Datenstrukturen (z.B.), man muss diese halt "nachprogrammieren", kann sie dafür aber auch individueller für den jeweiligen Verwendungszweck gestalten...Genau das ist meiner Meinung nach auch der grösste Vorteil von ASM und jetzt nicht nur bei Datenstrukturen (halt auch mit etwas grösserem Aufwand verbunden)...

Wenn man ein OS macht und sagt, ich will alles, wirklich alles, was auf meinem Computer läuft, bis ins kleinste Detail selbst geplant und programmiert haben, dann sollte man ASM dazu verwenden, weil das halt einfach am nächsten zur Maschine ist...

Wegen dem Überblick und so....Du kannst dein OS nicht nur im Quelltext übersichtlich gestalten, sondern auch im Design...Ich zum Beispiel habe einen Mikrokernel mit 5 kloc geproggt und das sollte soweit möglich die logisch und somit auch zeilenmässig grösste Einheit in meinem System sein...Dannach werde ich für jede abtrennbare Einheit/Funktion ein eigenes Modul erstellen und somit das System trotz ASM übersichtlich halten...
Natürlich ist das langsam aber ich will mit einem Hobby-OS auch gar nicht gegen die Grossen konkurrieren. Ich will mich einfach davon abheben und mein Design hat auch gewisse Vorteile, die mir, falls sie andere "begeistern" mit etwas Glück mal eine kleine Userschaft und ein paar "Entwickler" bringen...

Kommentieren muss man sowieso, auch bei Hochsprachen, weil wenn du jetzt unzählige Stunden in dein OS investierst (und das wirst du wenn du es ernst meinst), dann ist es schade, wenn du in 20 Jahren trotz wieder neu entfachtem Interesse einfach nichts mehr damit anfangen kannst....


Gruss
Noooooooooos

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 23. April 2008, 13:53 »
zB. eignet sich FreePascal noch nicht sonderlich gut für x64, zumindest schließe ich dass aus den Problemen die Homix (stefan2005 hier im Forum afaik) damit hatte.
Ich glaube, die Probleme waren in erster Linie mit Win64. Aber Homix kann dazu sicher selber mehr sagen.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

jgraef

  • Beiträge: 67
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 23. April 2008, 14:42 »
Hi,

Ich benutze C zum programmieren meines Betriebssystems. Einige kleine Sachen sind natürlich in Assembler programmiert.

 

Einloggen