Улюблений залізний

Улюблений залізний

Ларрі Остерман: мій улюблений - той, що ми виявили на ICL PWS-400. Це була нова платформа від ICL (британська компанія, куплена Fujitsu в 2002), і нашим завданням було портувати MS-DOS 4.1 на цю платформу. Проектом займалися п'ятеро - двоє від Microsoft і троє від ICL.


Залізо у PWS-400 було досить незвичайне: наприклад, програми реального режиму могли чисто перемикати банки пам'яті - за рахунок цієї програми могли виконуватися у фоновому режимі, не заважаючи одне іншому.

Нас було п'ятеро розробників, тестувальників у нас не було; тому ми тестували нову систему всім, що попадеться під руку. Моїм улюбленим «інструментом тестування» була гра, яку Валорі (дружина) принесла з навчання. Я не пам'ятаю точно, яка це була гра; але кожен раз, коли я в неї грав і доходив до певного місця, машина раптом перезавантажувалася.

Ми підключили до машини ICE (внутрішньосхемний емулятор - пристрій, що дозволяє дізнатися, що відбувається всередині і зовні процесора), і виявили, що процесор отримує сигнал перезавантаження ззовні. Так що як мінімум, він був не в коді.

Хлопці, які збирали машину, взяли у мене ту гру, і стали розбиратися.

Через пару днів вони повернули гру і розповіли, що знайшли несправність. Виявилося, що доріжка до динаміка проходила на материнській платі занадто близько до доріжки перезавантаження. Коли на динамік подавався сигнал певного виду, електромагнітне випромінювання від першої доріжки наводило на другій доріжці досить сильне напруження, щоб процесор розпізнав його як сигнал до перезавантаження.

Метт Вільямс: мені запам'яталася пара багів, що зводили мене з розуму.

Перша історія трапилася в Нью-Йорк-Сіті. До одного з комп'ютерів була підключена миша, яка безладно стрибала, варто було їй тільки провести по певній частині робочого столу. Але це спрацьовувало не завжди. Через якийсь час ми виявили закономірність: миша божеволіла тільки в певний час дня. І місце на столі, в якому вона божеволіла, теж рухалося з часом. Ми витратили безліч часу, перш ніж виявили причину того, що відбувається. Але спочатку розповім про другий бага: вони пов'язані один з іншим, хоча їх і розділяє близько 5 років.

До того часу я переїхав до Каліфорнії і придбав вживаний автомобіль. Перш ніж віддати його мені, попередні господарі розповіли про дивну особливість магнітоли: ні з того ні з сього випливати вставлений диск. Вони кілька разів зверталися до майстерні з цього приводу, але несправність не змогли знайти, і механіки просто замінили магнітолу на нову, такої ж моделі. Це не допомогло: несправність залишилася.

Поїздивши на цій машині кілька місяців, я виявив закономірність: магнітола випльовувала диск, тільки коли я їхав у певну сторону... і притому тільки в певний час дня.

Так в чому ж була справа? Обидва рази винне було сонце. У миші був невеликий зазор між кнопками, і коли сонце світило на неї під певним кутом, світло потрапляло всередину на фотопари і викликало реакцію, як від обертової в усі сторони кульки. Так само, коли сонце потрапляло крізь вікно в даху в завантажувальну щілину магнітоли, - спрацьовував датчик вставленого диска, і магнітола його випльовувала.