Sourcecode Fortschritt


  • Mod

    version = "0.0.2.243 - Rev: 1090"

    tcp.c: tcp_sendReset(tcpConnection_t* connection, tcpPacket_t* tcp, bool ack, uint32_t length)



  • Version 0.0.2.244:

    - Ramdisk nicht mehr an 4 KiB-Grenzen ausgerichtet
    - Erstellen und Starten von Tasks getrennt:
    -> Race-Condition beim Warten auf VM86-Tasks behoben: Probleme auf bestimmten Systemen mit VBE sollten damit behoben sein
    -> Race-Condition beim Erstellen von Tasks mit eigener Konsole behoben: Selten auftretenes Erscheinen von Text in der falschen Konsole sollte damit behoben sein.
    - VM86-Monitor überarbeitet
    - APM-Code überarbeitet: Läuft nun unter Qemu, Bochs und VBox, nicht aber auf VPC und echter Hardware. Zum Testen Zeile 131 in power_management.c ändern



  • Version 0.0.2.245:

    - Bessere logische Trennung zwischen Tasks, Prozessen und Threads (Vorschlag von kosmick):
    -> Task: Allgemeine Containerstruktur für Prozesse und Threads
    -> Prozess: Task in eigenen Paging-Context
    -> Thread: Task im Context des Erstellers, Abhängig vom Ersteller
    - Memory-Übersicht erweitert
    - Bugfix: Shell-Prozess wird nicht mehr gestartet, wenn Shell.elf nicht gefunden werden konnte


  • Mod

    version = "0.0.2.246 - Rev: 1093"

    DHCP gelingt nun auch unter Emulation mit Qemu.

    Foto: http://www.henkessoft.de/OS_Dev/Bilder/DHCP_on_Qemu.PNG

    qemu-batch:

    del serielleSchnittstelle1.txt
    qemu.exe  -fda G:\OSDev\PrettyOS\trunk\Source\FloppyImage.img -soundhw pcspk -net nic,model=rtl8139 -localtime -net user -net dump,file=netdump.pcap -serial file:serielleSchnittstelle1.txt
    

  • Mod

    version = "0.0.2.247 - Rev: 1094"

    list.c kleine Korrektur


  • Mod

    version = "0.0.2.248 - Rev: 1095"

    list.h/c und ring.h/c getrennt.

    ring.h/c wird bisher nur in scheduler.c eingesetzt und wurde von MrX speziell dafür entwickelt.



  • Version 0.0.2.249:

    - ring.h/c comittet (hat ehenkes vergessen)
    - Neuer Interrupt-Code: Mehrfachbelegung von IRQs möglich, Interrupt-Handler mit anderen Prototypen (z.B. für PCI-Geräte oder für CDI) möglich. Benutzung des Interrupt-Status-Bits von PCI erstmal auskommentiert.
    -> Es sollten nun mehrere baugleiche Netzwerkkarten zugleich unterstützt werden. Zumindest theoretisch.
    - CDI-Implementation deutlich erweitert - Es ist nun möglich, den e1000-CDI-Treiber zu kompilieren und in den Kernel zu linken


  • Mod

    version = "0.0.2.250 - Rev: 1097"

    Netzwerkausgaben arp, dhcp, udp hinter debug (os.h)


  • Mod

    version = "0.0.2.251 - Rev: 1098"

    tcp-Ausgaben hinter debug (os.h: _TCP_DEBUG_)

    Screen Photo (PrettyOS emuliert mit qemu. Erfolgreiches DHCP und Ausführung von browser.elf und starwars.elf in eigener jeweils separater Konsole): http://www.henkessoft.de/OS_Dev/Bilder/rev.1098.PNG 🙂


  • Mod

    version = "0.0.2.251 - Rev: 1099"

    browser.elf verallgemeinert: Man kann nun eine IP-Adresse (Zahlenwerte) eingeben.

    Tipps:

    82 100 220  68    goneo.de
     65  55 175 254    bing.com
    209  85 149 105    google
    188  40 141  82    c-plusplus.net
    


  • Version 0.0.2.252:

    - Listen nun doppelt verkettet
    - Linkerscript aufgeräumt
    - strstr im Userspace implementiert



  • Rev. 1101; 0.0.2.253:

    * Workaround DNS Resolver (hack, proof of concept)

    Anmerkung (ehenkes):
    - browser.c mit Auflösung von Namen (thx to Cuervo)
    - TCP beendet manchmal nicht, wenn TCP_DEBUG nicht eingeschlatet ist


  • Mod

    version = "0.0.2.254 - Rev: 1102"

    Experimentelle Version:
    - zusätzliche Sicherheits-Timeouts angestoßen bei Übergang zu CLOSE_WAIT und zu FIN_WAIT_1 (nicht schön)
    - Leider treten nun vermehrt #PF auf, z.B. beim Erfolgen des Timeouts.
    - resolve.php unter tools/ (wurde von Cuervo erstellt)


  • Mod

    version = "0.0.2.255 - Rev: 1103"

    version = "0.0.2.256 - Rev: 1104"

    tcp.c: stabiler, aber leider immer noch #PF bei tcp_deleteConnection (erfolgt exakt beim timeout)

    Foto: http://www.henkessoft.de/OS_Dev/Bilder/rev.1104_PF.PNG

    static void scheduledDeleteConnection(void* data, size_t length)
    {
        if ( (*(tcpConnection_t**)data) && (deleteProtection != (*(tcpConnection_t**)data)->ID) )
    	{
    		tcp_deleteConnection(*(tcpConnection_t**)data);
    	}
    }
    

  • Mod

    version = "0.0.2.257 - Rev: 1105"

    version = "0.0.2.258 - Rev: 1106"

    #PF durch multiple deleteConnection mittels Variable "deleteProtection" endlich besiegt. 🙂

    Warum sind die Verbindungen bei einer Wiederholung so langsam? 🙄

    Anmerkung: Nun kommen neue #PF (browser.elf, aber auch vom kernel, nun aber nicht mehr tcp_deleteConnection)



  • Version 0.0.2.259:

    - Protection-Hack durch list_find ersetzt
    - Code aus browser.c, userlib.c und tcp vereinfacht
    - srand jetzt einmal beim Start und anschließend nicht mehr aufgerufen



  • Rev. 1108 (0.0.2.260):

    * Shell makefile und shell.c aktualisiert (helptext)
    * DNS Resolver verhübscht


  • Mod

    version = "0.0.2.261 - Rev: 1109"

    - srand nur einmal in ckernel.c ist ok
    - rand() im Kernel repariert


  • Mod

    version = "0.0.2.262 - Rev: 1110"

    Interface zwischen user app und tcp-Modul beim Senden erweitert um sendBuffer, um Datenmengen, die größer MSS bzw. connection->tcb.RCV.WND sind, segmentiert versenden zu können.

    TODO: segmentation / buffering / steering data flow


  • Mod

    Version mit sendBuffer zum Testen (Tester: Cuervo, ehenkes):

    version = "0.0.2.263 - Rev: 1111" (Fehler)
    version = "0.0.2.264 - Rev: 1112" (Fehler: 2. abgeschnittenes Paket kommt nicht an)
    version = "0.0.2.265 - Rev: 1113" (funktioniert, man muss nur noch alle Pakete im sendBuffer "flushen" mittels dummy schicken.)

    version = "0.0.2.266 - Rev: 1114" ("flush" des sendBuffer erfolgt nun ohne dummy senden.)

    Mit dem Programm rt.elf kann man beispielhaft testen (schickt langen lateinischen Text "lorum ipsum").

    memshow (util.c) wurde erweitert mit bool alpha, sodass man wahlweise auch Texte zeigen kann (siehe auskommentierten Code in tcp_usend).

    PrettyOS ist Server (passive open):

    cmd: telnet 127.0.0.1 8080 (client erhält den Text)

    qemu-batch:

    del serielleSchnittstelle1.txt
    qemu.exe -fda G:\OSDev\PrettyOS\trunk\Source\FloppyImage.img -net nic,model=rtl8139 -redir tcp:5023::23 -redir tcp:8080::80 -localtime -net user -net dump,file=netdump.pcap -serial file:serielleSchnittstelle1.txt


Anmelden zum Antworten