- Retrocomputing Stack Exchange पर NT 3.1 kernel द्वारा 486DX4 मशीन में reboot ट्रिगर होने की समस्या पर विस्तृत तकनीकी चर्चा वाला लेख
- लेखक ने Compaq ProSignia 3080 सिस्टम पर Windows NT 3.1 install किया और performance बढ़ाने के लिए Intel 486DX-33 को AMD enhanced 486DX4-SV8B से बदल दिया
- लेखक को kernel debugging में प्रवेश करने की कोशिश करते समय समस्या हुई, जिसमें
kd> prompt मिलने के बजाय मशीन reboot हो जाती थी
- लेखक ने memory, system file corruption, hardware watchdog activity, USB-to-serial adapter communication सहित कई संभावित कारणों की जाँच की, लेकिन इनमें से कोई भी कारण नहीं निकला
- लेखक ने पाया कि Windows NT 3.1 kernel enhanced 486 processors, खासकर CPUID instruction देने वाले processors, के साथ compatible नहीं है
- compatibility समस्या को
KiSaveProcessorControlState function के bug तक trace किया गया, जो processor control registers को expanded CONTEXT structure में save करता है
- bug की वजह से
KPRCB के offset 19h पर मौजूद byte को model number के हिस्से के रूप में लिया जाता है, जिसके कारण CPUID capable 80-4-86 processor को 80-260-86 processor की तरह treat किया जाता है
- लेखक ने
cmp ds:word_FFDFF138, 5 instruction को byte comparison के रूप में patch करने वाला fix सुझाया, जिसे NTOSKRNL.EXE में दो बार apply करना पड़ता है
- लेखक की विस्तृत जाँच और सुझाया गया fix enhanced 486 processors पर NT 3.1 kernel से जुड़ी ऐसी ही समस्याओं से जूझ रहे अन्य लोगों के लिए उपयोगी संदर्भ प्रदान करता है
1 टिप्पणियां
Hacker News राय