- Retrocomputing Stack Exchange’de, NT 3.1 çekirdeğinin 486DX4 makinede yeniden başlatmaya yol açması sorununa dair ayrıntılı bir teknik tartışma yazısı
- Yazarın, Windows NT 3.1’i bir Compaq ProSignia 3080 sistemine kurduğu ve performansı artırmak için Intel 486DX-33’ü AMD enhanced 486DX4-SV8B ile değiştirdiği
- Yazarın çekirdek hata ayıklamaya girmeye çalışırken sorun yaşadığı ve bunun sonucunda
kd> istemi gelmek yerine makinenin yeniden başlatıldığı
- Yazarın bellek, sistem dosyası bozulması, donanım watchdog etkinliği, USB-to-serial adaptör iletişimi gibi çeşitli olası sorunları test ettiği, ancak bunların hiçbirinin neden olmadığının görüldüğü
- Yazarın, Windows NT 3.1 çekirdeğinin geliştirilmiş 486 işlemcilerle, özellikle de
CPUID komutunu sağlayanlarla uyumlu olmadığını keşfettiği
- Uyumluluk sorununun, işlemci kontrol kayıtlarını genişletilmiş
CONTEXT yapısına kaydeden KiSaveProcessorControlState işlevindeki bir hataya kadar izlenebildiği
- Hatanın,
KPRCB içindeki 19h ofsetindeki baytı model numarasının bir parçası sayan bir işlev nedeniyle CPUID destekli 80-4-86 işlemcilerin 80-260-86 işlemciler olarak ele alınmasına yol açtığı
- Yazarın,
cmp ds:word_FFDFF138, 5 komutunu bayt karşılaştırmasına dönüştürerek yamalamayı ve bu düzeltmenin NTOSKRNL.EXE içinde iki kez uygulanması gerektiğini önerdiği
- Yazarın ayrıntılı incelemesi ve önerdiği düzeltmenin, geliştirilmiş 486 işlemcilerde NT 3.1 çekirdeğiyle ilgili benzer sorunlar yaşayan diğer kişiler için yararlı bir kaynak sunduğu
1 yorum
Hacker News yorumu