Sourcecode Fortschritt
-
Wir könnten noch ein bis zwei Unterstützer/Developer gut brauchen. Der Chat ist regelmäßig aktiv. Seid willkommen! http://www.prettyos.de
-
Werd mal vorbeischauen.
-
Version 0.0.5.111:
- Paging-Modul überarbeitet:
-- Threadsicherheit mit Mutex hergestellt
-- Erste Page (0x00000000 - 0x00000FFF) gegen Schreibzugriffe geschützt
-- paging_createUserPageDirectory und paging_destroyUserPageDirectory umbenannt, Kommentierung verbessert
- VM86 repariert: Addressen korrigiert; mit eigener Page-Table ausgestattet
- Videomanager: Abfangen von leerer Eingabe bei Modusauswahl
-
Version 0.0.5.112:
- Bugfix: OHCI-Treiber initialisierte o->interrupt_baseEDs[i].tdQueueTail nicht
- Bugfix: dns_setServer() und dns_getServer() stürzen nicht mehr ab, wenn keine Netzwerkkarte vorhanden ist.
- Makefile: -fno-delete-null-pointer-checks im Kernel aktiviert (nur GCC)
- Userspace: C-Standardbibliothek um zahlreiche C99/C11-Funktionen erweitert
- Shell: Befehl 'hi' entfernt
- Codestil: -Wstrict-prototypes aktiviert, Warnungen behoben
- Textausgaben, Kommentare und Dokumentation verbessert
- VM86: Opcodes INSB/W/D, OUTSB/W/D, sowie Unterstützung von rep-Präfix und Segmentoverrides implementiertFrohe Weihnachten!
-
Version 0.0.5.113:
- Fehlerbehebung: ACPI-Modul löschte Allozierung der ersten physischen Speicherseiten, die dann von malloc wiedervergeben wurden. Dadurch wurde die IVT beschädigt.
- Fehlerbehebung: Nullpointerdereferenzierung im FAT-Treiber behoben
- Fehlerbehebung: Register-Clobbering korrigiert
- RTL8139: Rx-Buffer-Wrap-Around korrekt behandelt, bessere Fehlerbehandlung
- RTL8168: Schutz vor Speicherüberlauf bei Paketen mit Länge < 4 Byte
- Fehlende semaphore_t-Funktionen implementiert
- OSXMMEXCPT in CR4 aktiviert (SSE-Unterstützung)
-
Version 0.0.5.114:
- Fehlerbehebung: Stack-Layout bei VM86-Interrupts korrigiert. Es müssen 16-bit-Werte in der richtigen Reihenfolge gespeichert werden (vielen Dank an Paddy für die Entdeckung des Fehlers).
- RTL8168: Prüfsummenabladung aktiviert
- VM86: Behandlung von Fehlern verbessert; keine Tastendruck-Abfrage vor Beenden des Tasks
- APM: Aktiviert, da nun funktionsfähig.
- cpu.h: Diverse CPUID-Featureflags hinzugefügt
-
BTW: Hier gibt es ein interessantes OS das in rust geschrieben ist. Es ist noch jung, sieht aber vielversprechend aus. Ein rudimentärer ZFS-Support ist schon implementiert und wird ausgebaut.
Kann sicherlich noch Man-Power gebrauchen.
-
Es ist schon bemerkenswert, mal ein recht fortgeschrittenes OS zu sehen, das nicht in C, C++ oder Assembler geschrieben ist. Klingt nach einem Fall für diese Liste: https://www.c-plusplus.net/forum/273023
Version 0.0.5.115:
- TCP: Speicherlecks geschlossen und Code aufgeräumt
- RTL8168: Konfigurationsregister müssen nicht entsperrt werden, RTL8168_CPCMD gesetzt, weniger Interrupts aktiviert
- APM: Textausgabe optimiert, Fehlerbehandlung verbessert
- UDP: Prüfsummenabladung aktiviert
- Fehlerkorrektur: ISRs 17 (#AC) und 30 (#SX - nur AMD-CPUs) liefern einen Fehlercode
- Kleinere Korrekturen und Optimierungen
-
@ShadowClone: Danke für den Hinweis! Habe es bei R eingefügt.
-
Version 0.0.5.116:
- CDI: Header aktualisiert und Implementation erweitert
- Code aufgeräumt und optimiert, insbesondere:
-- dns.c: Kopierschleife durch htons/htonl ersetzt
-- usb_video.c, xhci.c, ohci.c: switch() durch String-Array ersetzt
-- Inline-Assembler-Code optimiert
-
Version 0.0.5.117:
- Audio: Treiber für Via-AC97 hinzugefügt
- EHCI: Probleme mit cHC behoben; PSTS_COMPANION_HC_OWNED darf nicht genullt werden, sonst reißt der EHCI-Treiber ein zuvor an den cHC abgegebenes Gerät wieder an sich.
- USB-HID: Falsche doppelte Tastendrücke behoben
- Code vereinfacht: Funktion event_issueToDisplayedTasks() implementiert
-
Version 0.0.5.118:
- e1000-CDI-Treiber aktualisiert
- VM86: Maskiere Teile von eflags, die nicht verändert werden dürfen
- Videomanager: Vermeide mehrfache Initialisierung
- Fehlerbehebung: Maskierung beim Lesen der PCI-BAR-Adressen korrigiert
- Fehlerbehebung: Powermanagement-Fallback muss immer verfügbar sein
- Fehlerbehebung: Korrekte Erkennung fehlender oder leerer VBE-Modelisten
- Fehlerbehebung: isxdigit() korrekt implementiert
-
Version 0.0.5.119:
- Fehlerkorrektur: Compilerfehler in _NETWORK_DIAGNOSIS_ behoben
- Fehlerkorrektur: Dateisystemtreiber müssen fflush nicht implementieren - Absturz behoben
- Log: Bedienung und Implementation weitgehend fertiggestellt
- Grafik-Font optimiert: Leere Zeichen an Beginn und Ende weggelassen
- Kleine Optimierungen
-
Version 0.0.5.120:
- Fehlerkorrktur: Erkenne BMP-Dateien mit übergroßem Header korrekt
- Unterstützung von lauflängenkodierten BMP-Dateien, Bilder entsprechend komprimiert
- Aufspreizung des Farbraums bei 8-Bit-Farben - behebt gelbstich
-
Version 0.0.5.121:
- ACPI: Lese FADT aus
- KBC: Setze Tastatur-LEDs für Num-Lock, Scroll-Lock und Caps-Lock
- KBC: Initialisiere Maus vor Tastatur (nur ein Timeout statt 2, behebt Problem in VirtualBox in Kombination mit Tastatur-LEDs), prüfe Vorhandensein anhand der FADT vor Initialisierung
- event_poll() optimiert: list_find()-Aufruf eingespart
- Clang-Warnung über uint8_t vor ...-Argument behoben
-
Version 0.0.5.122:
- IPv6-Implementation begonnen
- Interne Signallisierung von FPU-Ausnahmen aktiviert
- netbios.h/c entfernt (enthielten keine nennenswerte Funktionalität, und das Protokoll ist obsolet)
- Funktion usb_setupTransfer() in usb_constructTransfer() umbenannt
-
Version 0.0.5.123:
- Treiber für I/O-APIC und Local-APIC getrennt und verbessert. I/O-APIC wird nur genutzt, wenn _IOAPIC_ENABLE_ gesetzt ist
- EOI-Verhalten verbessert: Kein EOI bei Exceptions, kein EOI an PIC, wenn Interruptnummer außerhalb von [32, 48]
- Bugfix: ftoa vergisst nicht länger das Vorzeichen bei Zahlen zwischen 0 und -1
- Bugfix: Initialisiere Konsolenstacks auch wenn displayConsole() nicht aufgerufen wird
- Tippfehler: CF_MTRR statt CF_MTTR
-
Version 0.0.5.124:
- Unterstützung für AGP: Wähle 1x-Modus bei AGP 2.0 und 4x-Modus bei AGP 3.0
- Unterstützung für MTRRs um das Caching-Verhalten der CPU für bestimmte Speicherbereiche zu optimieren
-> Speicherbereiche für VBE- und VGA/Textmodus-Framebuffer auf Write-Combining gestellt
- Cache verbessert: Mehr Sektoren im Cache, intelligenterer Belegungsalgorithmus
- Bugfix: Nutze alle Caches, nicht nur die ersten 256.
- Kleinkram
-
Version 0.0.5.125:
- Sende Events wenn Konsole den Fokus erhält oder verliert; behebt irrtümlich erkannte Strg+...-Befehle nach Benutzung von Strg+V.
- Paging/Multiboot: Unterstütze MemoryMap mit variabler Eintragslänge
- itoa auf Basis von utoa implementiert
- Kleine Korrekturen: Potentielle Nullpointer-Dereferenzierungen, falsche Allokationsgröße, Register-Clobbering etc. behoben
-
Version 0.0.5.126:
- Fehlerbehebung: Crash durch Race-Condition in event_poll behoben (konnte z.B. in Bochs durch sehr schnelles drücken auf der Tastatur ausgelöst werden)
- USB-MSD: Fange Fehler aus usb_sendSCSICommand besser abgefangen
- Nutzerprogramm-Dummies entfernt; es gibt echte Nutzerprogramme als Anschauungsbeispiele
- Diverse Cppcheck- und Clang-Analyzer-Warnungen behoben
- bochs.bxrc an Bochs 2.6.9 angepasst, VS-Projektmappe auf Visual Studio 2017 aktualisiert