Jump to content

Ошибка совместимости

(Перенаправлено с сайта «Совместимо с ошибками »)

Компьютерное оборудование или программное обеспечение считается совместимым с ошибками , если оно точно воспроизводит нежелательную функцию. [1] предыдущей версии. Фраза находится в файле жаргона . [2]

Аспектом обеспечения обратной совместимости со старой системой является то, что клиентские программы таких систем часто зависят не только от указанных интерфейсов, но также от ошибок и непреднамеренного поведения. Это также должно быть сохранено при более новой замене. Помимо значительно более высокой сложности, которую необходимо поддерживать в ходе естественного развития кода или интерфейса, иногда это может вызывать проблемы с производительностью или безопасностью, а несогласованность в поведении интерфейсов может иногда приводить к новым ошибкам в программном обеспечении, использующем его, создавая сложно разрешить разнонаправленные перекрестные зависимости между различными частями кода. [3]

ПРИНАДЛЕЖАЩИЙ

[ редактировать ]

Примеры можно найти в MS-DOS / PC DOS : Когда MS-DOS/PC DOS 3.1 и выше (включая Windows 9x ) и OS/2 обнаруживают определенные метки FAT OEM , они не доверяют некоторым значениям блока параметров BIOS (BPB) и пересчитывают их на основе других параметров геометрии диска, чтобы обойти их. несколько ошибок расчета на единицу, вызванных некоторыми программами форматирования в более ранних выпусках этих систем. [4] [5] [6] [7] Хотя такое недокументированное поведение позволяет им справляться конкретно с этими неправильно отформатированными томами, оно ограничивает гибкость геометрии дисков, с которой они могут работать в целом, и может привести к тому, что они уничтожат правильно отформатированные тома, созданные сторонними организациями, если они отклоняются от настроек по умолчанию, используемых Майкрософт и IBM . [6] [7] Когда MS-DOS/PC DOS 5.0 и выше работают на процессорах с процессором 286 или выше, резидентный исполняемый загрузчик содержит код, специально разработанный для обнаружения и исправления некоторых широко распространенных приложений и загрузчиков-загрузчиков (например, программ, связанных со старыми версиями Microsoft EXEPACK или Rational Systems). ' 386 расширителей DOS), исправляя загруженный образ программы перед ее выполнением. [8] При определенных условиях базовая DOS также исправляет Windows ( WINA20.386 ). [9]

В ходе разработки DR-DOS также пришлось модифицировать, чтобы не только эмулировать многие недокументированные особенности и нежелательные свойства MS-DOS и PC DOS (например, необходимость использования некоторых вводящих в заблуждение имен файлов, таких как IBMBIO.COM , IBMDOS.COM или COUNTRY) . .SYS для файлов, которые не соответствуют спецификациям исполняемых файлов в DOS, [10] [11] [12] [номер 1] или необходимость введения пути к каталогу. с ограниченной длиной внутренней структуры текущего каталога (CDS) [9] [13] [14] ), но также и реальные ошибки в ядре и некоторых драйверах, необходимые для запуска некоторых других драйверов и приложений в DR-DOS, когда они тестировались только на определенных версиях MS-DOS. [9] [6] [8] [15] [16] [17]

Другим примером является Windows , которая традиционно эмулировала многие старые системные ошибки, чтобы обеспечить запуск старых низкоуровневых программ. В результате Wine , который позволяет запускать множество приложений Windows на других платформах, также должен поддерживать совместимость с Windows. [18]

Когда Microsoft прекратила поддержку 16-битного кода в Windows и больше не включала NTVDM в 64-битные версии операционной системы, исполняемый загрузчик был изменен, чтобы распознавать некоторые конкретные 16-битные программы запуска и установки и заменять их на месте. Fly с эквивалентными заглушками кода, работающими на 64-разрядных процессорах. [19] [20]

Во время разработки продукта, совместимого с IBM PC , Compaq инженеры обнаружили, что Microsoft Flight Simulator не запускается из-за того, что subLOGIC из Брюс Артвик назвал «ошибкой в ​​одном из чипов Intel », что вынудило их сделать свой компьютер совместимым с ошибками IBM-ПК. [21] Другой пример аппаратного обеспечения можно найти в конструкции адресной строки IBM Personal Computer/AT A20 для эмуляции поведения старых процессоров. [8] [15]

В Microsoft Excel всегда была преднамеренная ошибка високосного года , которая ошибочно считала 29 февраля 1900 года фактической датой, чтобы обеспечить обратную совместимость с Lotus 1-2-3 . [22]

Хайрам Райт , инженер Google , рассказывает об этой проблеме, которую он наблюдал воочию, работая над основными библиотеками C++. Именно Титус Уинтерс , также инженер Google, популяризировал эту концепцию в более широком масштабе как « Закон Хайрама ». [23]

Заголовок HTTP-реферера — это неправильное написание слова реферер . Это была ошибка в исходном веб-предложении, и она была сохранена для совместимости.

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ Файлы IBMBIO.COM и IBMDOS.COM представляют собой специальные двоичные образы, содержащие исполняемый код . Случайная попытка запустить их из командной строки, как если бы это были обычные программы в стиле COM, привела бы к сбою системы. По этой причине эти файлы имеют «скрытый», атрибут установленный в MS-DOS / PC DOS . Этого можно было избежать, выбрав другие расширения файлов (например, DRBIOS.SYS и DRBDOS.SYS ), но этого нельзя было сделать позже, чтобы сохранить совместимость с различными инструментами, ожидающими эти конкретные имена файлов. Чтобы исключить риск сбоев, эти файлы были преобразованы в толстые двоичные файлы в DR-DOS 7.02 и выше, теперь включая крошечные заглушки для корректного выхода при ненадлежащем вызове. [а] [б]
  1. ^ «совместимость между ошибками» . catb.org . То же, что и совместимость с ошибками, но с дополнительными последствиями, заключающимися в том, что для обеспечения репликации каждой (известной) ошибки было затрачено много утомительных усилий.
  2. ^ «Совместимость с ошибками — www.jargon.net» . Проверено 03 февраля 2010 г.
  3. ^ Понтин, Джейсон (26 декабря 1994 г.). «Третья задержка Windows 95; нуждается в доработке» . Инфомир . 16 (52). InfoWorld Media Group, Inc.: 18.
  4. ^ Уильямс, Дэйв (12 января 1992 г.). Технический справочник программиста для MSDOS и IBM PC . ISBN  1-878830-02-3 . ДОСРЕФ . Проверено 8 января 2012 г. (Примечание. Автор упоминает, что DOS 4.0 проверяет OEM-маркировку, но отрицает, что DOS 3.2 также проверяет ее (хотя это так).)
  5. ^ Басс, Уолли (14 февраля 1994 г.). «Размер кластера» . Группа новостей : comp.os.msdos.programmer . Архивировано из оригинала 9 сентября 2017 г. Проверено 14 октября 2006 г.
  6. ^ Перейти обратно: а б с Пол, Матиас Р. (20 февраля 2002 г.). «Нужна DOS 6.22 (не OEM)» . alt.msdos.programmer . Архивировано из оригинала 9 сентября 2017 г. Проверено 14 октября 2006 г.
  7. ^ Перейти обратно: а б Пол, Матиас Р. (25 августа 2004 г.). «НОВОЛТРК.РЕГ» . www.drdos.org . Архивировано из оригинала 4 марта 2016 г. Проверено 17 декабря 2011 г. [1]
  8. ^ Перейти обратно: а б с Пол, Матиас Р. (07 октября 2002 г.). «Re: Проблемы, связанные с masm.com (PSP)» . alt.lang.asm . Архивировано из оригинала 3 сентября 2017 г. Проверено 3 сентября 2017 г.
  9. ^ Перейти обратно: а б с Шульман, Эндрю; Браун, Ральф Д .; Макси, Дэвид; Михелс, Раймонд Дж.; Кайл, Джим (1994) [ноябрь 1993 г.]. Недокументированная DOS: Руководство программиста по зарезервированным функциям и структурам данных MS-DOS - расширено и включает MS-DOS 6, Novell DOS и Windows 3.1 (2-е изд.). Ридинг, Массачусетс: Эддисон Уэсли . ISBN  0-201-63287-Х . (xviii+856+vi страниц, 3,5-дюймовая дискета) Исправления: [2] [3]
  10. ^ Пол, Матиас Р. (2 октября 1997 г.). «Обновление Caldera OpenDOS 7.01/7.02 Alpha 3 IBMBIO.COM README.TXT» . Архивировано из оригинала 4 октября 2003 г. Проверено 29 марта 2009 г. [4]
  11. ^ DR-DOS 7.03 WHATSNEW.TXT — изменения с DR-DOS 7.02 на DR-DOS 7.03 . Кальдера, Инк. 24 декабря 1998 г. Архивировано из оригинала 08 апреля 2019 г. Проверено 08 апреля 2019 г.
  12. ^ Пол, Маттиас Р. (10 июня 2001 г.) [1995]. «Формат файла DOS COUNTRY.SYS» (файл COUNTRY.LST) (изд. 1.44). Архивировано из оригинала 20 апреля 2016 г. Проверено 20 августа 2016 г.
  13. ^ Пол, Матиас Р. (07.06.1997) [апрель 1994 г.]. «Глава 1.3.xi: Слишком длинные пути». NWDOS7UN.TXT — Сводка документированных и недокументированных возможностей Novell DOS 7 . МПДОСТИП (на немецком языке). Архивировано из оригинала 07.11.2016 . Проверено 7 ноября 2016 г.
  14. ^ Пол, Матиас Р. (30 июля 1997 г.) [1 мая 1994 г.]. NWDOS-TIPs — советы и подсказки для Novell DOS 7, с просмотром недокументированных подробностей, ошибок и обходных путей . MPDOSTIP (на немецком языке) (3-е изд.). Архивировано из оригинала 10 сентября 2017 г. Проверено 6 августа 2014 г. (Примечание. NWDOSTIP.TXT — это обширная работа по Novell DOS 7 и OpenDOS 7.01, включая описание многих недокументированных функций и внутренних устройств. Это часть еще более обширной работы автора. MPDOSTIP.ZIP Коллекция сохранялась до 2001 года и в то время распространялась на многих сайтах. Предоставленная ссылка указывает на более старую версию файла, преобразованную в HTML. NWDOSTIP.TXT файл.) [5]
  15. ^ Перейти обратно: а б Пол, Матиас Р. (2 февраля 2002 г.). «Treiber dynamisch nachladen (Intra-Segment-Offset-Relokation zum Laden von TSRs in die HMA)» [Динамическая загрузка драйверов (перемещение внутрисегментного смещения для загрузки TSR в HMA)]. de.comp.os.msdos (на немецком языке). Архивировано из оригинала 9 сентября 2017 г. Проверено 2 июля 2017 г. (Примечание. Дается всесторонний обзор истории и «природы» HMA , а также неочевидных конструктивных ограничений, которые необходимо учитывать при разработке расширений резидентной системы для загрузки в HMA.)
  16. ^ Пол, Матиас Р. (1 апреля 2002 г.). «Исправление расширения DOS CauseWay под DR-DOS 7.0x EMM386.EXE» . Группа новостей : comp.os.msdos.programmer . Архивировано из оригинала 19 сентября 2018 г. Проверено 19 сентября 2018 г.
  17. ^ Пол, Матиас Р. (18 августа 2001 г.). «Re: [fd-dev] О GRAFTABL и DISPLAY.SYS (было: Изменение кодовых страниц в FreeDOS)» . freedos-dev . Архивировано из оригинала 4 сентября 2017 г. Проверено 4 сентября 2017 г.
  18. ^ «WineFeatures — Официальная винная вики» . Проверено 03 февраля 2010 г.
  19. ^ «Установка приложения на 64-битных системах» . Майкрософт . 2018-05-31. Архивировано из оригинала 22 июля 2021 г. Проверено 26 мая 2016 г.
  20. ^ «64-разрядные версии Windows не поддерживают 16-разрядные компоненты, 16-разрядные процессы и 16-разрядные приложения» . 2.0. Майкрософт . 08 сентября 2020 г. [11 сентября 2011 г.]. КБ896458. Архивировано из оригинала 12 сентября 2021 г. Проверено 26 мая 2016 г.
  21. ^ Якал, Кэти (январь 1985 г.). «Брюс Артвик / Разработчик авиасимулятора II» . Бюллетень Compute ! п. 32 . Проверено 6 июля 2014 г.
  22. ^ Excel ошибочно предполагает, что 1900 год — високосный . Проверено 1 мая 2019 г.
  23. ^ «Программная инженерия в Google [Книга]» . www.oreilly.com . Проверено 31 мая 2022 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 159003f7b333658b985a57daf8bb08ce__1714688520
URL1:https://arc.ask3.ru/arc/aa/15/ce/159003f7b333658b985a57daf8bb08ce.html
Заголовок, (Title) документа по адресу, URL1:
Bug compatibility - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)