Sourcecode Fortschritt
- 
					
					
					
					
 Version 0.0.1.194: - list.c: Bug in list_Delete gefixt 
 - task.c/scheduler.c: Log verbessert
 - task.c/scheduler.c: Alte Hacks wieder entfernt, da zugrunde liegende Fehler behoben sind (nicht initialisierte Variable & Gekillter freetimeTask)
 - Aufgeräumt
 
- 
					
					
					
					
 Endlich das Task-Disaster besiegt. Wirklich geholfen hat die Visualisierung in Form des Task-log: current task: pid: 9 running tasks: pid: 0 esp: 0018FF00h eip: 00000000h PD: 00A22000h k_stack: 00000000h child-threads: 9 pid: 9 esp: C0204E8Ch eip: 00114D9Eh PD: 00A22000h k_stack: C0204EE0h parent: 0 pid: 8 esp: C0001F68h eip: 00114D9Eh PD: C0207000h k_stack: C00020E8h freetime task: pid: 2 esp: C0003E8Ch eip: 00114D9Eh PD: 00A22000h k_stack: C0003EE0hDa sah man die versehentlichen "Kills" und falschen Verwandschaftsbeziehungen.  Dies war die Stelle, die das Reboot-Chaos der letzten Versionen verursacht hat und nun glatt durchläuft: task.c: // kill all child-threads of this task if(task->threads) { for(element_t* e = task->threads->head; e != 0; e = e->next) { kill(e->data); } list_DeleteAll(task->threads); } list_Delete(tasks, task); scheduler_deleteTask(task);Codewort: Kindermörder  
 
- 
					
					
					
					
 0.0.1.195 - Rev: 774 - ckernel.c: line (anstelle for-loop, mit FPU-Fkt. fabs) und drawCircle (mit FPU-Fkt. sqrt) 
 - beep aus
 
- 
					
					
					
					
 0.0.1.196 - Rev: 775 types.h: #define BIT(n) (1<<(n)) 
 
- 
					
					
					
					
 0.0.1.197 - Rev: 776 void* paging_acquire_pcimem(uint32_t phys_addr, uint32_t numberOfPages) abgeändert wegen vbe.c: setVideoMemory 
 Diese Funktion ist nun deutlich bereinigt. void setVideoMemory() { uint32_t numberOfPages = vgaIB->TotalMemory * 0x10000 / PAGESIZE; SCREEN = (uint8_t*)paging_acquire_pcimem(mib->PhysBasePtr, numberOfPages); printf("\nSCREEN (phys): %X SCREEN (virt): %X\n",mib->PhysBasePtr, SCREEN); printf("\nVideo Ram %u MiB\n",vgaIB->TotalMemory/0x10); }
 
- 
					
					
					
					
 ehenkes: Du hast vergessen zu erwähnen, dass Du dabei auch gleich den Verschiebungsfehler in VBE eliminiert hast. Version 0.0.1.198: - Cuervos Testergebnisse hochgeladen 
 - Besserer Skalierungsalgorithmus
 - VBE läuft nun in separatem Thread - Zeitersparnis beim booten
 
- 
					
					
					
					
 0.0.1.199 - Rev: 778 Probeweise zurückverlagert, bitte testen: kheap.h: #define PLACEMENT_BEGIN ((uint8_t*) 0x1000000) // 16 MiB #define PLACEMENT_END ((uint8_t*) 0x1400000) // 20 MiBWegen Überschneidung mit Floppy beim DMA-Puffer (0x1000 - 0x33FF): setVgaInfoBlock((VgaInfoBlock_t*)0x3400); setModeInfoBlock((ModeInfoBlock_t*)0x3600);
 
- 
					
					
					
					
 0.0.1.200 - Rev: 779 
 Kernel: 515.560 Byteshttp://www.pcidatabase.com/pci_c_header.php (nach Überarbeitung durch Erhard Henkes wegen massiver bugs in der Produkt-Liste, ca. 1h Aufwand) eingebaut zur Erkennung von Devices. Noch nicht an pci-scan angeschlossen. Bitte erst testen.  bei mir: qemu und PC laufen noch.  
 
- 
					
					
					
					
 Diese Liste kostet ca. 300 KB. Ich weiß ja nicht, ob wir uns wirklich 20 % der Floppy damit vollstopfen wollen... 
 
- 
					
					
					
					
 0.0.1.201 - Rev: 780 pciVendProdList.h verwendet zur Auswertung in pciScan(...) Beispiel qemu: #0 0:0.0 IRQ:0 Intel PCI & Memory #1 0:1.0 IRQ:0 Intel PIIX3 PCI-to-ISA Bridge (Triton II) #2 0:1.1 IRQ:0 Intel PIIX3 IDE Interface (Triton II) #3 0:1.2 IRQ:11 Intel USB EHCI Controller USB EHCI F0000000h MMIO sz:4096 #4 0:1.3 IRQ:9 Intel PIIX4/4E/4M Power Management Controller #5 0:2.0 IRQ:0 Cirrus 64-bit VisualMedia Accelerator #6 0:26.0 IRQ:10 Realtek Realtek RTL8139 Family PCI Fast Ethernet NIC
 
- 
					
					
					
					
 Diese Liste kostet ca. 300 KB. Ich weiß ja nicht, ob wir uns wirklich 20 % der Floppy damit vollstopfen wollen... @MrX: man kann es ja weg lassen mittels #define _PCI_VEND_PROD_LIST_ 
 
- 
					
					
					
					
 0.0.1.202 - Rev: 781 nur IRQ != 255 angezeigt Aktuelle Liste von VBox: #1 0:1.0 IRQ:0 Intel PIIX3 PCI-to-ISA Bridge (Triton II) #2 0:1.1 IRQ:0 Intel PIIX4/4E/4M IDE Controller #3 0:2.0 IRQ:11 vend:80EEh dev:BEEFh #4 0:3.0 IRQ:10 Intel Gigabit Ethernet Controller #5 0:4.0 IRQ:9 vend:80EEh dev:CAFEh #6 0:5.0 IRQ:5 Intel Aureal (AD1881 SOUNDMAX) Placa Mãe Asaki P3-141 #7 0:6.0 IRQ:11 vend:106Bh dev:003Fh USB OHCI F0804000h MMIO sz:4096 #8 0:7.0 IRQ:9 Intel PIIX4/4E/4M Power Management Controller #9 0:8.0 IRQ:9 AMD PCnet LANCE PCI Ethernet Controller #10 0:11.0 IRQ:10 Intel USB 2.0 EHCI Controller USB EHCI F0900000h MMIO sz :4096das klingt komisch: 
 vend:80EEh dev:BEEFh <---- BEEF (vendor 80EEh gibt es nicht) (vendor 80EEh gibt es nicht)
 vend:80EEh dev:CAFEh <---- CAFE vend:106Bh dev:003Fh <--- der Hersteller soll Apple sein, aber Device 003Fh gibt es nicht 
 
- 
					
					
					
					
 0.0.1.203 - Rev: 782 memory.h eingefügt Paging.h/c formal überarbeitet 
 
- 
					
					
					
					
 0.0.1.203 - Rev: 783 memory.h nachgereicht 
 
- 
					
					
					
					
 0.0.1.204 - Rev: 784 ESC + p zeigt die Belegung der physischen Bittabelle (paging.c). Jedes Bit dort repräsentiert eine physische Page (auch Frame genannt): 0 = frei (grün), 
 1 = bereits belegt (grau)Man sieht, dass PrettyOS 23 1/4 MiB für sich verwendet. Test mit VBox und 24 MiB RAM eingestellt: Laden von mehreren User-Programmen (ca. 10) führt zum #PF mit error 6 (bit1: write access und bit2: user mode access) 
 http://www.c-plusplus.net/forum/viewtopic-var-t-is-264710.htmlMit obigem physicalMem-Logger kann man diesen Vorgang illustrativ verfolgen.  
 
- 
					
					
					
					
 version 0.0.1.204 - Rev: 785 vbe.c/h 
 - Kommentare entfernt, geändert u. hinzugefügtother_userprogs/vgatest.c entfernt 
 
- 
					
					
					
					
 version 0.0.1.204 - Rev: 786 audio/sb16.c/.h 
 - Informationen für die Programmierung eines Audiotreibers zusammengelegt (Soundblaster16).
 
- 
					
					
					
					
 Version 0.0.1.205: - event_list in todo_list umbenannt. Verbessert/Verallgemeinert. Nutzung reduziert. 
 - memory.txt ergänzt
 - Includes aufgeräumt
 - Bootablauf verändert, Ausdruck verbessert.
 - Sonstiges^^
 
- 
					
					
					
					
 0.0.1.206 - Rev: 788 PCI_VEND_PROD_LIST_H weiter überarbeitet (teilweise echt übel, benötigt leider noch viel Arbeit) 
 
- 
					
					
					
					
 0.0.1.207 - Rev: 789 PCI_VEND_PROD_LIST_H weiter überarbeitet Wenn wir da alle mithelfen, kann diese Liste wertvoll werden. 
 In der Urform ist sie nicht zu gebrauchen gewesen.