Sourcecode Fortschritt
-
version 0.0.1.118 - Rev: 688
- data.asm
font.bmp kernel include via incbin gelöscht. (kernel größe verkleinern)- ckernel.c
Bitmap Palette Entries, Debug meldung erstmal wieder auskommientiert- Source/tools/font2bin.exe
gelöscht
-
Hier mal ein Screenshot zur Dokumentation:
http://www.henkessoft.de/OS_Dev/Bilder/0_0_1_118_drawstring_bitmap.PNG
-
version 0.0.1.118 - Rev: 689
vbe.c/.h
- aufgeräumt
- starte umsetzung von getDisplayStart()
-
version 0.0.1.119 - Rev: 690
- getDisplayStart() funktionierend gemacht (Werteübergabe an 0x1300 u. 0x1302)
- netzwerk etwas überarbeitetFunktioniert auf meinem Test-PC.
-
Version 0.0.1.120:
- irq.c vereinfacht (switch statt stark verschachtelter ifs) und aufgeräumt
- PrettyOS fragt nun, ob VBE-Test durchgeführt werden soll, mit 's' kann dieser übersprungen werden
- Dokumentation aktualisiert
-
0.0.1.121 - Rev: 692
aktueller stand netzwerk
Ziel: Echo Reply für Ping eines anderen Rechners im Netz:
http://en.wikipedia.org/wiki/Ping#Echo_reply
-
0.0.1.122 - Rev: 693
aktueller stand netzwerk
-
Version 0.0.1.123
- irq-System nochmals überarbeitet
-- GPF, PF, NM und invalidOpcode werden nun auch über einen Handler angesprochen (ISR)
-- Handler-Array auf 256 vergrößert (für ISR), Offset von 32 wird automatisch addiert bei IRQs (Und Bugfix gleich dazu: IRQs > 255-32 funktionieren nun)
- VBox-Workaround in ehci.c entfernt. Offenbar nicht mehr nötig
- Bug mit Cursor in console.c behoben
- draw_char und draw_string in drawChar und drawString umbenannt (Styleguide-Konformität)
- Aufräumarbeiten
-
0.0.1.124 - Rev: 695 (leider nicht upgedatet in ckernel.c)
-
0.0.1.125 - Rev: 696
nun wird
network_bufferPointer = *((uint16_t*)(BaseAddressRTL8139_MMIO + 0x3A));
genutzt
-
0.0.1.126 - Rev: 697
#define NETWORK_BUFFER_SIZE 8192 network_bufferPointer = *((uint16_t*)(BaseAddressRTL8139_MMIO + 0x3A)) % NETWORK_BUFFER_SIZE;
-
version 0.0.1.127 - Rev: 698
vbe.c/h
- drawChar(...), Set_DAC_C herausgenommen um nicht für jeden zu zeichenden Buchstaben die Palette neu zu setzen (Performance schub)
- setDisplayStart(...) Hinzugefügt
-
Version 0.0.1.128 - Rev: 699
- rtl8139.h/c mit definierten Symbolen zur besseren Lesbarkeit versehen
- PCI bus mastering eingeschaltet (analog EHCI)Literatur-Link von somone: http://www-vs.informatik.uni-ulm.de/teach/ss02/sp/Kap12.pdf
-
Version 0.0.1.129 - Rev: 700
Korrekte Lese-Zeiger-Positionierung in rtl8139.c
-
Version 0.0.1.130 - Rev: 701
- Ausdruck verbessert
- 1 sec halt nach packet (ideal für PC)Letzte Version, die momentan sauber läuft
-
Version 0.0.1.131:
- Kernel startet (nach Tastendruck, damit man die Fehlermeldung lesen kann) neu, wenn der kerneltask beendet wird (#PF o.ä.)
- Aufgeräumt (insbesondere task.c/h, dort cli/sti geändert)
-
Version 0.0.1.132 - Rev. 703
- ipTcpStack.h/c umgebaut, damit ARP-Requests/Replies ausgewertet werden
- struct ip in ipTcpStack.h überarbeitetscreenshot: http://www.henkessoft.de/OS_Dev/Bilder/0_0_1_132_arp-request.PNG
Bereits in der Vorgänger-Version (commit von MrX) ist (auf qemu und VMWare festgestellt) ein neuer mieser Bug drinnen, der zu #GPF und Reboot führen kann.
Das stört die Netzwerkbemühungen leider.
-
Version 0.0.1.133 - Rev. 704
Problem: GPF stoppt mit quitTask die shell ohne restart action
folgender HOTFIX in irq.c bewahrt vor dem Absturz:
static void quitTask() { printf("| <Severe Failure - Task Halted> Press key for exit! |"); sti(); // while(!keyboard_getChar()); exit(); for (;;); }
Damit wird das exit() ausgeführt ohne Abhängigkeit vom Keyboard, das evtl. nicht mehr durchdringt.
Der Auslöser ist übrigens das quitTask() in irq.c, zeile 206, also in diesem Zweig:
if (r->int_no < 32 && r->int_no != 7 && !(r->eflags & 0x20000)) // no VM bit
Tests dieses HOTFIX:
- VBox dreht völlig am Rad (#PF loop)
- VMWare schmiert beim Laden eines User-Programms ab
- Bochs läuft
- qemu läuft, shell kann aber auch zerstört werden
- echter PC läuft, Laden/Ausführen eines User-Programms klappt, anschließend beim Rücksprung erfolgt Fehler mit exit(), anschließend ist die shell kaputt (Neustart fehlt! )Problem seit Version 0.0.1.131: shell / Beenden User-Programm (Rücksprung zur shell).
Auf jeden Fall haben wir jetzt eine Version, an der man die vbe-Aktivitäten und das Networking weiter untersuchen/ausbauen kann.
Falls der Fehler nicht aufgeklärt wird Roll-back zu 0.0.1.130Solche Situationen werden immer wieder auftauchen, weil unsere Test-Mechanismen nicht ausreichen, solche Commits wie 0.0.1.131 von MrX zu verhindern.
-
version 0.0.1.134 - Rev: 705
http://www.rfc-editor.org/rfc/rfc793.txt <--- TRANSMISSION CONTROL PROTOCOL
http://www.rfc-editor.org/rfc/rfc768.txt <--- USER DATAGRAM PROTOCOL- udp.c/h Dateien angelegt
- Kommentare in rtl8139.c / ipTcpStack.c eingefügt
Mir ist aufgefallen das der Kernel noch über keine Powermanagment Funktionen, wie APM oder ACPI verfügt!
-
Version 0.0.1.135 - Rev: 706
- userlib.h/c korrigiert (file-funktionen hatten falsche syscall-Nummern)