Lowlevel

Lowlevel => tyndur => Thema gestartet von: sov21 am 17. May 2005, 10:59

Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: sov21 am 17. May 2005, 10:59
Hallo,
wie ich schon unter dem anderen Thread erwähnt habe, finde ich daß ihr tolle Arbeit geleistet habt. Weil ich jedoch ein totaler Anfänger bin habe ich gleich mal ein paar Fragen dazu.

1. Wieso ist die Datei "new" im Include Verzeichnis ohne Dateiendung, hat
    das einen bestimmten Grund?
2. Warum sind manche Dateien mit "*.ld" und "*.inl" bennant, einfach aus
    Spaß oder hat das eine Wirkung?
3. Der Kernel unterstütz ja schon C++. Wird C++ schon voll unterstützt, oder
    muß man noch auf etwas achten (zB globale Klassen)?
4. Sind alle Funktionalitäten, wie sie die Dateinamen versprechen schon
    enthalten (Paging,ints abfabgen,multiboot fähig für Grub)?
5. Wird Grub zum booten schon verwendet? Weil hab den noch gar net
    gesehen.

Vielen Dank schon mal im Vorraus.
Gruß sov21
Titel: Re: Fragen zu: SDK Release Milestone 0
Beitrag von: DDR-RAM am 17. May 2005, 11:12
Hallo,

Zitat von: sov21

[...]

1. Wieso ist die Datei "new" im Include Verzeichnis ohne Dateiendung, hat
    das einen bestimmten Grund?

In C++ haben die Standardheader keine Dateierweiterung, z.B.
#include <iostream>, und <new> ist auch ein Standardheader, deshalb ohne .h, es wäre aber nicht schlimm gewesen, die Dateierweiterung dran zu lassen.
Zitat

2. Warum sind manche Dateien mit "*.ld" und "*.inl" bennant, einfach aus
    Spaß oder hat das eine Wirkung?

.ld ist das Linkerscript, also keine Sourcecodefile und .inl ist C++-Inlinefile. .inl hätte man aber auch .h nennen können, allerdings sollen diese .inl file nicht direkt von .cpp-Dateien eingebunden werden.
Zitat

3. Der Kernel unterstütz ja schon C++. Wird C++ schon voll unterstützt, oder
    muß man noch auf etwas achten (zB globale Klassen)?

Voll unterstützt wird C++ nicht werden. Es wird kein RTTI und kein Exception-Handling geben. Der Rest wird voll funktionsfähig sein.
statische Konstruktoren und Destruktoren werden schon unterstützt.
Auch new und delete, mit der Einschränkung, das der Heap noch auf 1 MB begrenzt ist, da Paging noch nicht voll implementiert ist.
Zitat

4. Sind alle Funktionalitäten, wie sie die Dateinamen versprechen schon
    enthalten (Paging,ints abfabgen,multiboot fähig für Grub)?

Welche funktionalitäten die Dateinamen versprechen, weiß ich nicht. :D
Aber Grub wird als bootloader verwendet. Paging wird initialisiert und der Kernel an 0xC0000000 gemappt. Die interrupt.* Dateien sind nur für die Bluescreens zuständig.
Zitat

5. Wird Grub zum booten schon verwendet? Weil hab den noch gar net
    gesehen.

Ja, siehe oben.
Zitat

Vielen Dank schon mal im Vorraus.
Gruß sov21

Bitte ;-)

MfG
DDR-RAM
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: sov21 am 17. May 2005, 11:21
Das ging aber schnell.
Dann habe ich gleich die nächste Frage:

6. Welche Dateien von dem Source sind denn die von Grub? bzw. was daran
    ist Grub? (Sorry, kenn mich mit Grub sogut wie gar nicht aus, dachte das
    sein ein Prog in binary Form)
7. Wird es noch mehr Doku zu dem Source selbst geben?
8. Wird die Wiki verwendet?

Gruß sov21
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: DDR-RAM am 17. May 2005, 11:30
Hi,
Zitat von: sov21
Das ging aber schnell.
Dann habe ich gleich die nächste Frage:

6. Welche Dateien von dem Source sind denn die von Grub? bzw. was daran
    ist Grub? (Sorry, kenn mich mit Grub sogut wie gar nicht aus, dachte das
    sein ein Prog in binary Form)

Wenn du das SDK mal installiert hast und zum laufen gebracht hast, siehst du das Grub als bootloader verwendet wird. Grub selber ist glaube ich nur auf dem Disketten image bzw. auf der realen diskette drauf. mastermesh hat die binaries dafür nicht extra mit reingepackt (glaub ich :D)
Zitat

7. Wird es noch mehr Doku zu dem Source selbst geben?

Definitiv ja, aber wann ka ^^
Zitat

8. Wird die Wiki verwendet?

Definitiv ja, inwiefern die Einbindung schon als gut zu bezeichnen ist weiß ich nicht, aber wir stehen gerade erst am Anfang.
Zitat

Gruß sov21


MfG
DDR-RAM
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: sov21 am 17. May 2005, 11:41
Vorerst letzte Frage: (zu mindest bis ich mich durch Source gekämpft habe)
9. Ist es normal, das bei realer Disk neugebootet wird und bei Bochs nicht?

So Ansonsten ist erstmal alles klar, und vielen dank für deine Antworten DDR-RAM.
Gruß sov21
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: stultus am 17. May 2005, 14:23
sollte bei realer disk eigentlich nicht neu booten, die letzte anweisung im src ist ja das for( ; ; );
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: sov21 am 17. May 2005, 16:57
Mhh macht er aber bei allen meinen PCs mit realer disk. Egal ob Vesa oder ohne.
Sobald er anfängt diese Adressen zB <34x89> oder sowas zu schreiben, bricht er nach 3-4 dieser dinger ab und rebootet.
Ist das ein Bug???
Könnt ihr ja auch mal mit euren PCs ausprobieren.
Gruß sov21
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: DDR-RAM am 17. May 2005, 17:01
Ja müsste einer sein.
sag mal alle Hardwarekonfigurationen von den Computern durch.
(also die relevanten sachen).
Vielleicht liegt es auch irgendeiner Bios-einstellung.

ich hab mit meinem AMD 2600+ dieses Problem auch.

MfG
DDR-RAM
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: sov21 am 17. May 2005, 17:13
Notebook aspire Intel Celeron 1300,
AMD Athlon 1800 XP
und AMD Athlon 2800 XP, sowie AMD Athlon 2000 XP
Welche daten noch??
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: DDR-RAM am 17. May 2005, 17:26
sind schon 4 Athlons (mein und deine)
Vielleicht haben wir nen Befehl drin, der nicht mit Athlon funktioniert.
Wichtig wäre noch Arbeitsspeicher Größe und Typ, evtl. noch Mainboard.
Auf dem Celeron funktioniert es auch nicht?

MfG
DDR-RAM
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: sov21 am 17. May 2005, 17:35
Celeron geht auch nicht.
Rechner, Arbeitsspeicher, Typ, Board:
2800 Xp = 512MB infinion,MSI
1800 XP = 128 MB noName,EliteGroup
2000 Xp = 96 Mb Noname, EliteGroup
Celeron 128 MB Infinion. K.A.
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: DDR-RAM am 17. May 2005, 18:41
so, ich hab mich dazu durchgerungen das ich jetzt anfangen werde, den Fehler zu lokalisieren.

MfG
DDR-RAM
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: n3Ro am 17. May 2005, 19:07
hi, also ich würde dass problem nicht im coding suchen, da es bei mir funktioniert! btw. ich habe einen Athlon XP 3000+ mit 1,5 GB Ram und da läuft es! allerdings hab ich es mit meinem eigenen grub 0.95 von der festplatte laden lassen, und ich hab es mit meinem gcc compiliert, der sich ja scheinbar leicht von der windows version unterscheidet.
an welcher stelle tritt denn der fehler genau auf ?
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: DDR-RAM am 17. May 2005, 19:09
Direkt nach dem Grub das Kernel image geladen hat und in den kernel springt denke ich, bin mir aber nicht ganz sicher, ich starte jetzt meine Tests.

MfG
DDR-RAM
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: stultus am 17. May 2005, 19:12
die neue version konnt ich noch net testen (bei mir hängen merkwürdigerweise nicht trennbare netzlaufwerke auf Z), bei der alten hats einwandfrei funktioniert (sowohl so wies dabei war als auch nach eigenen kleinen änderungen für die NoVesa version ;) ), verwend Athlon XP 2800+
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: n3Ro am 17. May 2005, 19:18
auf meinem PII - 350Mhz 96MB Ram funktioniert es auch, allerdings auch von HDD und mit grub 0.95. ich würd fast sagen das image ist corrupt, der grub ist buggy oder der compiler haut was falsches ins executable
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: DDR-RAM am 17. May 2005, 19:19
nene, auf meinem P III 1000 funktioniert es mit der gleichen diskette ja auch ;-)
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: n3Ro am 17. May 2005, 19:32
so, nachdem ich jetzt die warscheinlich einzige diskette gefunden habe, die ich noch habe (ja ja die guten alten disketten ;-) ) hab ich mal schnell das image draufgespielt und meinen athlon rechner neu gebootet ==> und es geht.
jetzt bleibt nur die frage ob wir auch alle das gleiche SDK benutzen, meines ist von gestern 22:16.
was habt ihr für athlon kerne? ich hab nen barton.
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: mastermesh am 17. May 2005, 19:37
Hi n3Ro, probier doch bitte mal das aktuelle SDK, Downloadlink im OP.
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: DDR-RAM am 17. May 2005, 19:45
ok, hab den Fehler gefunden, wird bald gefixt werden ;-)
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: n3Ro am 17. May 2005, 20:08
okay, die neuen sources funktionieren bei mir auch ohne probleme. (sowohl die vorkompilierten sachen als auch die selbstkompilierten)
@ ddr-ram: was ist denn der fehler?
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: DDR-RAM am 17. May 2005, 20:13
Das es bei vielen funktioniert hat bezeichne ich mal als Zufall.

Wir haben eine Funktion InitBlueScreens, die verwendet new operator, dieser vewendet das globale CHeapMangager objekt.

Dieses wird aber erst nach dem aufruf von InitBlueScreens initialisiert.

deshalb schlägt der aufruf von new auf einigen PC's fehl.
Was genau erfüllt sein muss, damit es klappt, bzw. nicht klappt hab ich mir nicht weiter angeguckt. War aber also ein Fehler im Code.

MfG
DDR-RAM
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: sov21 am 17. May 2005, 20:39
super,
habt den Fehler ja sehr schnell einkreisen und entdecken können.
Gibts einen Bescheid, wenn die neue Source verfügbar ist?
Gruß sov21
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: n3Ro am 17. May 2005, 20:40
ja, schau am besten mal in der andere milestoneforum ;-) . 2 files und am ende die nachricht glaub ich.
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: T-Head am 18. May 2005, 01:12
Hi,

nur mal son kleiner Bericht:

auf meinen beiden Rechnern gehts!

AMD Athlon64 3200+
Celeron 400 oder so! Is meinem Vathe seiner!  :wink:

Auf m AMD ging der Bootloader von Roshl nicht! Mit GRUB gehts jetz allerdinks perfekt!  :P
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: DDR-RAM am 18. May 2005, 09:35
Hallo,

Zitat von: hannibal
ich hab mich mal versucht durch den schon vorhanden source-code durchzuwuehlen..(ich dachte immer ich koennte c++ ziemlich gut *hust!).. nur irgendwie hat mir das auch nicht viel gebracht..koenntet ihr mal irgendwie so ein kleines 'statement' abgeben zu den schon vorhandenen klassen:


// Descriptors

class CDescriptor;
class CSegmentDescriptor;
class CCodeSegmentDescriptor;
class CDataSegmentDescriptor;
class CTSSegmentDescriptor;
class CLDTSegmentDescriptor;
class CGateDescriptor;
class CCallGateDescriptor;
class CTaskGateDescriptor;
class CTrapGateDescriptor;
class CInterruptGateDescriptor;

template <int>
class CDescriptorTable;
class CLDT;
class CGDT;
class CIDT;

// Paging

class CPageTableEntry;
class CPageDirectory;
class CPageTable;

// Segments

class CTaskStateSegment;


waere vielleicht hilfreich..vor allem interessant waere fuer mich die CIDT-klasse...nur blick ich da nicht ganz durch, was da jetzt noch zu machen ist bzw was schon da ist.

lg, hannibal


Die CDescriptor-Klassen wrappen Deskriptoren in IDT, GDT und LDT(die wir allerdings nicht verwendent, die LDT).
Der Name verrät eigentlich schon sehr viel, welche Deskriptoren das sind.
Die Basisklasse CDescriptor bietet Funktionen, die für alle Deskriptoren verfügbar sind, z.B. GetPrivilege(), welches das im Deskriptor festgelegte Privileglevel zurückgibt.
Dann sind in der Klasse noch protected-Funktionen, diese stehen nur den Ableitungen zur Verfügung.
Das ganze spaltet sich dann in 2 Klassen, CSegmentDescriptor und CGateDescriptor. Ist eigentlich auch recht selbst erklärend. Auch diese Klassen stellen wieder Funktionen bereit, die für alle Ableitungen vorhanden sein sollen. Bei den Gatedeskriptoren ist noch zu beachten, das einige Ableitungen dann diese Funktionen doch nicht brauchen, z.B.
CTaskGateDescriptor braucht kein Offset, deshalb ist die Funktion als private deklariert, damit man nicht drauf zugreifen kann.

Die CDescriptorTable-Klassen, wrappen wie der Name schon sagt, verschiedene Deskriptortabellen, dieser gibt es 3,
die Interrupt Deskriptor Tabelle (IDT),
die Globale Deskriptor Tabelle (GDT),
die Lokale Deskriptor Tabelle (LDT)

CDescriptorTable ist als Template angelegt, mit einem Template-Parameter für die Größe der Tabelle.
IDT hat maximal 256 Einträge, GDT und LDT jeweils maximal 8192.
Auf die einzelnen Deskriptor zugreifen tut man über GetAt kann man auf einen Deskriptor an einer bestimmten position zugreifen.
IDT, GDT und LDT wrappen jetzt noch Deskriptortabellenspezifische Sachen.
z.B. CIDT::SetIDT, welches einen Parameter für die Anzahl der Einträge übernimmt. SetIDT selber, verwendet den asm-Befehl, lidt.
Ebenso GetIDT, du musst eigentlich keinen Pointer auf die IDT speichern.
CIDT::GetIDT() und du hast einen Zeiger auf die aktuelle IDT.

CPageDirectory wrappt ein PageDirectory, CPageTable wrappt eine Pagetable und CPageTableEntry wrappt PageDirectory sowie PageTable Einträge.

CTaskStateSegment wrappt letztendlich ein TaskStateSegment ;-)

Also beim nochmal drüberschauen, über x86.h fällt mir auf, das die Namensgebung teilweise recht grob ist, z.B. CGDT::SetGDT(WORD woSize), könnte einen Veranlassen, zu denken, das man die Größe der GDT in Bytes übergeben muss, es müssen aber nur die Anzahl der GDT-Einträge übergeben werden.

Für Beispiele, lohnt ein Blick in exception.cpp und paging.cpp

MfG
DDR-RAM
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: hannibal am 18. May 2005, 09:50
das hilft mir schon ein bisschen weiter, danke!

(achja..waers vielleicht nicht von vorteil gleich ein wenig dokumentation in den src zu packen?)
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: DDR-RAM am 18. May 2005, 10:14
Zitat von: hannibal
das hilft mir schon ein bisschen weiter, danke!

(achja..waers vielleicht nicht von vorteil gleich ein wenig dokumentation in den src zu packen?)


Ich überarbeitete gerade x86.h, mit bisschen mehr doku ;-)

MfG
DDR-RAM
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: sov21 am 19. May 2005, 18:03
Hab wieder mal Fragen:
* In welcher Datei wird den der Vesa-Mode initialisiert, bzw. aktiviert??
   (Hab schon alle Dateien durchsucht, aber nix gefunden :?: )

Gruß sov21
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: hannibal am 19. May 2005, 18:09
soweit ich weiss aktiviert ja grub schon den vesa-modus (ich hab unter bochs ein auswahlmenu zwischen VESA und textmodus)

lg, hannibal
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: sov21 am 19. May 2005, 18:15
Gut aber für was haben wir dann den VbeInfoBlock im Vesa-Header, der in den Kernel eingebunden wird?
Müssen also die Zugriffsroutinen für Vesa noch komplett implementiert werden?
Die Videoram-Befehle sind doch lediglich für den Non-Vesa-Modus zu gebrauchen oder?

Gruß sov21
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: T-Head am 19. May 2005, 19:34
Hi,

ja! Sonst würdest du, wenn du mit Vesa-Modus lädst auch was sehen!
Titel: Fragen
Beitrag von: T0ast3r am 19. May 2005, 20:14
Also ich hab da ein paar Fragen an mastermesh und DDR-RAM:

1.) Wofür ist die Datei SETPATH.BAT und wofür braucht man sie?
Wenn man es ausführt steht da nur "Kein Speicherplatz mehr im Umgebungsbereich".
Wenn ich es direkt in Autoexec.bat einfüg, verändert der Computer immer beim starten die Datei Autoexec.bat und lägt von der alten Version ein Backup an.
Hier ist der Inhalt von SETPATH.BAT:
@echo off
set PATH=.\bin\;.\bin\gnu;.\bin\vfd;.\bin\bochs;.\bin\nasm;.\bin\cygwin;.\bin\rawrite;%PATH%;
Zu @echo off: warum schaltet ihr die Kommandozeile aus?
Man soll doch sehen können, was er da tut.
Zu set PATH=.\bin.....: Warum steht da immer ein Punkt vor dem Pfad?
Werden die Pfade eventuell für make benötigt?

2.) Wofür ist die Verknüpfung SHELL da?
Hier der Verknüpfungsort: C:\WINDOWS\SYSTEM\cmd.exe /k call setpath && more .\doc\readme.windows && prompt $g$g$s
Bei mir exisitiert die Datei cmd.exe gar nicht, wehalb ich mich frage was die Verknüpfung macht.

3.) Öfters taucht in Pfadangeben wie zum Beispiel in der Datei "bochscr" der Ordner Temp auf.
Bei mir gibt's da gar keinen Ordner Temp, ich hab aber alles ordnungsgemäß heruntergeladen und extrahiert.

4.) Gibt's eine Anleitung oder so wie ich den Kernel compilieren kann, so dass ich die Datei Kernel.elf bekomme????
Wie bei sov21 wird die Datei "/system/kernel.elf" auf realer Disk nicht gefunden, wenn ich das immage fd0 auf die Diskette kopiere.
DDR-RAM hat geschrieben, man solle die Datei einfach nachkopieren, wobei nicht gestanden is von wo.
Soll man sie sich selbst zusammenstellen?
@mastermesh+DDR-RAM: Habt ihr beim zusammenstellen der Datei fd0.img vielleicht vergessen, ein(e) (paar) Dateien mit einzubeziehen?

5.) Im Ordner BIN befinden sich ja ein paar Ordner mit Compilier Zeugs und so.
Aber wenn ich da das Programm make im ordner gnu starte, gibt's haufenweise Fehlermeldngen das die Dateien nicht gefunden oder geöffnet werden können und so. Was kann ich da tun? Diese Frage bezieht sich auch eigentlich auf die 1. und 4. Frage, weil ich glaube, dass wenn SETPATH funktionieren würde auch make funktionieren würde.
Zudem wenn ich den Kernel mit make kopieren will, muss ich mir da álle Dateien in einen Extra Ordner hauen, in dem ich dann make starte?
Das äre sehr umständlich..... -> weil es wird ja auch makefile benützt, und dass befindet sich direkt in lost, und die Dateien in scr/kernel, welche ebenso wichtig sind...

6.) No support to WinME?
Wollt ihr denn gar nicht ehr WindowsME unterstützten?
Wenn ich den vfd (virtual disk irgendwas) starte, steht da nur das WindowsME nicht unterstützt wird..... *seufz*
schade *doppelt seufz*

7.) Wofür ist der Ordner cygwin da, und wofür seine 2 DLL Dateien?
Werden die im gnu Ordner von den kleinen Programmern benöigt?
Weil ich hab da mal ein paar Programme gestartet und dann ist gestanden, dass ihnen die DLLs fehlen, welche sich im Ordner cygwin befinden.
Dann hab ich sie nach gnu kopiert...... und wollllla ..... es hat geklappt.
Also nun die Frage: Warum wurden sie nicht gleich nach gnu kopiert???????

8.) Wie make maunzt das Programm Bochs, weil es Dateien nicht finden kann.
Eine Bsp Datei ist die Datei "bochscr", welche Infos dem Programm Bochs gibt.
Das Programm kann die Datei "bochscr" aber nicht finden, da es im lost verzeichnis ist und nicht im bochs Verzeichnis.
Ist da vielleicht auch mal wieder SETPATH schuld oder beteiligt, da der Pfad (so viel ich weiß) ja ort auch eingetragen wird?

9.) Warum haben die anderen den Ordner Temp und ich nicht?
In ein paar Pfadangaben steht ja auch irgendwas mit dem Ordner Temp, aber da ich ihn nicht hab, kann das ja nicht gut laufen.
Bochs gibt z. B. dauernd Meldungen aus, dass es Dateien im Ordner "tmp" nicht finden kann.
Hier ein Zitat aus der Datei "bochscr":
parport1: enabled=1, file="./tmp/debug/parport.txt"
Da steht eben z. B. eine Pfadangabe, die nach tmp verweist.

10.) Muss das SDK ZWINGEND in's Root Directory extrahiert werden, oder kann man alles auch in einen andern Ordner extrahieren?
Macht das also einen Unterschied?


Ich hab das SDK heute (Donnerstag, 19.Mai 05) am Vormittag heruntergeladen.
Ich glaub das da noch ein paar Bugs drinnen sind.
Im großen und ganzen finde ich dass ihr (mm+DDR-RAM) sehr gute Arbeit geleistet habt.
Ich bitte mir diese Fragen zu beantworten.

__________________________
T0ast3r@World
__________________________

@DDR-RAM: DDR2-RAM ist der Bessere! * :D *
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: sov21 am 19. May 2005, 20:34
Zitat
1.) Wofür ist die Datei SETPATH.BAT und wofür braucht man sie?

Also sofern ich das richtig sehe setzt sie die Umgebungsvars für den gcc, ld.
Zitat
Zu set PATH=.\bin.....: Warum steht da immer ein Punkt vor dem Pfad?

Der Punkt dürfte so viel heißen, wie nehme \bin... "aus dem aktuellen Ordner in dem du dich gerade befindest"
Zitat

2.) Wofür ist die Verknüpfung SHELL da?
Hier der Verknüpfungsort: C:\WINDOWS\SYSTEM\cmd.exe /k call setpath && more .\doc\readme.windows && prompt $g$g$s
Bei mir exisitiert die Datei cmd.exe gar nicht, wehalb ich mich frage was die Verknüpfung macht.

Diese Shell soll make aufrufen, die den source automatisch compiled, und in bochs ausführt.
Du hast cmd.exe nicht, weil das die shell von WinXp ist unter ME heißt das glaube ich command.com. Das ist auch dein prob warum nix geht.


Zitat
4.) Gibt's eine Anleitung oder so wie ich den Kernel compilieren kann, so dass ich die Datei Kernel.elf bekomme????

Nö weil normalerweise die SHELL das machen soll.

Zitat
5.) Im Ordner BIN befinden sich ja ein paar Ordner mit Compilier Zeugs und so.
Aber wenn ich da das Programm make im ordner gnu starte, gibt's haufenweise Fehlermeldngen das die Dateien nicht gefunden oder geöffnet werden können und so.

Kein wunder, du mußt parameter mit übergeben, und deine Pfade stimmen nicht, weil Setpath nicht ausgeführt wurde.

Gruß sov21
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: T0ast3r am 20. May 2005, 08:46
Bei SETPATH steht da immer nur kein Speicherpplatz im Umb´gebungsbereich mehr.
Was kann ich da tun?
Soll ich sie in msconfig eintragen?
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: mastermesh am 20. May 2005, 09:30
Au weh... Windows ME  :?

Hast du nicht Zugriff auf ne Linuxkiste, an der du arbeiten könntest? Wär jetzt ein recht großer Aufwand, das ganze ME-tauglich zu machen (vor allem, weil ich kein ME hab).
Titel: Re: Fragen
Beitrag von: Svenska am 20. May 2005, 10:40
Also zum ersten, ich hab das SDK grade nicht hier in der Schule :)

Zitat von: T0ast3r
Also ich hab da ein paar Fragen an mastermesh und DDR-RAM:
Hoffe, ich darf mich auch dran versuchen. :)

Zitat von: T0ast3r
1.) Wofür ist die Datei SETPATH.BAT und wofür braucht man sie?
Wenn man es ausführt steht da nur "Kein Speicherplatz mehr im Umgebungsbereich".

Du benutzt Windows ME, der Umgebunsspeicher ist begrenzt.

In der Config.sys musst du den Speicherplatz erhöhen, etwa so
SHELL = C:\COMMAND.COM /E:4096 /P
Dann duerfte der Fehler verschwinden. Windows 2k/XP fordert neuen Speicher an, WinME kann das nicht [ist halt noch von DOS gestartet].


Zitat von: T0ast3r
Zu @echo off: warum schaltet ihr die Kommandozeile aus?
Damit man nicht den Schirm mit wertlosen Mitteilungen zugepostet bekommt. Man soll sehen, was die Programme tun, nicht dass der Pfad geändert wurde.

Zitat
Zu set PATH=.\bin.....: Warum steht da immer ein Punkt vor dem Pfad? Werden die Pfade eventuell für make benötigt?
Komme ich gleich zu, sie werden überhaupt benötigt.

Zitat von: T0ast3r
2.) Wofür ist die Verknüpfung SHELL da?
Hier der Verknüpfungsort: C:\WINDOWS\SYSTEM\cmd.exe /k call setpath && more .\doc\readme.windows && prompt $g$g$s

Unter Windows 95/98/ME existiert cmd.exe nicht, nimm stattdessen die C:\WINDOWS\COMMAND.COM. Ich weiss aber nicht, ob der Aufruf dann noch funktioniert.

Zitat
3.) Öfters taucht in Pfadangeben wie zum Beispiel in der Datei "bochscr" der Ordner Temp auf.
Bei mir gibt's da gar keinen Ordner Temp, ich hab aber alles ordnungsgemäß heruntergeladen und extrahiert.

Kann ich grad nicht beantworten. Hast du eigentlich eine Umgebungsvariable Temp gesetzt?
ECHO %TEMP%
ECHO %TMP

sollten das anzeigen. Wenn nicht, setze eine!

Zitat
4.) Gibt's eine Anleitung oder so wie ich den Kernel compilieren kann, so dass ich die Datei Kernel.elf bekomme????

Make und die anderen Tools muessten auch unter Win9x laufen (halt Cygwin), musst halt nur die Umgebung selbst basteln. Wenn du eine Eingabeaufforderung mit der passenden Umgebung aufrufst, duerfte es auch ordnungsgemäss funktionieren.

Zitat von: T0ast3r
5.) Im Ordner BIN befinden sich ja ein paar Ordner mit Compilier Zeugs und so.
Aber wenn ich da das Programm make im ordner gnu starte, gibt's haufenweise Fehlermeldngen das die Dateien nicht gefunden oder geöffnet werden können und so. [...]
Du musst die Umgebung einrichten, was normalerweise die Setpath.bat tun wuerde.

Zitat von: T0ast3r
6.) No support to WinME?

Nein, der Floppyemulator nicht. ME unterstuetzt keine Rawdevices (jedenfalls nicht ohne grossen Aufwand) und das Laufwerk B: kann somit nicht erzeugt werden. Theoretisch könnte man einen Treiber schreiben, aber hey - wer benutzt noch ME? :)
Du kannst aber das Image im Emulator booten und mit z.B. WinImage auch FAT12-Manipulationen machen.

Zitat von: T0ast3r
7.) Wofür ist der Ordner cygwin da, und wofür seine 2 DLL Dateien?

Cygwin hat nichts mit den GNU Tools zu tun und wurde darum getrennt.
Cygwin ist eine Art Linux-API-Emulator, also es werden gewisse API-Funktionen emuliert, damit Linuxprogramme ohne grossen Aufwand portiert werden können. Du musst halt deine Linuxprogramme neu kompilieren; schau mal nach www.cygwin.com.

Zitat von: T0ast3r
8.) Wie make maunzt das Programm Bochs, weil es Dateien nicht finden kann.
SETPATH.BAT ist der Uebeltäter und vllt auch der aktuelle (inkorrekte) Pfad. Von Hand reinwechseln sollte helfen.


Zitat von: T0ast3r
9.) Warum haben die anderen den Ordner Temp und ich nicht?
Kannst ihn ja erstellen :-)

Zitat
Hier ein Zitat aus der Datei "bochscr":
parport1: enabled=1, file="./tmp/debug/parport.txt"
Da steht eben z. B. eine Pfadangabe, die nach tmp verweist.

Das ist in diesem Falle sowas von egal...

Zitat von: T0ast3r
10.) Muss das SDK ZWINGEND in's Root Directory extrahiert werden, oder kann man alles auch in einen andern Ordner extrahieren?
Bei mir läuft es von C:\Documents and Settings\Sebastian\Skrivbord\lost-0\.

Zitat von: T0ast3r
Ich glaub das da noch ein paar Bugs drinnen sind.
Oder halt du etwas anderes gibst, als es erwartet.

Zitat von: T0ast3r
Ich bitte mir diese Fragen zu beantworten.
Ich weiss nicht, ob es hilft, aber ich habe es versucht.

Du musst eine korrekte Umgebung erzeugen, dann sollte alles (ausser dem Emulator) korrekt laufen. Es sind halt diverse Umgebungsvariablen, ein korrekter Ausgangspfad und korrekte Pfade erforderlich.

Svenska
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: sov21 am 20. May 2005, 14:18
Hab auch doch noch mal eine Frage, weil das beim letzten mal nicht so ganz bei mir ankam:

Also der Grub schalten in den Vesa Mode, und startet  erst dann den Kernel?
Und wie ist das mit der Textausgabe des Kernels? Wird die wenn er im Vesa ist einfach ignoriert? Oder im Hintergrund gezeichnet und man sieht sie nur nicht??
Wie ist das?
Gruß sov21
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: mastermesh am 20. May 2005, 14:20
Der Kernel überprüft zur Zeit noch nicht, ob VESA eingeschaltet ist, deshalb wird auch bei eingeschaltetem VESA in den Video-(Text)-RAM geschrieben.
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: sov21 am 20. May 2005, 15:36
Woher weiß ich denn in welcher Adresse Grub den VbeModeInfoBlock abgelegt hat??
bzw. wie komme ich an diesen heran??
Gruß sov21
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: T0ast3r am 20. May 2005, 20:15
Nun ich danke, dass die Fragen von mir beantwortet wurden.
Das hat mir schon weitergeholfen.
Nun hab ich das SDK so ziemlich mgebaut, das es auch unter ME läuft.
Die Umgebungsvariablen hab ich dir ein ei Konig Programm (MsConfig) reingegeben, die shell Datei umgeändert und den Ordner nach C direkt kopiert.
Jetzt läuft alles wie es sein soll.
@mm: Ich könnt auf ne Linux Start CD (Knoppix) zugrifen, aber nun funktioierts eh  :wink:

PS: An Alle Danke für die Beantwortung meiner Fragen!
Titel: Fragen zu: SDK Release Milestone 0
Beitrag von: clemensoft am 03. June 2005, 13:37
Ich sitz hier grad an nem Mac - Kann mit einer mal die Kernel.elf geben? Ich hab noch keinen Cross-Compiler gefunden :oops:  :D
Achso:
[schild=1]Mac OS X ist ein BSD-Unix mit Mach-Mikrokernel[/schild]