Sourcecode Fortschritt
-
0.0.1.231 - Rev: 815
Formale Änderungen in serial.h/c
Beep ausgeschaltet
-
0.0.1.231 - Rev: 816
Meldungen im BL2 ergänzt
msgGTD db 0x0D, 0x0A, "GTD installed ...", 0 msgUnrealMode db 0x0D, 0x0A, "Unreal Mode entered ...", 0 msgLoadKernel db 0x0D, 0x0A, "Now loading Kernel ...", 0 msgFloppyMotorOff db 0x0D, 0x0A, "Floppy Disk Motor switched off ...", 0 msgSwitchToPM db 0x0D, 0x0A, "Now switching to Protected Mode (PM) ...", 0 msgFailure db 0x0D, 0x0A, "Missing KERNEL.BIN (Fatal Error)", 0
-
Version 0.0.1.232:
- serial_log eingebaut: Sendet Text über die serielle Schnittstelle (Deaktivierbar in os.h)
- memmove in userlib
- Kleinigkeiten
-
0.0.1.233 - Rev: 818
vm86 monitor wird mit serial_log überwacht
in os.h #define _SERIAL_LOG_ aktivieren
Anmerkung: läuft sehr langsam in VBox, also bitte Geduld. Output wird z.B. in VBox in eine text-datei gelenkt.
Hier ein Beispiel eines Durchlaufs in VBox:
http://henkessoft.de/OS_Dev/Bilder/serielle1.txtinterrupt ...
(sensitiver code)
iret
hltinterrupt ...
(sensitiver code)
iret
hltinterrupt ...
(sensitiver code)
iret
hltusw.
-
0.0.1.234 - Rev: 819
- os.h formal umgebaut
- serielle Schnittstelle beschleunigt (Divisor 1 anstelle 3)
- vm86 monitor - Ausgaben nach COM1 (und Text-Datei) aktiviertDeutlich schneller als bei VBox geht es übrigens mit qemu:
qemu.exe -fda FloppyImage.img -soundhw pcspk -localtime -serial file:serielle1.txt -usb -usbdevice disk:format=raw:dummy.bin
Das ist dann COM1. Für COM2 usw. einfach zusätzliche -serial ... einsetzen.
-
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