Sourcecode Fortschritt
- 
					
					
					
					
 Nach zahlreichen Änderungen, Verbesserungen und neuen Funktionen und genau 200 Revisionen nach 0.0.3.0 erhöhen wir die Versionsnummer auf: PrettyOS 0.0.4.0Neue Features:- Erweiterte USB-Unterstützung 
 -> UHCI-, OHCI-Treiber neu
 -> EHCI-Treiber deutlich verbessert
 -> USB-Code deutlich überarbeitet
 - CDI-Unterstützung
 -> e1000-Treiber eingebunden
 - PrettyIPC-Baum
 - Vollständige Clang-UnterstützungVerbesserungen:- Bootloader optimiert 
 - "File not Found"-Fehler behoben
 - Einige neue Userprogramme, alte verbessert. Lizenzen vereinheitlicht.
 - Erweiterte Debug-Funktionalität: Broken-Free-Diagnose
 - Ausgabecode von Kernel in Shell/Userspace verlagern
 - fast vollständige C-Standardbibliothek (Userbereich)
 - Zahlreiche kleine Bugfixes und VerbesserungenVersion 0.0.4.0 - Rev. 1383- APIC-Rahmen eingefügt; noch deaktiviert. 
 
- 
					
					
					
					
 Version 0.0.4.1: - APIC-Registeradressen korrigiert 
 - APIC+PIC-Modus, bis unser APIC-Treiber fertig ist; APIC-Treiber aktiviert
 
- 
					
					
					
					
 Version 0.0.4.2 - Rev 1385ac97.h/c für Multimedia Controller Audio als Frame hinzugefügt Test mit qemu mittels -soundhw ac97 In pci.c findet man bisher: if (PCIdev->classID == 0x04 && PCIdev->subclassID == 0x01) // Multimedia Controller Audio { if (PCIdev->vendorID == 0x8086) // Intel { install_AC97(PCIdev); } }
 
- 
					
					
					
					
 Version 0.0.4.3: - Audiotreiberschnittstelle hinzugefügt 
 - VCcompatibility.h verbessert:
 -- Compiler-Macros in Abhängigkeit der gewählten Konfiguration definiert
 -- Schlüsselwort restrict (C99) durch Präprozessor versteckt.
 
- 
					
					
					
					
 Version 0.0.4.4 - Rev 1387install_AC97(pciDev_t* device) weiter entwickelt. 
 reset / volume / sample rate
 
- 
					
					
					
					
 Version 0.0.4.5: - Beepton mit AC97 erzeugt 
 
- 
					
					
					
					
 "0.0.4.6 - Rev: 1390" (in Datei versehentlich 0.0.4.5) ac97.h angepasst und erweitert entsprechend AC97 spec. Bezüglich NAM-bar und NABM-bar Diskussion siehe: http://www.koders.com/c/fidCF4F2F224B1F26DCA9CACD6398B49BBC3C8920F0.aspx?s=cdefs.h 
 
- 
					
					
					
					
 Version 0.0.4.7: - AC97-Interrupts behandelt -> System friert nicht mehr ein 
 - Konfiguration gemäß Spezifikation (soweit vorhanden) angepasst
 - Deskriptoren und Buffer dynamisch allokiert und aligned
 
- 
					
					
					
					
 Version 0.0.4.8: - Diverse kleinere Codekorrekturen basierend auf cppcheck-Ergebnissen: 
 -- Debug-Code in dhcp.c hinter Präprozessordirektiven versteckt
 -- Vorzeichen von Variablen und in printf-Formatstrings korrigiert
 
- 
					
					
					
					
 Version 0.0.4.9: - Neues Userprogramm "Device Manager" (devmgr.elf): Zeigt PCI-Geräte mit Namen und Details an. 
 - PCI-Vendorliste aus dem Kernel entfernt (Kernel erheblich schlanker (50% kleiner), Funktionalität nun in devmgr.elf)
 - Bugfix: ipc_getFolder() gibt keinen Datenmüll mehr zurück
 
- 
					
					
					
					
 Version 0.0.4.10: - folderAccess für Wurzelverzeichnis implementiert (Ergebnis kann bis auf weiteres mit strg+f aufgerufen werden) 
 - HACK im devicemanager entfernt (obsolet, führte zu Schreibzugriffen auf nicht allokierten Speicher. Danke Jonas_OSDever für die Hilfe beim Debuggen.)
 - Bugfix: disk_t::name kann 0 sein (bei Disketten)
 - Ausgabe "Unknown" für unbekannte Disk-/Port-Typen
 
- 
					
					
					
					
 Version 0.0.4.11: - ATA/HDD-Treiber (Patch von JonasOSDever. Siehe auch: http://www.c-plusplus.net/forum/311318) 
 - Absturz wg. uninitialisierter Variable behoben
 
- 
					
					
					
					
 Version 0.0.4.11 - Revision 1396: - svn::mime-type und svn::executable für diverse Dateien gesetzt 
 - PrettyOS.odt und Syscalls.odt aktualisiert. Erstere neu formatiert.
 
- 
					
					
					
					
 Version 0.0.4.12: - GCC-4.7.2-Kompatible Userlib 
 - Fehler durch ungenaue Fließkommarechnungen bei clang behoben
 - Compilerfehler mit _FAT_DIAGNOSIS_ behoben
 - disk_t::size als 64-bit Integer - Festplatten können größer als 4 GiB sein. %Sa, %Sg, %Sm und %Sk erfordern 64-bit int.
 - Verschiebung der PCI-Vendorliste in VS10-Projektmappe nachgetragen
 - VCcompatibility.h ergänzt und aktualisiert (GCC 4.7.2 als Standard)
 
- 
					
					
					
					
 Version 0.0.4.13: 
 - bochs.bxrc korrigiert: Aktualisiert für Bochs 2.6, relativer Pfad zum Floppyimage
 - Optimierung: memset durch statische Array-Initialisierung ersetzt, wo möglich
 - Scope einiger Variablen im FAT-Treiber reduziert
 - Typkorrekturen: uint8_t vs. int8_t/char
 - Fehlerbehebung in C++-Userlib: clang verhält sich wie 4.5/4.6
 
- 
					
					
					
					
 Version 0.0.4.14: 
 - HDD-Treiber auf Interrupts umgebaut (JonasOSDever)
 - Compilerfehler in paging.c behoben, wenn _DIAGNOSIS_ aktiviert ist (JonasOSDever)
 - Datum im Bootscreen auf 2013 gesetzt
 
- 
					
					
					
					
 Version 0.0.4.15: - Codeduplikation in makefiles reduziert 
 - VS-Ausgabeformat bei Clang verwendet
 - Lowercase/Uppercase-Problem unter Linux behoben (Fund von Paddy)
 - void foo(); prototypen zu void foo(void) geändert. In C besteht ein Unterschied, nämlich ob die Funktion beliebig viele Argumente akzeptiert oder nicht. Dabei aufgedeckte Fehler behoben. (Fund von Paddy)
 - jmp $2 statt 4x nop im hdd-Treiber
 - Padding-Bytes in einigen Strukturen reduziert
 
- 
					
					
					
					
 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