Sourcecode Fortschritt
-
Version 0.0.1.235:
- makefile verbessert
-- Bootloader wird bei Veränderung automatisch neu kompiliert
-- Alle map-Dateien nach /documentation gelegt
- pci.c: Ausgabe von Vendor&DeviceID verbessert.
- VBE:
-- Palette nutzt nun 8-bit pro Farbe, falls von der Grafikkarte unterstützt (Qemu unterstützt es nicht)
-- Bugfixes: Textmodi werden nun korrekt erkannt; Modi, die nicht von der aktuellen Hardwarekonfiguration unterstützt werden,werden ausgeblendet
- Optimierungen und Aufräumarbeiten
-
pci.c: Ausgabe von Vendor&DeviceID verbessert.
Was wurde dort genau verbessert?
-
Bislang war es so, das DeviceID und VendorID bekannt sein mussten, damit das Gerät mit Namen genannt wurde. Jetzt wird, wenn nur der Vendor bekannt ist, dieser ausgegeben und dazu dann die DeviceID.
-
Version 0.0.1.236:
- Bugfix: (Hoffentlich) kein unkontrollierter Farbwechsel mehr
- Bugfix: Bei #PF und co werden wieder die richtigen Fehlermeldungen angezeigt
- Kleinigkeiten
-
0.0.1.236 - Rev: 822
BL2 optimiert
-
Revision 823 (behebt hoffentlich den BL2-Bug, auch wenn MrX mir da keine großen Hoffnungen macht ;)):
BL stage2: ebx statt bx sichern
Wenn das BIOS ebx im Ganzen verändert, kann es passieren, dass die Kopierschleife den eigenen Code überschreibt. Wenn man ebx statt nur bx speichert, wird dies verhindert.
-
Version 0.0.1.237:
- Optimierungen BL1 (u.a. jetzt mit -Ox assembliert)
- Optimierungen BL2
- irq.c: Code verbessert/vereinfacht
- vbe.c: Bugfix: Grafikmodi jetzt auf mehr Grafikkarten korrekt angezeigt
-
Bei VMWare nun endlich OK!
-
Version 0.0.1.238:
- Multiboot-kompatibler Kernel. (Weiterhin BIN, noch nicht ELF)
- ELFs mit strip verkleinert
- Unser BL2 liefert dem Kernel eine Multiboot-Struktur, bei der aber nur der Member für die mmap gesetzt ist.
- GRUB-Rohling beigelegt (bootet automatisch KERNEL.BIN)
-
Version 0.0.1.238: Rev. 826
- Bootloader übergibt jetzt die Memory Map im Multiboot Format
- Bootloader übergibt jetzt Lower/upper Memory
- Bootloader übergibt jetzt den Bootloader Namen PrettyBL
-
- Upper Mem wird jetzt richtig in der multiboot strukture gespeichert
-
Version 0.0.1.239:
- Bugfix: strip funktioniert nun auf verschiedenen Umgebungen (im makefile nun als Variable)
- BL2:
-- Bugfix: mmap_length nun korrekt berechnet
-- Bugfix: Konvertierungsfunktion für mmap korrigiert
- paging.c: verwendet nun mmap_length um das Ende der mmap festzustellen (multiboot-Kompatibilität)
- vbe.c:
-- Bugfix: vbe_drawRect nun korrekt
-- Bugfix: VBE-Signatur ("VESA") nun korrekt angezeigt (nicht nullterminiert)
- Aufgeräumt&KleinigkeitenEDIT: Achtung! Revisions-Nummer falsch (828 wäre korrekt)
-
Version 0.0.1.240:
- fformat-Bug behoben
- VBE-Bootscreen etwas erweitert^^ (Kreisförmiger Farbverlauf (mit vbe_drawCircle erreicht) wird zeitverzögert gemalt)
- Tab/Leerzeichenkorrekturen und andere Formatierungssachen sowie Codevereinfachungen(Revisionsnummer nun wieder korrekt)
-
Version 0.0.1.241 - Rev: 830
Zwei zusätzliche Zeilenumbrüche am Ende von video-screenshot ergänzt.
Sieht nun übersichtlicher aus.
-
Version 0.0.2.0, Rev. 831:
- Memoryleak bei FPUptr beseitigt
- Userprogramme jetzt mit strip bearbeitet (kleiner)
- Ausgabe beim boot gestrafft. (u.a. Ramdiskinhalt nicht mehr angezeigt)
- Nicht (mehr) benötigte Funktionen fetchESP und ähnliche gelöscht
- CodestylekorrekturenAufgrund der zahlreichen seit dem Versionssprung auf 0.0.1.0 erreichten Verbesserungen am Kernel haben wir beschlossen, die Versionsnummer auf 0.0.2.0 zu erhöhen.
Seit 0.0.2.0 wurde u.a. folgendes implementiert:- VM86
- VBE "Techdemo" Startbildschirm + Mauszeiger
- Netzwerk (RTL8139): Ping beantworten
- Bootloader läd nun "beliebig" große Kernel dank Unreal Mode
- (Teilweise) Multiboot/GRUB-Kompatibilität
- Beschleunigtes Laden von Dateien durch Caching und trackweises Lesen von Floppy
- Scheduler-Ausbau, "richtiges" Schlafen
- Tastaturtreiber erweitert
- Video/Konsolen: Falschfarben-Problematik untersucht & behoben
- API (syscalls) erweitern, u.a File-API
- Syscall-API erweitert und konsolidiert
- Verbesserte Dokumentation und Logging
-
Test mit qemu ohne Netzwerk:
PrettyOS [Version 0.0.2.0 - Rev: 831] -------------------------------------------------------------------------------- FPU: yes (Test: OK) COM1 (IO-port: 03F8h) initialized #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:3.0 IRQ:11 Intel Gigabit Ethernet Controller 1.44 MB FDD first device found Disk is formated with FAT12. Available ports: Type Number Name Inserted disk ---------------------------------------------------------------------- FDD A Floppy Dev 1 PRETTYOS RAM B RAM RAMdisk ---------------------------------------------------------------------- Attached disks: Type Number Name Part. Serial ---------------------------------------------------------------------- Floppy 1 PRETTYOS 0 PRETTYOS RAMdisk 2 RAMdisk 0 786438 ---------------------------------------------------------------------- -------------------------------------------------------------------------------- PrettyOS Booted --------------------------------------------------------------------------------
-
Version 0.0.2.1:
- Header und Implementierungsdateien der C-Standardlib hinzugefügt (userspace)
- Projektdatei umsortiert
- context_t entfernt
- Diverse Kleinigkeiten
-
Version 0.0.2.2:
- Bugfix: Kein Absturz bei Shell-Eingaben mehr
-
Version 0.0.2.3 - Rev. 834
- APIC-Bit in cpuid überprüft und apic_install als Rumpf eingebaut (qemu auf intel-dualcore-host emuliert es)
- Beep ausgeschaltet
-
Version 0.0.2.4:
- Codebasis für Power-Management angelegt
-- APM (funktioniert noch nicht, daher in power_management.c Zeile 88 auskommentiert)
-- Shutdown-Workaround für fehlendes PM
- timer.c/sys_speaker.c: 1193182 statt 1193180
- Task wird nun nach invalid Opcode beendet
- Ergebnisse eines kleinen "Code Reviews" von ehenkes und mir (kernel.asm und ckernel.c)
- Kleinigkeiten