Sourcecode Fortschritt
- 
					
					
					
					
 Version 0.0.4.16: - Shortcuts in PrettyOS.odt dokumentiert 
 - CPUID-Funktionen optimiert und Problem mit Clang gelöst
 - Audio-Treiber nun deaktivierbar (_AUDIO_ENABLE_)
 - Zwei potentielle Deadlocks in events.c behoben
 - Eine Allokation in executable.c eingespart
 - Task-Log-Ausgabe besser formatiert
 - Fehlerkorrektur im Maustreiber: Eine PS/2-Maus sendet anscheinend immer ACK
 
- 
					
					
					
					
 Version 0.0.4.17: - Register/Memory-Clobbering bei Inline-Assembler (behebt u.a. bug mit GCC 4.7.2) 
 - Fehler in vsnprintf behoben: String muss nullterminiert werden (wenn Platz ist)
 - Optimierungsstufe -O2 auch im Userspace
 - Fehlendes va_end in serial_log ergänzt
 
- 
					
					
					
					
 Version 0.0.4.18: - CapsLock-Unterstützung im Keyboardtreiber eingebaut 
 - make_initrd und CreateFloppyImage aufgeräumt. make_initrd als C++-Program umgeschrieben. Flexible Anzahl von Headern in Ramdisk (reduziert Kernelgröße um 4,67 KiB)
 - ivt-Pointer in vm86.c volatile, damit der Speicherzugriff nicht wegoptimiert wird
 - Bugfix in Shell: Letzten 3 Zeichen einer Zeile werden richtig gelöscht
 
- 
					
					
					
					
 Version 0.0.4.19: - ataPoll in readSectorPIOLBA28 aufgerufen, um Lesefehler zu beheben (JonasOSDever) 
 - maxcls im FAT-Treiber nicht mehr von USB-Stick-Größe abhängig
 - ATA/HDD im Devicemanager nicht mehr als "Unknown" angezeigt
 - Logausgabe im HDD-Treiber Windows-konform umgebrochen (\r\n)
 - HDD-Testcode in ckernel.c entfernt, da obsolet
 
- 
					
					
					
					
 Version 0.0.4.20: - Unterstützung für C++-Userprogramme in user/other_userprogs 
 - Neues Userprogramm: Editor (C++). Kann bislang nur Dateien anzeigen (absoluten Pfad als erstes Kommandozeilenargument übergeben)
 - -ffreestanding sollte nicht für Userprogramme verwendet werden (Ermöglicht C++-Userprogramme mit Clang)
 - fgetc() sollte EOF zurückgeben, falls das Dateiende erreicht wurde
 - PRINT+h (Screenshot auf Harddisk) dokumentiert
 - Hacks in der Umgebung von saveScreenshot etwas verringert
 
- 
					
					
					
					
 Version 0.0.4.21: - Performance-Verbesserung für Textmodus: VGA-Cursor deutlich seltener verschoben (Behebt Einfrieren in Hyper-V) 
 - Hinweise zu volatile bei inline-Assembler aus dem GCC-Manual befolgt - entfernt, wo unnötig
 
- 
					
					
					
					
 Version 0.0.4.22: - ATA-Treiber läuft nun unter echter Hardware (VORSICHT bei HDDs, die wichtige Dateien enthalten!); Diverse Probleme behoben. 
 - Bugfix in printf: Größenangaben > 4 GiB möglich
 - Fehlerausgaben im Maustreiber vereinheitlicht
 - test-results.txt aktualisiert
 - sysenter-Handler etwas optimiert
 - refreshUserScreen aktualisiert nur noch den User-Bereich (Scrollen kopiert weniger Zeichen im Textmodus)
 
- 
					
					
					
					
 Version 0.0.4.23: - Falsche Bootdevice-Angaben im Bootloader Stage 1 und 2 korrigiert (Erhöhte Erfolgswahrscheinlichkeit, wenn man von USB booten will) 
 - timeout-Funktion von scheduler_blockCurrentTask korrigiert
 - Nullterminierung in vsnprintf/snprintf sichergestellt
 - C99-Funktionen in C-Standardbibliothek ergänzt
 - IRC-Client erweitert: Kommandos können gesendet werden (mit / beginnen, oder strg+c) (JonasOSDever)
 
- 
					
					
					
					
 Die neue Revision baut bei mir nicht (letzten Zeilen der log-Datei): ..\user_tools\prettylib.a(userlib.o) : In function vsnprintf': userlib.c: (.text.vsnprintf+0x0): multiple definition ofvsnprintf'
 ..\stdlibc\stdlibc.a(stdio.o):stdio.c : (.text.vsnprintf+0x0): first defined here
 ..\user_tools\prettylib.a(userlib.o): In functionsnprintf': userlib.c: (.text.snprintf+0x0): multiple definition ofsnprintf'
 ..\stdlibc\stdlibc.a(stdio.o):stdio.c: (.text.snprintf+0x0): first defined here
 mingw32-make[1]: *** [browser.ELF] Error 1
 mingw32-make: *** [other_userprogs] Error 2
 
- 
					
					
					
					
 woran das liegt, kann ich gerade nicht erkennen. normalerweise gibt es solche fehlermeldungen, wenn man funktionen oder prototypen doppelt schreibt. was mir aber auffällt: in "userlib.h" fehlt der prototyp für vsnprintf und snprintf. 
 
- 
					
					
					
					
 Ich habe wohl vergessen, die Implementation in der userlib zu löschen. Danke für den Hinweis. 
 
- 
					
					
					
					
 Version 0.0.4.23 - Revision 1409: - Compilerfehler behoben - doppelte vsnprintf/snprintf-Implementation gelöscht 
 
- 
					
					
					
					
 Version 0.0.4.24: - Schreibschutz im Paging aktiviert - Kernel-Code gegen Überschreiben geschützt 
 - Bootloader optimiert: BL2 übernimmt Daten von BL1, anstatt sie selbst noch einmal zu speichern
 - Fehlendes Register-Clobbering ergänzt (führte zu Problemen, wenn mit O3 kompiliert wird)
 - Größere Objekte auf den Heap gelegt (Verkleinert den Kernel um mehrere KB)
 - Zugriff auf uninitialisierte Variable entfernt (cppcheck-Fund)
 - Einheitliche NULL-Definition
 
- 
					
					
					
					
 Mr X schrieb: - Einheitliche NULL-Definition  
 Anscheinend hat man meine Ratschläge doch nich ein bisschen ernst genommen.
 
- 
					
					
					
					
 Version 0.0.4.25: - Bessere Trennung von usb und usb-MSD 
 - Neue Funktion strdup im Kernel - Ersetzt mehrere malloc+strcpy durch effizienteres memcpy
 - Const-correctness erhöht
 - Lizenztext in stdlibc eingebaut
 
- 
					
					
					
					
 Version: 0.0.4.26 - rev. 1412: 
 usb.c: Prüfen auf usb-Hub und erste Verhinderung sinnloser Maßnahmen am "Device".bool hub = IsUsbHub(device)Edit: Fehler wurde in rev. 1413 korrigiert. 
 
- 
					
					
					
					
 Version: 0.0.4.27 - rev. 1413: 
 Wichtige Korrektur: reset von success ergänzt, damit die Idee von rev. 1412 wirklich funktioniert.Weitere erste Informationen zur korrekten Behandlung von Hubs: 
 http://www.lowlevel.eu/wiki/USB#Enumeration_beim_Hochfahren
 http://www.beyondlogic.org/usbnutshell/usb4.shtml#Interrupt
 http://en.wikipedia.org/wiki/USB_hub#Protocol
 http://www.beyondlogic.org/usbnutshell/usb5.shtml
 http://www.usb.org/developers/defined_class
 
- 
					
					
					
					
 Version 0.0.4.28: - Speicherlecks in GUI und USB beseitigt 
 - strcpy durch memcpy oder strdup ersetzt, wo möglich
 - USB/*HCI-Abstraktion weiter verbessert
 - deleteNode in IPC implementiert
 - Kleinere Verbesserungen im Netzwerkbereich
 
- 
					
					
					
					
 Version: 0.0.4.29 - rev. 1415: 
 Der Hub wird nun wie ein anderes usb-Gerät nummeriert.Hubs are also USB devices, and the host enumerates a newly attached hub in the same way as other devices. If the hub has devices attached, the host enumerates these after the hub informs the host of their presence. Quelle: http://www.lvr.com/usbcenum.htm Abfragen weiterer am Hub angeschlossener Geräte führen wir momentan noch nicht durch (interrupt Transfer notwendig). 
 
- 
					
					
					
					
 Erstlings-Commit  Version 0.0.4.30 - Rev: 1416 - ATA-Treiber aufgeraeumt, LBA48-Unterstuetzung eingebaut (momentan noch deaktiviert, da nicht praktisch getestet), mehrere Sektoren unterstuetzt, LOG-Ausgaben durch _HDD_DIAGNOSTICS_explizit de- und aktivierbar
- HDDPIODISK in HDDDISK umbenannt; DMA soll spaeter transparent ansprechbar sein
- HDD-Screenshot-Funktion in ckernel.can eingeschalteten HDD-Support geknuepft
- Um Benutzung von HDDDISKbei abgeschaltetem HDD-Support vorzubeugen Definition vonHDDDISKan ein definiertes_ENABLE_HDD_geknuepft (gibt Linker-Error bei versehentlicher Benutzung)
- Helper repinsb/w/l und repoutsb/w/l util.hhinzugefuegt
- Tab in usb.ckorrigiert
 
 
- ATA-Treiber aufgeraeumt, LBA48-Unterstuetzung eingebaut (momentan noch deaktiviert, da nicht praktisch getestet), mehrere Sektoren unterstuetzt, LOG-Ausgaben durch