Autor Thema: Include oder Sektor lesen ?  (Gelesen 6987 mal)

bscreator

  • Gast
Gespeichert
« am: 04. April 2004, 11:49 »
Hi Leute,
mein Betriebssystem ist noch relativ klein und hat ein paar, mit Include
eingebundene ASM-Dateien (Stringfunktionen, Tastaturtreiber,...).
Ich bin in sachen Shell noch nicht sehr erfahren, daher verurteilt mich nicht
Meine bisherige "SHELL" zeigt lediglich einen Prompt (Type command:).
Meiner Shell geb ich die folgenden Aufgaben:
- Anzeigen des Prompts
- Einlesen der Benutzereingaben
- Auswerten der Benutzereingaben (vergleichen, ob eine Benutzereingabe
  einem Befehl entspricht).

Kann ich jetzt die Shell-Datei auch ganz einfach mit Include einbinden, oder
muss ich diese, wie den Kernel auch, mit dem "Sektor schreiben" (Int13) -
Befehl in den Speicher schreiben.

Danke und tschüss Leute

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #1 am: 04. April 2004, 11:56 »
Du kannst diese Dateien ebenfalls per Include einbinden.
Das sollte das ganze einfacher gestalten als wenn du diese extra mit dem int13 von einem Sektor einliest.
----------------------
Redakteur bei LowLevel

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #2 am: 04. April 2004, 12:25 »
Es geht ja schliesslich im Endeffekt auch nur darum die Daten irgendwie den Speicher zu bekommen. Man kann eine Kiste zum Ziel tragen oder sie werfen...hauptsache sie kommt an. Ist halt deine Sache was dir besser gefällt.

__Roshl
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

bscreator

  • Gast
Gespeichert
« Antwort #3 am: 04. April 2004, 18:11 »
Gibt es bei beim Interrupt 13 irgendwelche Vorteile gegenüber der Include-Direktive ? Ich frag bloß, weil etliche Leute im Lowlevel-Coding-Forum den Int13 anwenden, obwohl es doch eigentlich einfacher ist, nur eine Zeile statt 5 oder 6 Zeilen zu schreiben.

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #4 am: 04. April 2004, 20:06 »
Der Witz ist doch folgender:

Du willst die Funktion in deinem Kernel verfügbar machen. Da ist es doch am einfachsten die Funktionen einfach per Include einzubinden.

Wenn du die Funktion in einen Extra sektor baust, dann musst du diesen ja erst extra in den Speicher laden und dann musst du auch noch mit den Adressen rumrechnen.
----------------------
Redakteur bei LowLevel

bscreator

  • Gast
Gespeichert
« Antwort #5 am: 05. April 2004, 09:54 »
Wenn eine bestimmte Funktion des Betriebssystems aber nur auf Benutzeranfrage hin aufgerufen werden muss, wäre es doch Speicherverschwendung, diese Funktion die ganze Zeit im Speicher zu halten, wo noch nicht einmal gewährleistet ist, dass der Benutzer diese Funktion (z.B. ein Zusatzprogramm, wie einen Umrechner von HEX in DEC, DEC in HEX) überhaupt aufruft.

Langer Rede kurzer Sinn :
Um eine Funktion in den Speicher zu schreiben und diese nach einer gewissen Zeit wieder aus dem Speicher zu entfernen, komme ich um den Int 13 wohl nicht rum, oder ?

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #6 am: 05. April 2004, 15:43 »
Naja also so kleine Funktionen wie das abarbeiten von Keyboardeingaben lohnen nicht wirklich dafür extra eine eigene Datei zu erstellen.

Wenn du mal soweit bist, das du ein Dateisystem hast und einen Commandointerpreter, dann kannst du ja ähnlich wie Linux, WIndows so kleine Programme wie das anzeigen des Verzeichnisinhalts usw als eine extra anwendung machen die dann bei bedarf gestartet wird.

Da du sicherlich aber noch in den Anfängen deines Kernels bist, würde ich mir JETZT noch keine Sorgen um Speicherverschwendung machen. Es dauert schon ne Weile bis du so viel Code zusammengeschrieben hast, das du mal in den Megabytebereich kommst :)

Machs dir also nicht unnötig kompliziert.
----------------------
Redakteur bei LowLevel

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #7 am: 17. April 2004, 22:01 »
mit include wird es ja schon beim compilen in deinen kernel eingebunden und ist dann zusammen mit dem anderen eine "Datei"... Sektoren kannst du lesen, wenn z.B. der Benutzer will, dass der 4. Sektor gelesen werden soll... Das kann man nicht includen, da man, wenn der Benutzer ne neue Datei macht, man den Kernel neu compilen müsste...
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

 

Einloggen