Sourcecode Fortschritt
-
Version 0.0.4.217:
- Massive Boot-Beschleunigung:
-- Timeout im Maustreiber reduziert (aber: Noch immer timeout, jetzt mit Meldung)
-- Anscheinend falsches waitForIRQ() im Floppytreiber beseitigt: Kein Interrupt nach Setzen des CCR (laut osdev.org und manchen Treiber-Implementationen. Spezifikation und andere Quellen widersprechen sich)
-- rekursiver PCI-Scan (Scannt nur vorhandene Busse; PCI-to-PCI-Bridges geben Vorhandensein anderer Busse als #0 an)
- Interrupts früher aktiviert (erforderte Fehlerkorrekturen bei Benutzung von task_switching an diversen Stellen)
- PIT-Timer (i8254) nur aktiviert, wenn APIC nicht vorhanden (sonst wird der APIC-Timer genutzt)
- FAT-Treiber weiter aufgeräumt (diverse fHandle-Variablen durch handle.entry ersetzt; unnützes cacheDirEntry() in openFolder beseitigt; FAT_renameHandle neu implementiert)
- Bugfix: #PF in flpydsk_read_directory behoben
-
0.0.4.218 - Rev: 1604
fat.c: Neue thematische Anordnung der Funktionen
TODO: Namen der Funktionen überprüfen/harmonisieren
-
0.0.4.219 - Rev: 1605
fat.c: Funktionsnamen harmonisiert
-
Version 0.0.4.220:
- Funktionen in fat.c noch etwas umsortiert, um Forward-Deklarationen zu reduzieren, Schnittstellenfunktionen analog fsmanager benannt (FAT_folderClose), FAT_createDIR in FAT_createFolder aufgehen lassen
- Bounds-Checks in apic.c korrigiert
- Ungetestete ramdisk_fwrite-Implementation ergänzt
- refreshScreen nutzt vga_fillLine, anstatt Leerzeichen-Strings zu schreiben
- Kleine Verbesserung am devmgr
-
0.0.4.221 - Rev: 1607
nur formale Änderungen
-
0.0.4.222 - Rev: 1608
Formale Vorbereitungen für ipv6 getroffen.
neu: ipv6.h
-
0.0.4.223 - Rev: 1609
dma.h/c: überarbeitet (neue defines in dma.h eingefügt)
-
0.0.4.224 - Rev: 1610
serial.h/c: Nur formale Änderungen
-
Version 0.0.4.225:
- FS-Manager:
-- getFolder() implementiert (Debug-Ausgabe mit strg+f)
-- getFilename() repariert
-- Fehlerbehandlung in fmove verbessert
- FAT-Treiber:
-- LstAccDate auf 0 gesetzt
-- Uninitialisierte Variable in fat.c behoben
- makefiles: -Wno-uninitialized aus makefile entfernt, i486 statt i386 für clang angegeben
-
Version 0.0.4.226:
- Fehlende Funktionalität im FAT-Treiber ergänzt und sinnloses if() beseitigt
-> Öffnen von Unterordnern (öffnen, "dir", etc.) geht nun
- Pfade dürfen nun mit Separator enden (z.B. 1:0:/AB/)
- Fehler im Scheduler behoben, der u.U. zum Einfrieren des Systems führte
-
Version 0.0.4.227:
- Jeder Task hat nun einen eigenen IPC-Subtree in Tasks|PID, zugreifbar mit ~|
-- Syscall getMyPID entfernt (Information liegt in IPC unter ~|pid)
- WorkingDir-Unterstützung: Wird in ~|workingDir gespeichert
- ipc_setAccess korrigiert, strg+i zeigt Privilegien an
- Obsoletes Kommando fdir entfernt
- Einige structs neu sortiert (Füllbytes reduziert)
-
0.0.4.228 - Rev: 1614
fat.h/c: format für FAT16 eingefügt.
-
Version 0.0.4.228:
- Kommando "cd" implementiert
EDIT: Versionsnummer und Revisionsnummer um 1 zu niedrig!
-
0.0.4.230 - Rev: 1616
fat.c: format für FAT32 versuchsweise implementiert.
-
0.0.4.231 - Rev: 1617
fat.c: Erstellungsdatum ergänzt (bisher war dort nur die Zeit)
-
Version 0.0.4.232:
- Mutex um Disk-Cache gesetzt, Algorithmus vereinfacht
- Tasking-Korrekturen:
-- Stacksegment des kernelTask auf 0x10 gesetzt (testweise - sollte wohl für alle Ring-0-Tasks der Fall sein, also auch für den kernelTask)
-- Unbenutzte Member von task_t beseitigt
- Einige Fehlerabfragen verbessert:
-- Kein Absturz mehr von format bei unbekannter Partition
-- "1:0" (u.ä.) wird nicht mehr als valide Partitionsangabe akzeptiert
-- Kein Pufferüberlauf bei Partitionsnummern größer/gleich 4
- Vergessene Debugausgaben aus IPC entfernt
-
Version 0.0.4.233:
- CMOS-Funktionen, COM-Ports und paging_acquirePciMemory mit mutex geschützt
- Scheduler-Stabilisierungsversuch:
-- Potentielle Race-Conditions beseitigt
-- Benutzung von task_switching und cli/sti verbessert
- Ausgabe beim Boot etwas aufgeräumt
- Treiber für serielle Schnittstelle überarbeitet - atomare Funktionen extrahiert
- Präprozessorweichen in userlib_cpp korrigiert
-
0.0.4.234 - Rev: 1620
TEST: count int/sec (Anzeige in dritter Infozeile)
Idee: Mehr interne Infos über das OS zeigen, um Fehler besser aufzuspüren.
-
0.0.4.235 - Rev: 1621
interrupts/sec aufgeschlüsselt (alle, syscall, timer, switch)
*test-PC (3,4 GHz, dual core): ca. 608000 syscalls/sec (bei 250 Hz)
*
-
0.0.4.236 - Rev: 1622
Nun klappt das Kompilieren mit und ohne #define _SERIAL_LOG_