Sourcecode Fortschritt



  • Version 0.0.5.104:

    - log.h/c hinzugefügt
    - Stilistische Änderungen aus den vorigen drei Revisionen teilweise revertiert


  • Mod

    0.0.5.105 - Rev: 1771

    ac97.h/c: testSound beim Start zur Kontrolle aktiviert (in VBox muss gestoppt werden, qemu 2.2 stoppt von alleine) <- wird durch Tastendruck zur Sicherheit gestoppt.

    TODO: WAV-Player implementieren und start.wav mitliefern



  • Version 0.0.5.106:

    - Paging: Neuimplementation in Betrieb genommen
    - Log: Serial für sekundäre Ausgabe implementiert


  • Mod

    0.0.5.107 - Rev: 1773

    new: wav.h/c
    new: kernel/sound with START.wav.c

    ac97: adapted

    Now the old synthetic sound is played first until key stroke, then you see the START.WAV header data, and last but not least the START.WAV follows as endless loop until key stroke.

    Tests with VBox and qemu 2.2 show correct WAV play.


  • Mod

    0.0.5.108 - Rev: 1774

    ac97.h/c und wav.c korrigiert
    Audiosausgabe: "welcome" (eigene Soundwave 44,1 kHz, 16-bit stereo samples)



  • Version 0.0.5.109:

    - Audio-Chaos beseitigt:
    -- Sound hinter Strg+w verborgen
    -- Diverse Bugs (Leaks, Nullpointerdereferenzierungen, etc.) beseitigt
    -- WAV-Datei verschoben
    - Projektmappe auf VS2015 aktualisiert
    - Unerklärbaren HACK in vm86.c entfernt



  • Version 0.0.5.110:

    - Fehlerbehebung: Register-Constraints für CLEAR_BIT und SET_BIT korrigiert
    - Fehlerbehebung: Diverse Paging-Fehler behoben
    - Funktion gets durch gets_s ersetzt (Schutz gegen Pufferüberläufe)
    - Makefiles auf C11/C++11 umgestellt
    - Unbenutzte usb_video_t-Member entfernt



  • Respekt an euch, dass ihr so lange schon dran arbeitet! 🙂


  • Mod

    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 implementiert

    Frohe 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.

    http://www.redox-os.org/



  • 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


  • Mod

    @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


Anmelden zum Antworten