tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
1175
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    simon1997 simon1997 ist offline Rookie
    Registriert seit
    Mar 2011
    Beiträge
    5
    Hallo, wie mache ich ein Betriebssystem aus Assembler und Pascal?

    Das vieleicht so aussieht:

    Quelltext:
    PROGRAM Betriebssystem;
    USES Crt;
    BEGIN
    Write ('Hallo, das ist ein Betriebssystem. Bitte drücken sie eine Taste zum Herunterfahren');
    ReadKey;
    END.
    Gebootetes OS:

    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    a a
    aHallo, das ist ein Betriebssystem. Drücken sie eine Taste zum Beenden a
    a a
    a a
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

    Ich habe das Schon gefunden, aber ich möchte ja nicht nur einen Kernel haben, und ich verstehe nicht, wie ich das machen soll.

    Danke schonmal


    Simon1997
    Geändert von simon1997 (18.03.11 um 13:06 Uhr)
     

  2. #2
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Willkommen bei tutorials.de

    Es tut mir ja Leid, dich enttäuschen zu müssen, aber das wird nichts.

    Ich kenn mit mich Pascal zwar nicht aus, aber
    Ich habe das Schon gefunden, aber ich möchte ja nicht nur einen Kernel haben, und ich verstehe nicht, wie ich das machen soll.
    zeigt irgendwie, dass dir der Umfang deines Vorhabens nicht ganz klar ist.

    Zur Aufklärung: Der sog. Kernel ist die Basis/der Kern eines Betriebssystems; ohne dem wird nichts anderes laufen.
    Wenn du nicht nur einen Kernel willst: Gut, aber als erstes den Kernel, dann alles andere.

    Jedenfalls: Anleitungen, wie du mit C&Asm einen Kernel baust, lassen sich auf andere Sprache, deren Compiler "echten" Maschinencode generieren, übertragen.
    Kompilieren und dann mit übersetzten Asm-Teilen zusammenlinken.

    Gute C-Kenntnisse sind fürs Anleitung-Lesen natürlich nicht verkehrt;
    ich kenn nämlich keine Anleitung mit Pascal. Immer nur C,C,C.

    Gruß
    Geändert von sheel (18.03.11 um 15:04 Uhr) Grund: Tippfehler in der Überschrift
     

  3. #3
    simon1997 simon1997 ist offline Rookie
    Registriert seit
    Mar 2011
    Beiträge
    5
    Ich habe das bei lowlevel gesehen.
    Es würde reichen,wenn mir das wer erkleren würde, dann wäre ich glücklich. wie soll ich das mit assembler machen und wie soll ich dann diese dateien 'verknüpfen' und sie dann in ein Image machen ?
    Geändert von simon1997 (21.03.11 um 13:32 Uhr)
     

  4. #4
    simon1997 simon1997 ist offline Rookie
    Registriert seit
    Mar 2011
    Beiträge
    5
    Ja, und noch ne frage, wie kann ich es machen, das das OS dann exe dateien öffnet? (Das hat aber noch zeit)
     

  5. #5
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Hi

    Zum lowlevel-Artikel:
    Wie gesagt: 1) Du kompilierst die Pascal-Dateien, ohne zu linken.
    2) Du übersetzt die Asm-Dateien
    3) Die Ergebnisse von allen werden dann zusammengelinkt

    Die Konsolenbefehle auf der Seite sind für Linux. Ist natürlich unter Windows auch möglich, aber andere Anweisungen.

    Und zum Exe-öffnen:
    Meinst du jetzt wirklich Windowsprogramme oder nur das PE-Format?

    Windowsprogramme: Vergiss es. Die gesamte Funktionensammlung von Windows nachzuprogrammieren wirst du allein schon zeitlich nie im Leben schaffen.

    PE: Bei Google findet man schnell den Aufbau einer Exe-Datei.
    Die muss geladen und ausgeführt werden.
    Das Problem ist, wer diese Exe´s erzeugt.
    Einen Grundbausatz an Librarys wirst du für einen Compiler bereitstellen müssen, falls du nicht vorhast, selber einen zu schreiben.

    Gruß
     

  6. #6
    simon1997 simon1997 ist offline Rookie
    Registriert seit
    Mar 2011
    Beiträge
    5
    Aja ok, das heißt die Pascal dateien kompiliere ich normal und die Asm-Dateine übersetze ich (Das ist doch soetwas wie compilieren oder? also auf lowlevel steht ja assemblieren, naja ich lade mir erstamal NASM oder MASM runter). Und wie mache ich 3) also Ergebnisse verlinken?

    Danke für deine Hilfe. Aber wie geht es dann weiter, also ich meine wenn ich den kernel habe und ?
     

  7. #7
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    [QUOTE=simon1997;1934467]Aja ok, das heißt die Pascal dateien kompiliere ich normal und die Asm-Dateine übersetze ich (Das ist doch soetwas wie compilieren oder? also auf lowlevel steht ja assemblieren[QUOTE]
    Genau, mit übersetzen meinte ich asssemblieren.
    Und ist im Prinzip das Gleiche wie kompilieren, also zu binären Zeug übersetzen.

    Der einuige Unterschied sind die Wörter.
    Assemblieren sagt man beim Assembler und kompilieren bei Hochsprachen wie Pascal, C ...

    Zitat Zitat von simon1997 Beitrag anzeigen
    Und wie mache ich 3) also Ergebnisse verlinken?
    Dafür braucht man zum Compiler/Assemblerprogramm einen Linker.

    Bei deinen bisherigen Pascalprogrammen hast du einen (ohne zu wissen) schon verwendet - jedes normale Windowsprogramm muss zuerst kompiliert und dann gelinkt werden.

    Den kannst du im Normalfall auch weiterverwenden. Da er mit dem Compilerergebnis arbeitet (statt direkt mit dem Quelltext) ist der ziemlich Sprachunabhängig. Sollte auch genauso gut für C ... funktionieren.

    Was du tun musst: Beim kompilieren der Pascaldateien darauf achten, dass der Compiler nicht selbst gleich den Linker danach aufruft. Manche Compiler tun das, kann man aber in der Befehlszeile angeben, dass es nicht gemacht wird.
    Beim assemblieren der Asm-Dateien genauso: Die dürfen nicht gelinkt werden.
    Die Linker, die du hast, sind nämlcih standardmäßig darauf ausgerichtet, am Schluss Windowsprogramme zu erzeugen, die auch Windows zum Starten brauchen.

    Beim kompilieren/assemblieren wird für jede Pascal/Asm-Datei eine obj-Datei erzeugt.
    Alle obj-Dateien müssen, um ein fertiges Programm zu erhalten, dann gelinkt werden.
    Also ein Linkerdurchgang, bei dem du alle obj-Dateien angibst.
    Wie gesagt wird der Linker ohne andere Anweisungen ein Windowsprogramm daraus machen.
    Wie du das verhinderst, hängt vom verwendeten Linker ab.
    Grundsätzlich keine Windows-Lib-Dateien mit angeben, falls vorhanden eine Option angeben das keine Standardlibs verwendet werden, und das Ausgabeformat auf Bin umstellen.
    Alles über die Befehlszeile.

    Zitat Zitat von simon1997 Beitrag anzeigen
    Danke für deine Hilfe. Aber wie geht es dann weiter, also ich meine wenn ich den kernel habe und ?
    Dann erweiterst du den Kernel
    Für dein Vorhaben wäre zB eine Funktion zur Bildschirmausgabe ganz nett.
    Muss nur ganz einfach sein, zB einen bestimmten Buchstaben ausgeben.
    Im Pascal-Teil kanst du diese Funktion dann verwenden.
    Dort dann eine Funktion schreiben, die zB ganze Strings ausgibt (in dem sie die Asm-Funktion für jeden Buchstaben aufruft) usw...

    Wenn du einen ganzen String auch ausgeben kannst, brauchst du ja nurnoch beim Start deine gewünschte Ausgabe machen.

    Gruß
     

  8. #8
    BassBox Tutorials.de Gastzugang
    Hi.
    Ich sehe du versuchst dich wie ich an einem OS... Ich bin zwar schon sehr sehr weit, aber ich helfe dir gerne. Die Basis eines OS must du in Assembler schreiben. Später kannst du dann auf Hochsprachen umsteigen. Assembler kannst du hier lernen. Um ein Os zu machen Brauchst du ein Paar tools wie den NASM oder VirtualBox. Falls du zum OS-DEV (Operating System Development) fragen hast kannst du mich gerne mit einer Privatnachricht fragen. Hier ist eine "Anleitung zum Eigenen OS
    Ich würde das Pascal vorerst weglassen und nur ASM nehmen ist übersichtlicher. Damit du nicht wegen jeder Kleinigket einen neuen Frage-thread auf machst kannst du wenn du willst mich fragen. Ich schreibe schon seit 2 Jahren an Meinem OS...

    Ich hoffe das ich dir weiter helfen konnte und das du dich über einen etwas schwereren Einstieg nich abschrecken lässt
    LG
    BassBox
    Geändert von BassBox (22.03.11 um 17:11 Uhr)
     

  9. #9
    simon1997 simon1997 ist offline Rookie
    Registriert seit
    Mar 2011
    Beiträge
    5
    Cool, ich habe mir gerade überlegt, dass ich erstmal um zu gucken wie es aussieht geradeFASM runtergeladen um den Text von lowlevel zu assemblieren. Und dann benutze ich free Pascal für Pascal.
    Wenn ich das dann gesehen habe wie das ist, dann mache ich ein Asm tutorial. und schreibe dann alles selber.
     

Ähnliche Themen

  1. DeKomp für Pascal
    Von DanielBodensee im Forum Delphi, Kylix, Pascal
    Antworten: 2
    Letzter Beitrag: 22.08.05, 16:43
  2. Problem mit Pascal...
    Von Naturian im Forum Delphi, Kylix, Pascal
    Antworten: 6
    Letzter Beitrag: 28.03.05, 09:25
  3. Programmieren mit Pascal
    Von KooF im Forum Delphi, Kylix, Pascal
    Antworten: 10
    Letzter Beitrag: 20.02.05, 19:10
  4. Pascal -> Delphikonvertierung
    Von madmat im Forum Delphi, Kylix, Pascal
    Antworten: 6
    Letzter Beitrag: 10.05.04, 21:21
  5. Pascal in XP?
    Von henningd im Forum Delphi, Kylix, Pascal
    Antworten: 2
    Letzter Beitrag: 17.02.04, 22:59

Stichworte