Топ питань
Часова шкала
Чат
Перспективи
Сумісність за помилками
точне повторення небажаних особливостей попередньої версії комп'ютерної системи З Вікіпедії, вільної енциклопедії
Remove ads
Кажуть, що комп'ютерне обладнання або програмне забезпечення сумісні за помилками, якщо воно точно повторює небажані особливості[1] попередньої версії. Фраза є в Jargon File.[2]
Аспект підтримки зворотної сумісності зі старішою системою полягає в тому, що клієнтські програми таких систем часто залежать не лише від їхніх визначених інтерфейсів, але й від помилок і незапланованої поведінки, які також мають бути збережені в новій версії. Окрім значно вищої складності, яку доводиться підтримувати під час природної еволюції коду чи інтерфейсу, це іноді спричиняє проблеми з продуктивністю чи безпекою, а неузгодженість у поведінці інтерфейсів може призводити до нових помилок у програмному забезпеченні, яке його використовує, створюючи складні для розв'язання перехресні залежності між різними фрагментами коду.[3]
Remove ads
Приклади
Узагальнити
Перспектива
DOS
Приклади можна знайти в MS-DOS/PC DOS. Коли MS-DOS/PC DOS 3.1 і вище (включно з Windows 9x) і OS/2 виявляють певні мітки FAT OEM[en], вони не довіряють деяким значенням блоку параметрів BIOS[en] (BPB) і переобчислюють їх за іншими параметрами геометрії диска, щоб обійти кілька «помилок на одиницю», викликаних програмами для форматування в деяких попередніх версіях систем.[4][5][6][7] Хоча така недокументована поведінка дозволяє їм упоратися з цими неправильно відформатованими томами, вона обмежує гнучкість геометрії диска, з якою вони можуть працювати в цілому, і може призвести до того, що вони відкидають правильно відформатовані томи, створені третіми сторонами, якщо вони відхиляються від стандартних значень, використовуваних Microsoft і IBM.[6][7] Коли MS-DOS/PC DOS 5.0 і вище працюють на процесорах 286 або вище, резидентний завантажувач[en] містить код, спеціально розроблений для виявлення та виправлення певних поширених програм і завантажувачів-заглушок (таких як програми, пов'язані зі старішими версіями Microsoft EXEPACK[en] або розширювачів DOS[en] 386 від Rational Systems) шляхом виправлення завантаженого образу програми перед його виконанням. За певних умов базова DOS також виправляє Windows (WINA20.386).
Під час розробки DR-DOS[en] також довелося модифікувати, щоб не тільки імітувати низку недокументованих особливостей і небажаних властивостей MS-DOS і PC DOS (наприклад, використання деяких оманливих імен файлів, таких як IBMBIO.COM[en], IBMDOS.COM[en] або COUNTRY.SYS, для файлів, які не відповідають специфікаціям для виконуваних файлів у DOS,[8][9][10][nb 1] або необхідність внутрішнього впровадження Current Directory Structure (CDS) з обмеженою довжиною шляху до каталогу[11][12][13]), а також фактичні помилки в ядрі та кількох драйверах, щоб змусити працювати в DR-DOS деякі інші драйвери та програми, які тестувалися лише на певних версіях MS-DOS.[11][6][14][15][16][17]
Windows
Ще один приклад — Windows, яка традиційно емулювала багато старих системних помилок, щоб забезпечити роботу старіших низькорівневих програм. Як наслідок, Wine, який дає змогу запускати багато програм Windows на інших платформах, також має підтримувати сумісність за помилками з Windows.[18]
Інші
Під час розробки комп'ютера, сумісного з IBM PC, інженери Compaq виявили, що Microsoft Flight Simulator не запускається через те, що Брюс Артвік[en] із subLOGIC назвав «помилкою в одному з чипів Intel», що змусило їх зробити свій комп'ютер сумісним за помилками з IBM PC.[19] Інший приклад з апаратним забезпеченням — адресна лінія A20[en] у IBM Personal Computer/AT, введена для емуляції поведінки старих процесорів.[14][15]
У Microsoft Excel завжди була навмисна помилка високосного року[en], через яку 29 лютого 1900 року сприймалося, як правильна дата, щоб забезпечити зворотну сумісність із Lotus 1-2-3[en].[20]
Гайрум Райт (Hyrum Wright), інженер Google, розповів про цю проблему, яку він спостерігав, працюючи над бібліотеками ядра C++. Ще один інженер Google, Титус Вінтерс (Titus Winters), популяризував цю концепцію як «закон Гайрума».[21]
Назва HTTP referer[en] містить помилку у слові referrer. Цю помилку, що з'явилася в оригінальній веб-пропозиції, збережено для сумісності.
Remove ads
Див. також
Виноски
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads