Недокументированная функция является непреднамеренным или недокументированные операции аппаратного обеспечения, например, недокументированные инструкции , или функция программного обеспечения нашли в компьютерных аппаратных средствах и программном обеспечении , которое считается полезным или полезным. Иногда документация пропускается по недосмотру, но недокументированные функции иногда не предназначены для использования конечными пользователями , а остаются доступными для использования поставщиком для поддержки и разработки программного обеспечения . Кроме того, некоторая непреднамеренная работа оборудования или программного обеспечения, которая оказывается полезной для пользователей, является просто ошибкой , недостатком или причудой.
Поскольку поставщики программного обеспечения обычно рассматривают документацию по программному обеспечению как договор о его поведении, недокументированные функции обычно не поддерживаются и могут быть удалены или изменены по желанию и без уведомления пользователей.
Разработчики считают, что некоторые дефекты, о которых сообщают пользователи, работают должным образом, что приводит к крылатой фразе «это не ошибка, это функция» (INABIAF) и ее вариациям. [1]
Аппаратное обеспечение
Незарегистрированные инструкции, известные как незаконные опкоды , на MOS Technology 6510 на Commodore 64 и MOS Technology 6502 из Apple II компьютеров иногда используется. Точно так же программисты (особенно игры и демо ) на Commodore Amiga используют преимущества непреднамеренной работы его сопроцессоров для создания новых эффектов или оптимизаций.
В 2019 году исследователи обнаружили, что режим отладки производителя, известный как VISA, имеет недокументированную функцию на концентраторах контроллеров платформы Intel , известных как наборы микросхем и которые включены в большинство материнских плат на базе Intel, что делает этот режим доступным с обычной материнской платы. [2] Поскольку набор микросхем имеет прямой доступ к памяти, это проблематично, в основном по соображениям безопасности.
Программное обеспечение
Недокументированные функции (например, возможность изменить символ переключения в MS-DOS , обычно на дефис ) могут быть включены в целях совместимости (в данном случае с утилитами Unix ) или по причинам будущего расширения. Тем не мение; если поставщик программного обеспечения меняет свою стратегию разработки программного обеспечения, чтобы лучше согласоваться с бизнесом, отсутствие документации упрощает обоснование удаления этой функции.
Новые версии программного обеспечения могут опускать упоминания о старых (возможно, замененных) функциях в документации, но оставлять их реализованными для пользователей, которые к ним привыкли. [3]
В некоторых случаях разработчики в шутку или для удобства называют ошибки программного обеспечения недокументированными функциями. [1] [4] Это использование могло быть популяризировано в некоторых ответах Microsoft на отчеты об ошибках для ее первого продукта Word для Windows , [5], но возникло не там. Самая старая из сохранившихся ссылок на Usenet датируется 5 марта 1984 года. [6] Между 1969 и 1972 годами Сэнди Матес, системный программист для программного обеспечения PDP-8 в Digital Equipment Corporation (DEC) в Мейнарде, Массачусетс, использовал термины «ошибка» и «особенность» в ее отчете о результатах тестирования, позволяющая различать недокументированные действия поставленных программных продуктов, которые были соответственно неприемлемыми и допустимыми . Это использование могло быть увековечено. [7]
Сами по себе недокументированные функции стали важной особенностью компьютерных игр . Разработчики часто включают различные читы и другие специальные функции (« пасхалки »), которые не описаны в упакованном материале, но стали частью «шума» об игре в Интернете и среди геймеров. Недокументированные особенности иностранных игр часто являются элементами, которые не были локализованы с их родного языка.
API с закрытым исходным кодом также могут иметь недокументированные функции, о которых мало кто знает. Иногда они используются для получения коммерческого преимущества по сравнению со сторонним программным обеспечением, предоставляя поставщику приложения дополнительную информацию или повышая производительность.
Смотрите также
Рекомендации
- ^ a b Николас Карр. " ' ЭТО НЕ БАГ, ЭТО ВОЗМОЖНОСТЬ. ТРИТЕ - ИЛИ ПРОСТО ПРАВИЛЬНО? " . Проводной .
- ^ Лучиан Армасу. «Недокументированная функция набора микросхем Intel может помочь хакерам украсть данные» . Оборудование Тома .
- ^ Арредондо, Ларри (26 марта 1984 г.). «Обзор: WordStar 3.3». InfoWorld .
- ^ Старые версии хакерского жаргона [1] определяют FEATURE как «Удивительное свойство программы. Время от времени документируется».
- ^ Джеймс Глейк , Что только что произошло , гл. 1
- ^ Первое использование в Usenet . Группы Google
- ↑ Воспоминания о Сэнди Матес, теперь Сандра Ли Харрис,класс MIT 1969 года, по состоянию на август 2010 года.