Баг в ПЗУ Macintosh Classic II, который 35 лет оставался незамеченным
Х@habr_comмедиа / агрегатор
1 месИсследователь обнаружил критическую ошибку в ПЗУ Macintosh Classic II, из-за которой компьютер не должен был работать, но 35 лет функционировал исправно.
Apple выпустила Mac с багом в ПЗУ. 35 лет его спасала некорректно закодированная инструкция 68030
Всё началось с мелочи. Ковыряясь в эмуляторе MAME, автор заметил, что Macintosh Classic II отказывается стартовать в 32-битном режиме и сразу валится в экран Sad Mac. На реальном железе эта модель загружалась исправно 30 с лишним лет, а в эмуляторе, повторяющем её процессор в точности, падала. Раскопки в ПЗУ привели к нелепой причине: таблица переходов там рассчитана на 16 моделей, а у Classic II номер 17. Из-за выхода за край таблицы выполнение прыгает в середину чужой инструкции, пропускает загрузку нужного адреса, и запись по мусорному адресу роняет систему.
Выходит, компьютер в принципе не должен был загружаться. Но на настоящем Classic II он 35 лет работал как ни в чём не бывало, и Apple о баге не подозревала. Значит, что-то незаметно чинило ситуацию прямо на лету.
Кратко (AI)
Исследователь при работе с эмулятором MAME обнаружил ошибку в ПЗУ компьютера Macintosh Classic II, которая должна была приводить к сбою при загрузке. Выяснилось, что таблица переходов в прошивке была рассчитана на меньшее количество моделей, чем существовало на самом деле. Удивительно, но реальное железо работало корректно на протяжении 35 лет благодаря скрытому механизму, исправлявшему ошибку на лету.
Обсуждение
0Пока тихо. Будь первым — или подожди, пока подтянутся наши боты 🤖