- •Лекции №12, 13, 14
- •Обратная совместимость в программном обеспечении
- •Обратная совместимость (для hardware)
- •Преимущества и недостатки обратной совместимости
- •Общие требования, предъявляемые к современным компьютерам Отношение стоимость/производительность
- •Надежность и отказоустойчивость
- •Масштабируемость
- •Совместимость и мобильность программного обеспечения
Преимущества и недостатки обратной совместимости
Главным недостатком обратной совместимости является усложнение аппаратного или программного обеспечения. В случае с ПО это чаще всего приводит к увеличению размеров программного продукта, а в случае с аппаратным обеспечением это приводит усложнению архитектуры, то есть строения, соответствующего элемента аппаратного обеспечения.
Между тем отсутствие обратной совместимости вызывает ряд неудобств. Так, например, в операционных системах Windows 2000/XP эмулятор MS-DOS не обладает полной обратной совместимостью с реальной ОС MS-DOS, в отличие от Windows 9x (в состав которой входит не эмулятор, а «настоящая» MS-DOS, запускаемая до Windows и используемая для работы DOS-приложений). Вследствие этого во многих случаях предприятия вынуждены пользоваться более ранними версиями этой операционной системы, либо устанавливать полноценную MS-DOS на виртуальные компьютеры, так как используемое программное обеспечение требует полноценной ОС MS-DOS, а не урезанной в возможностях.
Двои́чная совмести́мость, также бина́рная совмести́мость — от англ. binary compatibility — вид совместимости программ, позволяющий программе работать в различных средах без изменения её двоичных файлов.
Этот термин часто используется в значении «совместимость операционных систем», и в таком случае означает способность уже скомпилированной версии программы для одной операционной системы работать в другой операционной системе без перекомпиляции. К примеру, практически все программы, написанные для Windows 2000, можно запустить в Windows XP — это означает, что Windows 2000 и Windows XP бинарно совместимы.
Двоичная совместимость включает в себя побайтовую совместимость полей загрузки, полную идентичность механизма вызова функций, передачи переменных и получения результата вычислений, и полную реализацию интерфейса программирования. При этом технически реализация может быть совершенно иной, — главное, чтобы были реализованы все вызовы и чтобы они приводили к ожидаемому результату, а каким способом этот результат достигается, решают создатели программы.
Слом двоичной совместимости означает прекращение поддержки программ и обязательное требование перекомпиляции и возможных исправлений в программе, чтобы она заработала. К примеру, после того, как компания Apple начала использовать в своих компьютерах процессоры Intel, была сломана двоичная совместимость со всеми приложениями, написанными для процессоров PowerPC. Чтобы не лишиться всех разработанных в прошлом программых продуктов для операционной системы Mac OS, компания Apple использует лёгкий транслятор Rosetta, переводящий вызовы операционной системы Mac OS для PowerPC в вызовы Mac OS для Intel. Этот пример демонстрирует также возможный метод борьбы со сломом двоичной совместимости.
Общие требования, предъявляемые к современным компьютерам Отношение стоимость/производительность
Появление любого нового направления в вычислительной технике определяется требованиями компьютерного рынка. Поэтому у разработчиков компьютеров нет одной единственной цели. Большая универсальная вычислительная машина (мейнфрейм) или суперкомпьютер стоят дорого. Для достижения поставленных целей при проектировании высокопроизводительных конструкций приходится игнорировать стоимостные характеристики. Суперкомпьютеры фирмы Cray Research относятся именно к этой категории компьютеров. Другим крайним примером может служить низкостоимостная конструкция, где производительность принесена в жертву для достижения низкой стоимости. К этому направлению относятся персональные компьютеры различных клонов IBM PC. Между этими двумя крайними направлениями находятся конструкции, основанные на отношении стоимость/ производительность, в которых разработчики находят баланс между стоимостными параметрами и производительностью. Типичными примерами такого рода компьютеров являются миникомпьютеры и рабочие станции.
Для сравнения различных компьютеров между собой обычно используются стандартные методики измерения производительности. Эти методики позволяют разработчикам и пользователям использовать полученные в результате испытаний количественные показатели для оценки тех или иных технических решений, и в конце концов именно производительность и стоимость дают пользователю рациональную основу для решения вопроса, какой компьютер выбрать.
