PrettyOS Fehler-/Testthread
-
hallo ihr,
ich habe mit "bochs" ein problem mit dem laden des images. mir scheint, als ob der bootloader stage1 geladen wird, danach aber ein abbruch kommt. die version von prettyos habe ich nun nicht im kopf, weis aber das ckernel.c die version "0.0.0.530" hat.
hier mal meine bochsrc.bxrc:
############################################################### # bochsrc.txt file for DLX Linux disk image. ############################################################### # how much memory the emulated machine will have megs: 32 # filename of ROM images romimage: file="C:\Program Files\Bochs-2.4.5\BIOS-bochs-latest" vgaromimage: file="C:\Program Files\Bochs-2.4.5\VGABIOS-lgpl-latest" # what disk images will be used floppya: 1_44="C:\prettyos\trunk\Source\FloppyImage.img", status=inserted #floppyb: 1_44=floppyb.img, status=inserted # hard disk #ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14 #ata0-master: type=disk, path="hd10meg.img", cylinders=306, heads=4, spt=17 # choose the boot disk. boot: a # default config interface is textconfig. #config_interface: textconfig #config_interface: wx #display_library: x # other choices: win32 sdl wx carbon amigaos beos macintosh nogui rfb term svga # where do we send log messages? log: C:\prettyos\trunk\Source\bochsout.txt # disable the mouse, since DLX is text only mouse: enabled=0 # enable key mapping, using US layout as default. # # NOTE: In Bochs 1.4, keyboard mapping is only 100% implemented on X windows. # However, the key mapping tables are used in the paste function, so # in the DLX Linux example I'm enabling keyboard_mapping so that paste # will work. Cut&Paste is currently implemented on win32 and X windows only. #keyboard_mapping: enabled=1, map=$BXSHARE/keymaps/x11-pc-us.map #keyboard_mapping: enabled=1, map=$BXSHARE/keymaps/x11-pc-fr.map keyboard_mapping: enabled=1, map=$BXSHARE/keymaps/x11-pc-de.map #keyboard_mapping: enabled=1, map=$BXSHARE/keymaps/x11-pc-es.map
hier noch das output der bochsout.txt:
00000000000i[ ] Bochs x86 Emulator 2.4.5 00000000000i[ ] Build from CVS snapshot, on April 25, 2010 00000000000i[ ] System configuration 00000000000i[ ] processors: 1 (cores=1, HT threads=1) 00000000000i[ ] A20 line support: yes 00000000000i[ ] CPU configuration 00000000000i[ ] level: 6 00000000000i[ ] SMP support: no 00000000000i[ ] APIC support: yes 00000000000i[ ] FPU support: yes 00000000000i[ ] MMX support: yes 00000000000i[ ] 3dnow! support: no 00000000000i[ ] SEP support: yes 00000000000i[ ] SSE support: sse2 00000000000i[ ] XSAVE support: no 00000000000i[ ] AES support: no 00000000000i[ ] MOVBE support: no 00000000000i[ ] x86-64 support: yes 00000000000i[ ] 1G paging support: no 00000000000i[ ] MWAIT support: no 00000000000i[ ] VMX support: no 00000000000i[ ] Optimization configuration 00000000000i[ ] RepeatSpeedups support: yes 00000000000i[ ] Trace cache support: yes 00000000000i[ ] Fast function calls: yes 00000000000i[ ] Devices configuration 00000000000i[ ] ACPI support: yes 00000000000i[ ] NE2000 support: yes 00000000000i[ ] PCI support: yes, enabled=yes 00000000000i[ ] SB16 support: yes 00000000000i[ ] USB support: yes 00000000000i[ ] VGA extension support: vbe cirrus 00000000000i[MEM0 ] allocated memory at 02D80020. after alignment, vector=02D81000 00000000000i[MEM0 ] 32,00MB 00000000000i[MEM0 ] mem block size = 0x00100000, blocks=32 00000000000i[MEM0 ] rom at 0xfffe0000/131072 ('C:\Program Files\Bochs-2.4.5\BIOS-bochs-latest') 00000000000i[MEM0 ] rom at 0xc0000/40448 ('C:\Program Files\Bochs-2.4.5\VGABIOS-lgpl-latest') 00000000000i[CMOS ] Using local time for initial clock 00000000000i[CMOS ] Setting initial clock to: Fri Jul 02 17:55:29 2010 (time0=1278086129) 00000000000i[DMA ] channel 4 used by cascade 00000000000i[DMA ] channel 2 used by Floppy Drive 00000000000i[FDD ] fd0: 'C:\prettyos\trunk\Source\FloppyImage.img' ro=0, h=2,t=80,spt=18 00000000000i[PCI ] 440FX Host bridge present at device 0, function 0 00000000000i[PCI ] PIIX3 PCI-to-ISA bridge present at device 1, function 0 00000000000i[MEM0 ] Register memory access handlers: 0x000a0000 - 0x000bffff 00000000000i[WGUI ] Desktop Window dimensions: 1280 x 800 00000000000i[WGUI ] Number of Mouse Buttons = 5 00000000000i[WGUI ] IME disabled 00000000000i[KMAP ] Loading keymap from 'C:\Program Files\Bochs-2.4.5/keymaps/x11-pc-de.map' 00000000000i[KMAP ] Loaded 212 symbols 00000000000i[MEM0 ] Register memory access handlers: 0xe0000000 - 0xe0ffffff 00000000000i[CLVGA] VBE Bochs Display Extension Enabled 00000000000i[CLVGA] interval=50000 00000000000i[ ] init_dev of 'unmapped' plugin device by virtual method 00000000000i[ ] init_dev of 'biosdev' plugin device by virtual method 00000000000i[ ] init_dev of 'speaker' plugin device by virtual method 00000000000i[ ] init_dev of 'extfpuirq' plugin device by virtual method 00000000000i[ ] init_dev of 'gameport' plugin device by virtual method 00000000000i[ ] init_dev of 'pci_ide' plugin device by virtual method 00000000000i[PCI ] PIIX3 PCI IDE controller present at device 1, function 1 00000000000i[ ] init_dev of 'acpi' plugin device by virtual method 00000000000i[PCI ] ACPI Controller present at device 1, function 3 00000000000i[ ] init_dev of 'ioapic' plugin device by virtual method 00000000000i[IOAP ] initializing I/O APIC 00000000000i[MEM0 ] Register memory access handlers: 0xfec00000 - 0xfec00fff 00000000000i[ ] init_dev of 'keyboard' plugin device by virtual method 00000000000i[KBD ] will paste characters every 1000 keyboard ticks 00000000000i[ ] init_dev of 'harddrv' plugin device by virtual method 00000000000i[HD ] Using boot sequence floppy, none, none 00000000000i[HD ] Floppy boot signature check is enabled 00000000000i[ ] init_dev of 'serial' plugin device by virtual method 00000000000i[SER ] com1 at 0x03f8 irq 4 00000000000i[ ] init_dev of 'parallel' plugin device by virtual method 00000000000i[PAR ] parallel port 1 at 0x0378 irq 7 00000000000i[ ] register state of 'unmapped' plugin device by virtual method 00000000000i[ ] register state of 'biosdev' plugin device by virtual method 00000000000i[ ] register state of 'speaker' plugin device by virtual method 00000000000i[ ] register state of 'extfpuirq' plugin device by virtual method 00000000000i[ ] register state of 'gameport' plugin device by virtual method 00000000000i[ ] register state of 'pci_ide' plugin device by virtual method 00000000000i[ ] register state of 'acpi' plugin device by virtual method 00000000000i[ ] register state of 'ioapic' plugin device by virtual method 00000000000i[ ] register state of 'keyboard' plugin device by virtual method 00000000000i[ ] register state of 'harddrv' plugin device by virtual method 00000000000i[ ] register state of 'serial' plugin device by virtual method 00000000000i[ ] register state of 'parallel' plugin device by virtual method 00000000000i[SYS ] bx_pc_system_c::Reset(HARDWARE) called 00000000000i[CPU0 ] cpu hardware reset 00000000000i[APIC0] allocate APIC id=0 (MMIO enabled) to 0xfee00000 00000000000i[CPU0 ] CPUID[0x00000000]: 00000003 756e6547 6c65746e 49656e69 00000000000i[CPU0 ] CPUID[0x00000001]: 00000f20 00000800 00002000 078bfbff 00000000000i[CPU0 ] CPUID[0x00000002]: 00410601 00000000 00000000 00000000 00000000000i[CPU0 ] CPUID[0x00000003]: 00000000 00000000 00000000 00000000 00000000000i[CPU0 ] CPUID[0x00000004]: 00000000 00000000 00000000 00000000 00000000000i[CPU0 ] CPUID[0x80000000]: 80000008 00000000 00000000 00000000 00000000000i[CPU0 ] CPUID[0x80000001]: 00000000 00000000 00000101 2a100800 00000000000i[CPU0 ] CPUID[0x80000002]: 20202020 20202020 20202020 6e492020 00000000000i[CPU0 ] CPUID[0x80000003]: 286c6574 50202952 69746e65 52286d75 00000000000i[CPU0 ] CPUID[0x80000004]: 20342029 20555043 20202020 00202020 00000000000i[CPU0 ] CPUID[0x80000006]: 00000000 42004200 02008140 00000000 00000000000i[CPU0 ] CPUID[0x80000007]: 00000000 00000000 00000000 00000000 00000000000i[CPU0 ] CPUID[0x80000008]: 00003020 00000000 00000000 00000000 00000000000i[ ] reset of 'unmapped' plugin device by virtual method 00000000000i[ ] reset of 'biosdev' plugin device by virtual method 00000000000i[ ] reset of 'speaker' plugin device by virtual method 00000000000i[ ] reset of 'extfpuirq' plugin device by virtual method 00000000000i[ ] reset of 'gameport' plugin device by virtual method 00000000000i[ ] reset of 'pci_ide' plugin device by virtual method 00000000000i[ ] reset of 'acpi' plugin device by virtual method 00000000000i[ ] reset of 'ioapic' plugin device by virtual method 00000000000i[ ] reset of 'keyboard' plugin device by virtual method 00000000000i[ ] reset of 'harddrv' plugin device by virtual method 00000000000i[ ] reset of 'serial' plugin device by virtual method 00000000000i[ ] reset of 'parallel' plugin device by virtual method 00000003305i[BIOS ] $Revision: 1.247 $ $Date: 2010/04/04 19:33:50 $ 00000200000i[WGUI ] dimension update x=720 y=400 fontheight=16 fontwidth=9 bpp=8 00000318042i[KBD ] reset-disable command received 00000444800i[VBIOS] VGABios $Id: vgabios.c,v 1.69 2009/04/07 18:18:20 vruppert Exp $ 00000444871i[CLVGA] VBE known Display Interface b0c0 00000444903i[CLVGA] VBE known Display Interface b0c5 00000447828i[VBIOS] VBE Bios $Id: vbe.c,v 1.62 2009/01/25 15:46:25 vruppert Exp $ 00000760517i[BIOS ] Starting rombios32 00000761014i[BIOS ] Shutdown flag 0 00000761695i[BIOS ] ram_size=0x02000000 00000762173i[BIOS ] ram_end=32MB 00000802745i[BIOS ] Found 1 cpu(s) 00000822014i[BIOS ] bios_table_addr: 0x000fbc18 end=0x000fcc00 00000822117i[PCI ] 440FX PMC write to PAM register 59 (TLB Flush) 00001149814i[PCI ] 440FX PMC write to PAM register 59 (TLB Flush) 00001477742i[P2I ] PCI IRQ routing: PIRQA# set to 0x0b 00001477763i[P2I ] PCI IRQ routing: PIRQB# set to 0x09 00001477784i[P2I ] PCI IRQ routing: PIRQC# set to 0x0b 00001477805i[P2I ] PCI IRQ routing: PIRQD# set to 0x09 00001477815i[P2I ] write: ELCR2 = 0x0a 00001478700i[BIOS ] PIIX3/PIIX4 init: elcr=00 0a 00001486658i[BIOS ] PCI: bus=0 devfn=0x00: vendor_id=0x8086 device_id=0x1237 class=0x0600 00001489220i[BIOS ] PCI: bus=0 devfn=0x08: vendor_id=0x8086 device_id=0x7000 class=0x0601 00001491621i[BIOS ] PCI: bus=0 devfn=0x09: vendor_id=0x8086 device_id=0x7010 class=0x0101 00001491851i[PIDE ] new BM-DMA address: 0xc000 00001492555i[BIOS ] region 4: 0x0000c000 00001494865i[BIOS ] PCI: bus=0 devfn=0x0b: vendor_id=0x8086 device_id=0x7113 class=0x0680 00001495103i[ACPI ] new irq line = 11 00001495117i[ACPI ] new irq line = 9 00001495147i[ACPI ] new PM base address: 0xb000 00001495161i[ACPI ] new SM base address: 0xb100 00001495189i[PCI ] setting SMRAM control register to 0x4a 00001659283i[CPU0 ] Enter to System Management Mode 00001659293i[CPU0 ] RSM: Resuming from System Management Mode 00001823313i[PCI ] setting SMRAM control register to 0x0a 00001832484i[BIOS ] MP table addr=0x000fbcf0 MPC table addr=0x000fbc20 size=0xd0 00001834543i[BIOS ] SMBIOS table addr=0x000fbd00 00001836931i[BIOS ] ACPI tables: RSDP addr=0x000fbe20 ACPI DATA addr=0x01ff0000 size=0x988 00001840169i[BIOS ] Firmware waking vector 0x1ff00cc 00001851282i[PCI ] 440FX PMC write to PAM register 59 (TLB Flush) 00001852126i[BIOS ] bios_table_cur_addr: 0x000fbe44 00014041543i[BIOS ] Booting from 0000:7c00 00037968000p[WGUI ] >>PANIC<< Window closed, exiting! 00037968000i[CPU0 ] CPU is in real mode (active) 00037968000i[CPU0 ] CS.d_b = 16 bit 00037968000i[CPU0 ] SS.d_b = 16 bit 00037968000i[CPU0 ] EFER = 0x00000000 00037968000i[CPU0 ] | RAX=0000000000000000 RBX=0000000000000000 00037968000i[CPU0 ] | RCX=0000000000000000 RDX=0000000000000000 00037968000i[CPU0 ] | RSP=000000000000fffa RBP=0000000000000000 00037968000i[CPU0 ] | RSI=00000000000e2b02 RDI=000000000000ffac 00037968000i[CPU0 ] | R8=0000000000000000 R9=0000000000000000 00037968000i[CPU0 ] | R10=0000000000000000 R11=0000000000000000 00037968000i[CPU0 ] | R12=0000000000000000 R13=0000000000000000 00037968000i[CPU0 ] | R14=0000000000000000 R15=0000000000000000 00037968000i[CPU0 ] | IOPL=0 id vip vif ac vm rf nt of df if tf sf ZF af PF cf 00037968000i[CPU0 ] | SEG selector base limit G D 00037968000i[CPU0 ] | SEG sltr(index|ti|rpl) base limit G D 00037968000i[CPU0 ] | CS:f000( 0004| 0| 0) 000f0000 0000ffff 0 0 00037968000i[CPU0 ] | DS:0000( 0005| 0| 0) 00000000 0000ffff 0 0 00037968000i[CPU0 ] | SS:7c00( 0005| 0| 0) 0007c000 0000ffff 0 0 00037968000i[CPU0 ] | ES:0000( 0005| 0| 0) 00000000 0000ffff 0 0 00037968000i[CPU0 ] | FS:0000( 0005| 0| 0) 00000000 0000ffff 0 0 00037968000i[CPU0 ] | GS:0000( 0005| 0| 0) 00000000 0000ffff 0 0 00037968000i[CPU0 ] | MSR_FS_BASE:0000000000000000 00037968000i[CPU0 ] | MSR_GS_BASE:0000000000000000 00037968000i[CPU0 ] | RIP=000000000000ff53 (0000000000007c6b) 00037968000i[CPU0 ] | CR0=0x60000010 CR2=0x0000000000000000 00037968000i[CPU0 ] | CR3=0x00000000 CR4=0x00000000 00037968000i[CPU0 ] 0x0000000000007c6b>> mov ax, 0x0004 : B80400 00037968000i[CMOS ] Last time is 1278086138 (Fri Jul 02 17:55:38 2010) 00037968000i[ ] restoring default signal behavior 00037968000i[CTRL ] quit_sim called with exit code 1
-
die version von prettyos habe ich nun nicht im kopf, weis aber das ckernel.c die version "0.0.0.530"
0.0.0.530 ist die Version
Vielleicht hilft als erste Maßnahme ein Update auf 0.0.1.9, es kann sein, das Du eine Version hast, die Fehler enthält. Bei mir zumindest funktioniert Version 0.0.1.9 unter Bochs.
Kommen irgendwelche Fehlermeldungen? Es gab mal Probleme mit Bochs, das einen Fehler in der KeyQueue gefunden haben wollte, und deshalb panisch wurde. Da kam dann eine Fehlermeldung. Der scheint aber inzwischen weg zu sein, "panic: action=ignore" ist nicht mehr nötig im brxc-File um PrettyOS auszuführen.
-
danke dir
mir scheint aber eher, als ob meine bochs installation kapput ist... auf realer hardware laufen beide versionen... na, darum kümmere ich mich gleich mal...
-
Steige lieber um auf Qemu, VBox oder VMWare.
-
Aktueller Problemstatus bei 0.0.1.43 - Rev: 607:
- vm86 Testcode (ckernel.c, Zeilen 104 - 112) macht Probleme auf real PC
- fdir bleibt hängen (schon länger beobachtet)
-
Aktueller Problemstatus bei 0.0.1.66 - Rev: 635:
- strg + t (ruft scheduler_log() auf) führt zum #PF --> Absturz
- fdir bleibt hängen (schon länger beobachtet) --> Absturz
EDIT: alles erledigt
-
im IRC:
<somone>MrX: ich habe mal versucht ein userprogramm zu schreiben mit, fgets u. fputc, aber qemu bringt fehlermeldungen, das ich nicht schreiben oder lesen kann...
<somone>FLOPPY ERROR: fdctrl_write_data: can't write data in status mode
<somone>FLOPPY ERROR: fdctrl_read_data: can't read data in CMD stateEDIT: ich habe die syscall-Nr. korrigiert
-
seit 0.0.1.131 werden "reboots" verzeichnet, die im Ablauf - nicht reproduzierbar - eintreten (qemu, PC). MrX: action please.
general protection fault: err_code: 65276 adress(eip): 00113d10h...
-
Da dies der Testthread von PrettyOS ist ,wollte ich meinen Test wiedergeben.
Also ich habe das Image des .tar.gz Archives verwendet ,welches ich von ehenkes bekommen habe.
Dies habe ich natürlich prompt mit meiner Sun VirtualBox unter meinem Ubuntu getestet.
Die Hardwareerkennung schien gut zu laufen zumindest ,wenn es nach der Ausgabe von PrettyOS ging.
Dann bin ich in der ,für meine Verhältnisse unübersichtlichen, Shell gelandet.
Sie ist deswegen unübersichtlich ,weil unter und über der Eingabe ,in der die eingegebenen Zeichen erscheinen, Text beziehungsweise ein Zug zu sehen ist und man erst suchen muss.
Als ich damit zurecht gekommen bin habe ich help eingeben und die implementierten Funktionen/Befehle getestet.
Alles hat funktioniert außer reboot.
Und noch etwas ,was aber wahrscheinlich so gehört, ist ,dass mit dem Befehl fformat das Floppyimage nicht mehr PrettyOS gebootet hat.
Also in diesem Sinne einen Gruß von mir und hoffentlich hilft euch mein Rückblick.
tev
-
vielen dank für das feedback. wir sind auch an weitergehenden tests aller art interessiert.
tastenkombis
strg+t (screenshot ==> floppy),
strg+u (screenshot ==> usb-stick),
ESC+h (Heap regions anzeigen)
-
PrettyOS 0.0.1.166 - Rev: 744
wenn ich hello starte und in konsole m strg+t ausführe, landet der ausdruck bei konsole 0, also bei hello (unerwartetes verhalten)
-
ein übler fehler wurde entdeckt:
zwischen svn rev. 579 und 580 ging das strg+s "kaputt". Test: img in qemu starten, strg+s, fdir (directory zerstört)
Der erste Screenshot (strg+s) überschreibt boot2.bin (cluster #2 u. #3) und den ersten cluster (#4) von kernel.bin. Damit kann qemu PrettyOS nicht mehr starten.
Dass dies über eine lange Strecke nicht entdeckt wurde, zeigt, wir brauchen einen vorgeschriebenen Testablauf, zumindest alle 10 commits, damit wir zeitnah Fehler entdecken. Hier bitte ich um Vorschläge.
-
Ich versuche zunächst zur Fehlerbehebung den genauen Fehler einzugrenzen:
FS_ERROR FAT_fputc(file_t* file, char c) { uint32_t retVal = FAT_fwrite(&c, 1, 1, file->data); /// TEST static uint32_t i=0; i++; printf("\tfputc %u ",i); /// TEST if (retVal == 1) { /// TEST printf("OK "); if (i==4098) { waitForKeyStroke(); } /// TEST return(CE_GOOD); } return CE_WRITE_ERROR; }
Damit kann man den FAT_putc verfolgen. Nach dem 4098ten (video screen + zeilenumbruch) FAT_fputc wird qemu gestoppt und abgebrochen. Schaut man sich dann per EDITDISK boot2.bin und kernel.bin mit dem hex-editor an, so stellt man fest, dass diese Dateien unbeschädigt sind. screen.txt ist angelegt mit Größe 0 byte. Es fehlt also noch der dir-entry-Eintrag.
Lässt man das waitForKeyStroke() durch Bestätigung in qemu weiter laufen, so wird boot.bin komplett mit 0 überschrieben und kernel.bin im ersten Sector genullt.
Fazit: FAT_putc richtet hier keinen direkten Schaden an.
---------------
Nächster Versuch:
static uint32_t cluster2sector(FAT_partition_t* volume, uint32_t cluster) { //..... // #ifdef _FAT_DIAGNOSIS_ printf("\n>>>>> cluster2sector<<<<< cluster: %u sector %u", cluster, sector); if (sector < 100) waitForKeyStroke(); // #endif return (sector); }
Hierbei fällt bei strg+s im unteren Bereich nur die Zahl "sector 19" an. Die Daten des Screenshots werden beginnend ab 0x51000 (sector 648 = 617+31) abgelegt. Dies führt auch nicht weiter.
Die Daten, die z.Z. überschrieben werden, beginnen ab sector 33.
---------------
... und weiter gehts:
static uint32_t fatWrite (FAT_partition_t* volume, uint32_t currCluster, uint32_t value, bool forceWrite) { /// TEST printf("\nfatWrite: currCluster %u value %X", currCluster, value); /// TEST
fat.h
#define LAST_CLUSTER_FAT12 0xFF8
http://www.henkessoft.de/OS_Dev/Bilder/0_0_1_168_Analyzing_Bug_Screenshot.PNG
Im Ergebnis sieht das aber gut aus:
http://www.henkessoft.de/OS_Dev/Bilder/0_0_1_168_Analyzing_Bug_Screenshot_a.PNG
-
Im irc:
<DerHartmut>
Testen: Jede sinnvolle Plattform, sprich: Mindestens 3 Virtuelle Maschinen und 2 Real-PCs (wenn nicht möglich dann halt nicht möglich), Funktion der Änderung testen, ggf. Testcode einbauen (bei Commit wieder entfernen), eventuelle Wechselwirkungen beachten und andere Stellen testen, falls Wechselwirkungen vorhanden.Also ich persönlich <DerHartmut> mache das so
1. Code schreiben
2. Compillieren, bis er sauber durchbaut
3. Testcode schreiben (falls nötig), mit printf() mögliche Ausgaben ausgeben
4. Ist vom Code noch anderer Code betroffen?
5. Rekursion!
6. Alles klappt? Testcode entfernen, nochmal durchbauen
7. Committen
-
Ich habe nun alle Schreibvorgänge protokolliert:
http://www.henkessoft.de/OS_Dev/Bilder/0_0_1_168_Analyzing_Bug_Screenshot_b.PNG2: FAT1 11: FAT2 19: Root Directory 648 ff.: Data
Da sieht man keinen "Angriff" auf Sektor 33-35 (0x4200 ff.)
Da würde dort ja auch etwas anderes stehen als lauter Nullen.
-
Es liegt am Readcache. Der genaue Fehler muss noch gefunden und beseitigt werden.
-
Vorbemerkung: Unerkannte Bugs sind ein echtes Problem, weil sie an unpassender Stelle zuschlagen können, vor allem in Kombination, und Verwirrung stiften.
Bugs müssen zeitnah erkannt werden, da man so am besten reagieren kann. Daher wird hier ein systematischer Test vorgeschlagen.
Dinge, die man ständig beim Ausführen von PrettyOS implizit testet, werden ausgelassen, z.B. Boot-Verhalten.Test für PrettyOS (sollte alle 10 commits durchgeführt und dokumentiert werden):
---------------------------------------------------------------------------------CPU:
FPU-Test (should be implemented at ESC+f)Memory:
recognized correctly? (should be implemented at ESC+m)Keyboard:
Are AltGr keys recognized? Test known combinations of strg+key or ESC+key?Video/Monitor:
Physical Address of grafics card?
Which vbe modes are shown?
Does vbe grafics work properly?Tasking/Scheduler:
Start different programs in their own consoles. Check with strg+t.
Change freqency at timer_install(100). Try 1000 Hz.Floppy Disk Device:
Please test the sequence strg+s, fdir, strg+s, fdir.
Load "arrow" two times.USB mass storage devices:
Try FAT16 and FAT32 (and FAT12 if possible):
Please test the sequence strg+u, strg+u, strg+u. Test the Directory and the content of screenshot (3 texts in "screen.txt").Networking:
Describe environment. Test ARP reply, PING reply. All incoming packets recognized?User Library:
Load program "test" (to be developed).Bitte um Mithilfe, diesen Test weiter auszuarbeiten.
-
Neben der Optimierung des äußeren Testens (eigentlich Overhead) gilt es, folgende Strategie verstärkt zu beachten:
- Loggen/Visualisieren
- Internes Testen durch PrettyOS selbst
- Verstärkte Kommunikation bezüglich Änderungen bei Memory und Prozess Management (hier sind ausführliches Loggen und Tests bei mehreren Umgebungen unerlässlich, um Fehler möglichst früh zu detektieren und zu debuggen)
-
problem im task management:
0.0.1.223 - Rev: 807
...
current task: pid: 6
running tasks:
pid: 5 esp: C020CEB0h eip: 001150DEh PD: 01021000h k_stack: C020D000h
parent: 0
pid: 0 esp: 0018FF00h eip: 00000000h PD: 01021000h k_stack: 00000000h
child-threads: 5
pid: 6 esp: C02055C0h eip: 001150DEh PD: 01021000h k_stack: C0205720h
parent: 0
blocked tasks:
pid: 3 esp: C0002F70h eip: 001150DEh PD: C0208000h k_stack: C0003120h
freetime task:
pid: 1 esp: C0001054h eip: 001150DEh PD: 01021000h k_stack: C00010A8hpid0 hat 2 kinder, verleugnet aber eines davon
-
http://www.c-plusplus.net/forum/viewtopic-var-p-is-1948598.html#1948598
Der neue beschleunigte Lesevorgang bewirkt massive Kollateralschäden. strg+s zerschlägt z.B. so einiges. Um Analyse / Behebung wird gebeten, damit wir das beschleunigte Lesen beibehalten können.