Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Nachrichten - streetrunner

Seiten: 1 [2] 3 4
21
OS-Design / Re: Pulsar Fehler
« am: 17. September 2013, 10:07 »
Falls du einen verschiebbaren Cursor hast würde ich das an der Position des selbigen festmachen, denn wenn dieser an den Anfang verschoben wird nützt einem die Anzahl der eingegebenen Zeichen herzlich wenig.
22
Softwareentwicklung / Re: [All In One]-Question lolxdfly
« am: 16. September 2013, 19:35 »
Zu Frage 0: Wenn Tante Google da nichts findet, dürfte die Wahrscheinlichkeit eher gering sein. Außerdem hat es schon seine Gründe, warum man einen Kernel in C ohne die beiden + schreibt. Aber letztenendlich dürfte es kein Problem darstellen einen C-Kernel in C++ nachzuprogrammieren, der Code könnte sogar fast der selbe sein (es zwingt dich ja keiner dazu Klassen zu verwenden). Das einzige Problem das ich immo sehe ist dass der Inline-Assembler wegfällt, womit du diesen Code als Funktionen in eine eigene Datei stecken musst.

Zu Frage 1: Hier http://www.lowlevel.eu/wiki/Teil_5_-_Interrupts findest du Interrupts, und hier http://www.lowlevel.eu/wiki/Keyboard_Controller wie du den Tastatur-Controller benutzt. Wenn du dann noch die Foren-Suche benutzt solltest du alles beisammen haben um die Tastatur ans laufen zu bekommen.

Zu Frage 2: Um Pixel anzuzeigen kannst du dich entweder mit VESA rumärgern, welches nur so lala funktioniert aber einen riesen Aufwand bedeutet, oder einen Grafiktreiber schreiben, was noch wesentlich mehr Aufwand bedeutet.
23
Softwareentwicklung / Re: GRUB4DOS C++Kernel
« am: 06. September 2013, 19:53 »
Wenn du in das GRUB4DOS-Menü zurückkommst heißt dass, das dein Emulator neu gebootet hat, so fern man das so nennen kann. Das heißt dass irgendetwas mit deinem Kernel so nicht stimmt, dass sich der Emulator veranlasst fühlt dies zu tuen.

Woran es genau liegt kann dir normalerweise der Emulator sagen. Qemu kannst du in der Konsole mit "qemu -d int, cpu_reset" starten, dann schreibt das Programm alle Interrrupts und Resets in eine Datei namens qemu.txt. Wie das bei anderen Emulatoren geht weiß ich nicht ich nutze nur qemu.
24
Softwareentwicklung / Re: GRUB4DOS C++Kernel
« am: 05. September 2013, 22:18 »
Versuch es mal mit der Taste "c", damit solltest du in die Grub-Konsole kommen. Da dann deinen Kernel laden und booten.
25
Softwareentwicklung / x64-Cross-Compiler für Windows
« am: 01. September 2013, 21:09 »
Hallo zusammen,

ich habe im Wiki dieses Tutorial gefunden: http://www.lowlevel.eu/wiki/Cross-Compiler

Beim Versuch die Binutils zu kompilieren sagt man mir dass in etlichen Dateien Variablen gesetzt aber nicht genutzt werden. An sich ist das kein Problem, aber anscheinend wird das makefile so erstellt dass alle Warnungen als Fehler erscheinen. Leider ist das makefile über 14k Zeilen lang, so dass ich auf Anhieb nicht weiß wo man das umstellen kann.

Gruß,

Streetrunner

PS: Die im Tutorial angegebenen Binutils gibt es nicht mehr.
26
Lowlevel-Coding / Re: kbc hilfe
« am: 11. August 2013, 12:47 »
Zitat
Ok, also benutze ich den inline assembler und lege dann z.B auf eax den keycode?
Nicht ganz. Ich denke mal Dein Syscall ist ein einfacher Interrupt. Dein Interrupt-Handler sichert bei einem Interrupt alle Register auf den Stack. Die dabei entstandene Struktur kannst Du dann später auslesen und verändern. Beim zurückkehren werden alle Register vom Stack wiederhergestellt. Wenn Du nun die Struktur so änderst, dass Du in eax den Rückgabewert hast, wird dieser eben auch wieder hergestellt. Wenn Dein Programm dann nach dem Interrupt weiterläuft kannst Du mit Inline Assembler das Register eax in eine Variable Deiner Wahl befördern und damit ganz normal weiterarbeiten.
Gruß,
Streetrunner
27
Ich meine die ersten Rechner wurden sogar durch "umverkabeln" der einzelnen Komponenten programmiert (ENIAC war da so ein Kandidat). Das wäre dann noch mehr Arbeit, und bestimmt ists ab und an im Chaos versunken.
28
Hexadezimal (Ziffern von 0-F) ist nur eine andere Schreibweise für Zahlen, so wie wir normalerweise das Dezimalsystem benutzen (Ziffern von 0-9). Der Computer kennt halt nur 0 und 1, aber diese Systeme lassen sich alle in einander umrechnen. Und wenn du deine Opcodes mit einem Hex-Editor in eine Datei schreibst lässt sich damit bestimmt auch programmieren...stelle ich mir nur SEHR SEHR mühsam vor.
29
OS-Design / Re: Anfängerfragen zu Paging
« am: 07. August 2013, 19:43 »
Nun, vllt. habe ich mich etwas unklar ausgedrückt :-D: In deiner Variable hällst du fest welche Speicherseiten belegt sind und welche nicht. Du musst aber bevor du deinen Kernel kompilierst festlegen wie viel Speicher Du maximal verwalten kannst. Wenn du nun 1048576 Blöcke hast, aber dein System nur 256MB Speicher, dann liegt eine ganze Menge deiner Blöcke brach. Heutzutage nicht schlimm, blöd ist es nur wenn du zu wenig Blöcke hast. Dann kannst du nicht den ganzen Speicher verwenden, außer du "bastelst" was hinten dran (und sowas wird [zumindest bei mir immer] echt unschön).
30
OS-Design / Re: Anfängerfragen zu Paging
« am: 07. August 2013, 19:21 »
Zitat
Achso, weil das eine globale/statische Variable ist, oder wieso?
Leider ist sie mit "statisch" auch wirklich statisch :-(, was bedeutet das sie entweder zu groß oder zu klein dimensioniert ist, aber wohl in den wenigsten Fällen genau die passende Größe hat.
31
Softwareentwicklung / Re: OS ausführen/brennen/installieren?
« am: 04. August 2013, 23:20 »
Fehlt ja nur noch Wasser, Salz und Energie  :-D.
So einen Fehler hatte ich auch vor kurzem, vllt. war es sogar der selbe. Qemu weigerte sich einfach ein Fenster zu öffnen bzw. startete gar nicht wirklich. Das lustige an der Sache war das Grub auf meinem Rechner anstandslos den Kernel gebootet hat. In der stderr.txt stand was von einem Fehler beim laden der Datei vom ROM, vllt. hilft es ja weiter. Hab den Fehler nicht weg bekommen, habe ein anderes Projekt kopiert und geändert, das hat ohne Probleme funktioniert :?.
32
Softwareentwicklung / Re: OS ausführen/brennen/installieren?
« am: 03. August 2013, 23:50 »
Mal ne frage zu qemu -kernel dateiname:
Kann man qemu irgendwie dazu auffordern nur einmal zu booten und nicht nach einem Tripple-Fault wieder von vorne anzufangen??? Denn bei kleinen Kerneln kann es schon mal schnell vorkommen das man nur noch einen flackernden Bildschirm vor sich sieht, ohne daraus etwas ablesen zu können (ist mir heute passiert, da wurde doch glatt der Stack zu groß und schwupps hat qemu mir ne "Invalid Opcode" Exeption um die Ohren gehauen, und dass nicht nur einmal sondern locker 10 pro Sekunde :x ).
33
Vielleicht wäre es gut eine neue Seite zu erstellen wo man die gängigsten Compiler-Flags auflistet und kurz erklärt. Da könnte man auch -mno-red-zone mit reinpacken und direkt dazu schreiben dass es wohl besser ist dieses Flag für x86_64 zu nutzen.

Sonst könnte man auch hier http://www.lowlevel.eu/wiki/Long_Mode einfach einen neuen Unterpunkt "Probleme im Long Mode" o.Ä. aufmachen.
34
Offtopic / Re: Logisim CPU
« am: 26. July 2013, 09:13 »
Zitat
ist das doch am ende der beiden letzten taktzyklen ?
Unterbrechen ist bei mir 'mit etwas beginnen und nicht fertig werden', was Du meinst ist das Dein erster Takt überhaupt nicht ausgeführt wird. Ja, ich denke mal so wäre es richtig, es sei denn irgendwer hätte noch eine andere Idee.
35
Offtopic / Re: Logisim CPU
« am: 25. July 2013, 18:52 »
Zitat
nur der erste Takt-zyklus( 1 Takt:Befehl laden,IP erhöhen) kann durch ein Interrupt  unterbrochen werden
Unterbrechen würde ich nur nach ganzen Befehlen, also jeweils am Ende deiner 2 Taktzyklen. Das erspart dir jede Menge Arbeit, da du nicht speichern musst wo dein erster Zyklus unterbrochen wurde (zu Beginn, nach dem Befehl hohlen, nach dem IP inkrementieren)

Und denke dran für deine Notfall-Interrupts ein änliches Register wie das EPC vorzusehen, sonst kann es sein dass es Probleme mit dem Wiedereintritt in deinen eigendlichen Interrupt-Handler gibt.
36
Offtopic / Re: Logisim CPU
« am: 25. July 2013, 11:27 »
Es ist einfacher einen Befehl nicht zu unterbrechen, sondern ihn immer zu Ende laufen zu lassen. Wenn man dann den IP speichert, der ja schon auf den nächsten Befehl zeigt, kann man nach einem 'iret' einfach da weitermachen wo man unterbrochen wurde.
37
Lowlevel-Coding / Re: IRQ 11 auf Hardware
« am: 23. July 2013, 17:19 »
Ich würde eher sagen sein Code ist falsch. In der zweiten Zeile in irq_mask() castet er erst seinen u16-Wert in ein u8, um ihn dann um 8 Stellen nach rechts zu verschieben. Wenn mich nicht alles täuscht dann sollte sein Wert dadurch mit Nullen aufgefüllt werden, wodurch alle Interrupts Demaskiert werden.
38
Offtopic / Re: Logisim CPU
« am: 19. July 2013, 14:05 »
Ich verstehe nicht ganz was Du meinst.  :?
39
Offtopic / Re: Logisim CPU
« am: 18. July 2013, 14:44 »
Zitat
Ergibt 512 MB maximalen RAM
Aber nur wenn du darauf aus bist deine Pages kreuz und quer über den RAM zu verteilen. Wenn man die Pages z.B. 4k aligned über den Speicher verteilt dann würden zu den 29 Bit nochmal 12 dazu kommen, damit gibt das dann weit mehr als 512MB an RAM.
40
Lowlevel-Coding / Re: DMA im LongMode
« am: 17. July 2013, 12:24 »
Ah ok, danke für die schnelle Antwort.
Irgendwo und irgendwo unter 4GB sollten reichen, ob ich ISA-DMA brauche weiß ich zwar nicht aber mangels Floppy und anderer älterer Gerätschaften denke ich dass ich ganz gut darauf verzichten kann.
Seiten: 1 [2] 3 4

Einloggen