Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Delphi/Pascal Programm booten? (https://www.delphipraxis.net/93689-delphi-pascal-programm-booten.html)

jansie 9. Jun 2007 17:33


Delphi/Pascal Programm booten?
 
Hallo Welt,
ich habe ein kleines simples Programm:
Delphi-Quellcode:
program simple;

begin
 writeln('Welcome!');
end;
Nun möchte ich dieses Programm zu einem Mini-Betriebsystem umwandeln.
Also was muss ich mit dem Programm anstellen damit ich es (in welchem Format auch immer) auf CD brennen kann und beim booten von dieser CD, der Computer mich mit "Welcome!" begrüßt?

Vielen Dank im voraus!

Dunkel 9. Jun 2007 17:36

Re: Delphi/Pascal Programm booten?
 
Zitat:

Zitat von jansie
Also was muss ich mit dem Programm anstellen damit ich es (in welchem Format auch immer) auf CD brennen kann und beim booten von dieser CD, der Computer mich mit "Welcome!" begrüßt?

Hallo Jansie!

Kennst Du BartPE? Das wirst Du dafür brauchen!

Delphi-Programme sind auf Windows angewiesen, mal eben eine "Hello World"-Anwendung zu einem BS umzuschreiben ist mit Delphi nicht (mal eben [wenn überhaupt]) möglich.

Luckie 9. Jun 2007 17:38

Re: Delphi/Pascal Programm booten?
 
Zitat:

Zitat von jansie
Hallo Welt,
ich habe ein kleines simples Programm:
Delphi-Quellcode:
program simple;

begin
 writeln('Welcome!');
end;
Nun möchte ich dieses Programm zu einem Mini-Betriebsystem umwandeln.

Das ist jetzt nicht dein Erst oder? :roll:

jansie 9. Jun 2007 17:40

Re: Delphi/Pascal Programm booten?
 
Hi,
also BartPE kenn ich nicht :-(

Und was ist wenn ich das mit einem Pascalprogramm machen möchte
also nicht Borland Delphi sonder Free Pascal nutze?

Zitat:

Das ist jetzt nicht dein Erst oder?
Doch, Doch.. ist das ne Nummer zu groß?

Dunkel 9. Jun 2007 17:43

Re: Delphi/Pascal Programm booten?
 
Zitat:

Zitat von jansie
Hi,
also BartPE kenn ich nicht :-(

Und was ist wenn ich das mit einem Pascalprogramm machen möchte
also nicht Borland Delphi sonder Free Pascal nutze?

Dann mach Dich schon mal mit dem System vertraut, lerne C und Assembler. Irgendwann, wenn Du groß und stark bist (geh mal von 10-20 Jahren aus) wird das vielleicht mal was.

Fazit: vergiss es ganz schnell wieder! :stupid:

Edit:
BartPE

jansie 9. Jun 2007 17:44

Re: Delphi/Pascal Programm booten?
 
:-(

_frank_ 9. Jun 2007 17:45

Re: Delphi/Pascal Programm booten?
 
ich habe für den zweck damals eine stinknormale DOS- (bzw. win9x-) Startdiskette als bootsektor verwendet. bisschen modifiziert (io.sys gepatched damit im Menü nicht mehr Win98 Startmenü steht), paar treiber hinzugefügt etc. der Rest lag normal auf der cd und konnte über ein menü gestartet werden, welches von der Autoexec.bat gestartet wurde.
ist halt normaler dos-modus, was natürlich nicht geht ist das ausführen von delphi-programmen und starten von Windows ohne reboot, nachdem von cd gestartet wurde..

Threads á la "wie schreib ich ein Betriebssystem in delphi" gibts schon einige, wo überall steht dass es mit delphi nicht geht, da dieses auf Windows-Routinen (winAPI) aufbaut.
um ein OS zu erstellen brauchst du erstmal fundiertes wissen, ASM-Kenntnisse und danach kommt man mit C/C++ weiter

HTH Frank

CCRDude 9. Jun 2007 17:57

Re: Delphi/Pascal Programm booten?
 
Assembler, C und C++ sind sicherlich die verbreitetesten Ansätze, MacOS (die alten Versionen) immerhin ein gutes Beispiel für ein Betriebssystem, das Pascal bevorzugt hat, und heute gibt es imho zwei oder drei Betriebssystemansätze, die auf FreePascal aufsetzen. DelphineOS z.B., "einfach mal" auf SourceForge in die Quelltexte schauen, ein paar Monate bis Jahre Urlaub nehmen, ... :mrgreen:

JamesTKirk 9. Jun 2007 18:00

Re: Delphi/Pascal Programm booten?
 
Du kannst dir auch das hier mal anschauen, da hat jemand (der glaub ich auch hier im Forum aktiv ist/war - kann mich aber auch irren), die Probleme und das Für-und-Wider eines DelphiOS, bzw. Delphikernels genauer beleuchtet. Ohne fundierte Assemblerkenntnisse (und natürlich auch der PC-Architektur) kommt man da aber nicht weit.

Da is man schon ein "Weilchen" dran.

Alles in allem: Träum davon, pack aber lieber andere Sachen an ;)

Edit (Roter Kasten): @CCRDude: Muss ich mir glatt mal anschauen :mrgreen:

Edit: *DelphineOS angeschaut hat* Jupp... das dauert ne Weile des zu verstehen. :shock: Da verkrümel ich mich doch besser wieder zu OpenGL :mrgreen:

Dezipaitor 9. Jun 2007 21:41

Re: Delphi/Pascal Programm booten?
 
Man kann auch FreeDOS auf ner BootDiskette installieren
und dann mit FreePascal ein kleines Welcome Programm programmieren, welches in der autoexec.bat (oder wie die dort heißt) automatisch gestartet wird.

Geht zwar ohne Delphi, dafür in Pascal.

FreeDOS muss man vorher in einer VM installieren und dann mit format a: /s (oder so) eine Bootdisk erstellen.

stefan2005 9. Jun 2007 23:08

Re: Delphi/Pascal Programm booten?
 
hi,
wenn du wirklich ein Delphi Programm (von einem eigenen Bootloader natürlich) booten lassen willst, sollte dein Bootloader das PE-Format auswerten können und für Delphi brauchst du eine eigene System.pas, um alle WinAPI-Aufrufe zu verbannen. Natürlich funktioniert dann dein Writeln nicht mehr und du musst direkt auf den Videospeicher zugreifen, bzw. selbst alle Funktionen schreiben.
Alles in allem für Anfänger nichts sinnvolles, eigne dir lieber erst einmal ein paar Grundkenntnisse an und setze dir leichtere Ziele :) (deutschsprachige Infos z.B. auf Lowlevel).

Ansonsten kannst du wie bereits erwähnt, einfach MS DOS oder FreeDOS hernehmen und dann ein 16-Bit Programm mit Turbo Pascal oder FreePascal erstellen und ausführen lassen.

Viel Spaß :zwinker:
Grüsse, Stefan

Dezipaitor 10. Jun 2007 00:09

Re: Delphi/Pascal Programm booten?
 
FreeDOS ist IMHO auch 32 bittig.

Muetze1 10. Jun 2007 16:05

Re: Delphi/Pascal Programm booten?
 
Zitat:

Zitat von stefan2005
Natürlich funktioniert dann dein Writeln nicht mehr und du musst direkt auf den Videospeicher zugreifen, bzw. selbst alle Funktionen schreiben.

Warum immer gleich in den VideoRAM schreiben? Ok, es ist schneller, aber es interessiert hier keine Geschwindigkeit. Warum nicht einfach etwas kompatibleres nehmen und die BIOS Ausgabe nutzen? Schliesslich wird der INT 10h noch immer von allen Grafikkartenherstellern mit ihrem VideoROM umgebogen und bedient. Damit ist dann auch der Cursor beachtet, etc. Vor allem ist es deutlich weniger Aufwand...

inherited 10. Jun 2007 16:20

Re: Delphi/Pascal Programm booten?
 
In 16 Bit mag das gehen, ab 32 Bit allerdings nichtmehr

Muetze1 11. Jun 2007 10:33

Re: Delphi/Pascal Programm booten?
 
Zitat:

Zitat von inherited
In 16 Bit mag das gehen, ab 32 Bit allerdings nichtmehr

Wieso sollte nicht? Oder zielst du auf einen CPU Modus ab? Weil ersteres sagt nichts über letzteres aus...

CCRDude 11. Jun 2007 11:29

Re: Delphi/Pascal Programm booten?
 
Übrigens danke JamesTKirk für Deinen Link dort, die Mini-System/SysInit find ich ganz nett um mal ein bißchen "native" zu spielen wieder ;)

JamesTKirk 11. Jun 2007 12:13

Re: Delphi/Pascal Programm booten?
 
Bitte, bitte... den hatte ich vor einger Zeit mal gefunden und in meinem Gedächtnisspeicher reingestopft, als ich mich mal selbst mit dem träumerischen Gedanken ein eigenes OS zu schreiben rumgespielt hab. :mrgreen:

MaBuSE 11. Jun 2007 12:18

Re: Delphi/Pascal Programm booten?
 
Zitat:

Zitat von jansie
ich habe ein kleines simples Programm:
...
Nun möchte ich dieses Programm zu einem Mini-Betriebsystem umwandeln.
Also was muss ich mit dem Programm anstellen damit ich es (in welchem Format auch immer) auf CD brennen kann und beim booten von dieser CD, der Computer mich mit "Welcome!" begrüßt?

Tommie hat ein schönes Beispiel gepostet, wie man so einen Bootloader schreiben könnte.
Sein Bootloader ist zwar nicht in Delphi sondern in Assembler, aber damit sollte sich ohne Probleme ein einfacher String beim Booten ausgeben lassen.
(Titel: Re: Maschinensprache und Assembler - ein kleines Beispiel, wenn Du auf den 1. Beitrag in dem Tutorial gehst, findest Du eine kleine Einführung in Assembler.)

Code:
...
    load_stage2:
    /* hier wird der Text msg_load ausgegeben (msg_load: .ascii "Loading stage 2...\x0d\x0a\x00") */ 
    mov si, offset msg_load
    call print_string

    /* hier stoppt der Bootloader -> der PC steht und macht dann gar nix mehr :-) */ 
    jmp halt
...

stefan2005 11. Jun 2007 13:34

Re: Delphi/Pascal Programm booten?
 
hi,

Muetze1: Direkt auf den Videospeicher deshalb zugreifen, weil der BIOS Code nur als 16 Bit Code vorliegt und man ihn deshalb nicht im 32-Bit Mode verwenden kann.

Grüsse,
Stefan

Muetze1 11. Jun 2007 23:43

Re: Delphi/Pascal Programm booten?
 
Zitat:

Zitat von stefan2005
Muetze1: Direkt auf den Videospeicher deshalb zugreifen, weil der BIOS Code nur als 16 Bit Code vorliegt und man ihn deshalb nicht im 32-Bit Mode verwenden kann.

Wie oft denn noch: trenne zwischen 32 Bit Modus (V86, PM, RM) und 32 bit Code. Ich kann ohne Probleme auch mit 32 Bit Code 16 Bit Code aufrufen. gleiches sogar mit Trickserei andersherum - so lange beide mit dem aktiven CPU Modus klarkommen. Real Mode heisst nicht gleich 16 Bit Code!

Ausserdem ist es mit V86 nicht das Problem auch diesen Code in anderen Modien als RM diesen auszuführen.

stefan2005 12. Jun 2007 10:01

Re: Delphi/Pascal Programm booten?
 
hallo,
ja wenn du im PMode bist, kannst du keine BIOS-Interrupts aufrufen, außer du benutzt V86, aber das dürfte dann um einiges schwieriger sein als direkt auf den Videospeicher zuzugreifen (das man bequem per Array einrichten kann).

Man kann im RealMode (16-Bit) vielleicht 32-Bit Register ansteuern aber nicht wirklich viele 32-Bit Befehle ausführen lassen, denke ich :)

Grüsse,
Stefan

WebtoolMaster 12. Jun 2007 16:59

Re: Delphi/Pascal Programm booten?
 
Hallo,

was es jemanden interessiert.

Schaut mal ins flatassembler board.
Dort gibt es einen eigenen Thread über OS Loader/Installer in Assembler.
Auch interessant warscheinlich eines der besten und modernsten Assembler (FASM).


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz