Обратная совместимость
Обра́тная совмести́мость — наличие в новой версии компьютерной программы или компьютерного оборудования интерфейса, присутствующего в старой версии, в результате чего другие программы (или человек) могут продолжать работать с новой версией без значительной переделки (или переучивания). Полная обратная совместимость означает, что при замене старой версии компонента на новую функционирование всей системы в целом не нарушится.
Обратная совместимость представляет собой один из важнейших приоритетов в компьютерной индустрии. Обеспечение обратной совместимости позволяет пользователям при переходе к новой версии частично или полностью сохранить ценность тех наработок, которые они приобрели при адаптации к работе с предыдущими версиями программного или аппаратного обеспечения.
В то же время обеспечение обратной совместимости обладает и недостатками, сдерживая развитие технологий. Так, в современных компьютерах очень много «унаследовано» от их предыдущих поколений, от чего нельзя отказаться из-за совместимости. Это позволяет сохранить предыдущие инвестиции производителей и потребителей, но одновременно не позволяет реализовать более прогрессивные функции и повышает вероятность возникновения ошибок.
Обратная совместимость в программном обеспечении
Обратная совместимость применительно к программному обеспечению означает способность более поздних версий программы работать с файлами, созданными более ранней версией этой же программы или программы, реализующей те же алгоритмы, что и более ранняя версия. Так, например, в Microsoft Office присутствует поддержка целого ряда форматов, которые на данный момент почти не используются.
Обратная совместимость в аппаратном обеспечении
Обратная совместимость применительно к аппаратному обеспечению означает способность более новых типов оборудования эмулировать работу предшествующих. Так, например, некоторые микропроцессоры Intel до сих пор поддерживают весь набор инструкций, использовавшихся ещё в самых первых представителях этого ряда.
Преимущества и недостатки обратной совместимости
Главным недостатком обратной совместимости является усложнение аппаратного или программного обеспечения. В случае с программным обеспечением это чаще всего приводит к увеличению размеров программного продукта, а в случае с аппаратным обеспечением это приводит к усложнению архитектуры, то есть строения, соответствующего элемента аппаратного обеспечения. В конечном итоге всё это приводит к увеличению стоимости производства и поддержки (часто после смены базовой технологии невозможно найти специалистов поддержки, владеющих обеими технологиями в достаточной степени).
Между тем отсутствие обратной совместимости вызывает ряд неудобств. Так, например, в операционных системах Windows 2000/XP эмулятор MS-DOS не обладает полной обратной совместимостью с реальной ОС MS-DOS, в отличие от Windows 9x (в состав которой входит не эмулятор, а «настоящая» MS-DOS, запускаемая до Windows и используемая для работы DOS-приложений). Вследствие этого во многих случаях предприятия вынуждены пользоваться более ранними версиями этой операционной системы, либо устанавливать полноценную MS-DOS на виртуальные компьютеры, поскольку используемое программное обеспечение требует полноценной ОС MS-DOS, а не урезанной в возможностях.
В ядре Linux применён эффективный механизм, удовлетворяющий обоим противоречивым требованиям. Поддержка (драйверы) устаревших устройств постепенно выносится из основного кода в динамически загружаемые модули. Это, с одной стороны, позволяет иметь самое современное ядро, при этом небольшое, не обременённое «атавизмами». С другой стороны, поддержка, к примеру, IDE- или даже MFM-диска возможна благодаря подгружаемым модулям. Причём это происходит без виртуализации, что означает, что всё ранее написанное ПО остаётся полностью функциональным.