Kernel
-
Hallo,
ich will nun meinen Kernel schreiben aber wenn ich mit meinem Turbo C 2.1
(16 BIT) eine EXE erstelle und diese laden lasse kommen nur komische Zeichen
und nicht das was sein soll!! Kann ich irgendwie eine BIN Datei erstellen
oder brauch ich einen anderen Compiller?MFG
LordHoto
PS: danke im voraus für die antworten !
-
und dann suche ích noch ein leicht verständliches Tutorials über FAT12/FAT16.
MFG
LordHoto
-
Du müsstest als *.com datei linken, oder den exe-header wegschneiden. Wenn du als com datei linkst, musst du beachten dass alle offset angaben in com dateien relativ zu 100h sind, also die segmente entsprechend setzen.
-
wie meinen mit den relativ zu 100h?#
Und kennt jemand leicht verständliche FAT Tutorials
für das lesen und schreiben ins Fat?
-
Und zu COM dateien kann ich nicht linken
es steht da als Fehler :
No Stack presant
und
No Stariting addressWas kann ich da machen?
-
Mit relativ zu 100h meint er, dass zu allen absoluten (nicht-relativen) Addressen 100h addiert wird, da .com-Programme von DOS so in den Speicher geladen werden, dass in den ersten 100h Bytes des Daten/Code-Segments das PSP liegt und ab Offset 100h erst der Code beginnt.
Bei NASM kannst Du aber dieses "Start-Offset" selbst festlegen (mit Org xxxxh).
Wenn z.B. dein Code/Daten im Segment bei Offset 0 anfangen, waere es sinnvoll, Org 0h zu benutzen.Zu FAT-Tuts:
Wenn Die in der FAQ nicht verstaendlich sind... Google doch selbst noch ein bissel. Ich packs dann gern mit in die FAQ.
-
Also sie sind eigentlich verständlich doch manche verwenden DOS-Interuppts
und das bringt mir ja nix.
Und das mit NASM wieß ich nur wie mach ich das denn dann bei Turbo C++ mit
Turbo ASM??
-
Ok das schlimmste ist das die TUTs in Englisch sind
Naja vieleicht gibts auch ein paar Deutsche igrendwo aber nurwo?
-
Wie kann ich eigentlich feststellen ob ein PentiumIV oder ein Athlom in PC ist
(bsietzt hab ich das nur ob 386+ oder nicht ist)MFG
LordHoto
-
Wahrscheinlich mit cpuid.
Aber was bringt dir das? Willst du unbedingt 3D-Now oder sowas benutzen?
-
Ich würde davon abraten den Kernel, oder zumindest die Teile, die dein OS initialisieren in C zu schreiben, das abschalten des Cache, den switch zum PM, die Sprünge dazu das anlegen von LDT, GDT, ... ist alles nicht so super in C. Das würde ich in einen ASM Kernel packen, der dann die richtig schönen sachen, die dann z.B. in C geschrieben sind läd.
mfg
-bg-
-
grundlegendes über das fat system und die generelle dateistruktur von win und linux kriegst du im tanenbaum "moderne betriebsysteme", oder besuchst eine entsprechende vorlesung an der uni, die behandeln das auch bis ins kleinste detail