Новости Самый неудачный баг в истории Windows. Инженер Microsoft раскрыл, как ошибка в культовой игре Pinball почти «убила» Windows 95

NewsMaker

I'm just a script
Премиум
20,415
46
8 Ноя 2022
5000 FPS ради шарика — ветеран Microsoft рассказал о своём главном провале.


vltcje4l5nc4hzxw8rs95ulhfaxfaz52.jpg


Бывший инженер Microsoft Дэйв Пламмер недавно признался , что самым неудачным багом, который он когда-либо допустил в релизе Windows, оказался вовсе не сбой в системных утилитах , а фатальная ошибка в культовой игре Pinball. Этот аркадный симулятор, знакомый пользователям Windows 95 и NT, был портирован с исходного кода под C, где разработчик создал собственный движок для обработки графики и звука. Именно в этом компоненте и скрывалась ошибка: игра не ограничивала частоту кадров и отрисовывала их настолько быстро, насколько позволял процессор.

На момент появления игры это почти не ощущалось. Машины на базе MIPS R4000 с частотой 200 МГц показывали максимум 60–90 кадров в секунду ( FPS ), и казалось, что этого более чем достаточно. Но по мере того, как компьютеры становились мощнее, недостаток вылез наружу. Pinball начал загружать целое ядро процессора, выжимая из него до 5000 кадров в секунду. Проблема стала настолько заметной, что другой ветеран Microsoft Рэймонд Чен решил разобраться в причинах. Он включил вывод частоты кадров и обнаружил, что счётчик просто переставал помещать значения, так как скорость давно превысила трёхзначные показатели.

Решением стало добавление ограничителя. Чен выставил лимит в 100 кадров в секунду, и потребление ресурсов мгновенно снизилось до 1 процента. По его словам, именно после этого разработчики могли одновременно собирать билды Windows и запускать Pinball без угрозы зависания системы. Для инженеров того времени это стало наглядным примером того, как незначительная деталь в коде может вырасти в серьёзную проблему при изменении аппаратных условий.

Пламмер отмечал, что наличие ошибки в финальном продукте всегда воспринималось как позорное явление. Внутри команды к этому относились серьёзно: за сломанные сборки или некачественные изменения коллеги безжалостно подшучивали, а легендарный архитектор Windows Дэйв Катлер мог отпустить язвительный комментарий, намекая, что автор явно был не в лучшей форме при написании кода. Пламмер вспоминал, что все шутки заканчивались в тот момент, когда баг попадал в релиз — тогда ответственность становилась абсолютно реальной.

Сегодня история Pinball воспринимается скорее как анекдот о «прожорливой» игре, но для инженеров Microsoft конца 90-х это был урок о том, что любое допущение в архитектуре рано или поздно становится заметным. Особенно когда речь идёт о софте, который попадает на миллионы компьютеров по всему миру.
 
Источник новости
www.securitylab.ru

Похожие темы