Несовместимые аппаратные платформы

Платформы-анклавы

Платформы-бренды

Одной из наиболее распространённых офисных платформ и персональных компьютеров является IBM PC. На рынке персональных компьютеров также распространены компьютеры Apple. Эти платформы являются широко известными брендами.

Иногда ветвь CPU прекращает развитие, и может возникнуть компьютерный анклав, то есть пользователи по-прежнему любят свои компьютеры или не могут от них отказаться. Технический прогресс в анклаве замедлен или полностью остановлен. Железо компьютерного анклава на уровне машинных кодов не совместимо с мейнстрим платформами и постепенно морально стареет. Это значит, что у пользователей есть большой соблазн сменить платформу. Программисты если и пишут новый софт, то, как правило, на свободных, нежели коммерческих, началах.

Анклав Commodore 64 во многом обязан своему существованию возможности писать музыку на этом компьютере 1982 года выпуска. Немецкая группа Welle:Erdball, играющая в стиле Synthpop, пишет пять своих участников — пятым, всегда и везде указываемым в списке музыкантом, является компьютер Commodore 64.

8-битные процессоры Intel, такие как 8080 и 8085, несовместимы с 8086 и другими 16 битными процессорами Intel. Сегодня 8080 и 8085 являются анклавом. Примером из анклава может быть компьютер MFA с процессором 8085. Он по-прежнему применяется студентами для изучения функционирования ЭВМ. Несовместимые с архитектурой IA-32 процессоры/платформы линий iAPX 432, i960 и i860, тоже ушедшие в прошлое, по разным причинам анклавов не образуют.

ZX Spectrum, будучи созданным в 1982, применяется любителями до сих пор. Процессоров Z-80 произведено более миллиарда. В мире огромное число клонов ZX Spectrum, многие из которых сделаны в СССР и России. Современный спектрум имеет CD привод, модем и существует во многом благодаря участию в Демосцене, которая в РФ получила огромную популярность именно на ZX Spectrum. Таким образом, хотя ZX Spectrum не слишком активно совершенствуется технически, но остаётся полотном для компьютерного искусства.

Аппаратные платформы несовместимы в случае различия программной модели процессора, а также различия системных шин и устройств на материнской плате.

Несовместимость кода, выполняемого процессором

Корпорация Intel, развивая свои семейства процессоров, наполняет процессоры дополнительными командами: команды математического сопроцессора (FPU); команды оптимизированные для обработки мультимедийного контента (MMX); серии команд SSE (SSE, SSE2, SSE3, SSE4 и SSE5); заимствованные у AMD команды 3DNow!, а также 64-битный набор команд AMD64. Новые команды серьёзно влияют на совместимость процессоров, поэтому разработчикам программного обеспечения приходится ориентироваться на две платформы, более старую и «многочисленную» IA-32 и новую, перспективную x86-64. Проблема совместимости кода — ситуация, когда процессоры различных семейств не могут выполнять один и тот же машинный код. Например, между двумя 32-битными процессорами одного и того же производителя, Intel — Pentium и Pentium 2, может возникнуть несовместимость по причине присущего ограничения (аппаратного отсутствия MMX команд), если на первом будет запущена программа, откомпилированная с учётом имеющихся на Pentium 2 аппаратных возможностей.

Несовместимость устройств и материнских плат

Конкретно взятая материнская плата, особенно персонального компьютера, также вносит свой вклад в несовместимость платформ. На современной материнской плате расположено множество встроенных (англ. integrated, интегрированных в плату) устройств, для которых, в отличие от определённых в дистрибутиве семейства операционных систем Windows NT восьми альтернативных (англ. Hardware abstraction layer, HAL) и мультиплатформенных драйверов для целых классов устройств, нужны специфические драйверы. Поэтому, при установке операционной системы Windows 9x или NT, она посредством установки драйверов специфического оборудования, «привязывается» к конкретной материнской плате. Последующий перенос операционной системы на другую материнскую плату сопряжен со сложностью обеспечения аппаратной совместимости новой аппаратной платформы.

Для решения этой проблемы в корпоративном сегменте, новая техника (материнская плата, периферийные устройства) проходит тщательную подгонку под существующий HAL, либо, если разрабатываемая линейка является революционной и перспективной, под неё создается новый HAL, согласованный со сторонними разработчиками программного и аппаратного обеспечения.

Кроссплатформенное программное обеспечение

Запуск программного обеспечения на более чем одной аппаратной платформе и/или операционной системе является важной задачей, как для разработчиков новой аппаратуры, так и для программистов.

Debian компилирует свои пакеты для GNU/Linux для трёх архитектур процессоров Intel: IA-32 (x86-32), x86-64, IA64. Также официально создаются пакеты для ещё 8 аппаратных платформ. Пакеты, оптимизированные для конкретных процессоров своих платформ пользователи могут создать сами. Debian GNU/Hurd и GNU/kFreeBSD пока поддерживают меньшее количество платформ.

ОС NetBSD портирована на 60 аппаратных платформ (включающих в общей сложности 17 различных процессорных архитектур).

Запуск на различных архитектурах одного и того же прикладного программного обеспечения без необходимости обеспечивать совместимость на уровне ОС реализуется путём стандартизации языков, компиляторов, библиотек и среды исполнения (см., например, POSIX), а также путём перехода на исполнение ПО в виртуальной машине и стандартном окружении, которые реализуются для каждой платформы и гарантируют единообразное исполнение ПО независимо от платформы (см., например, Common Language Infrastructure и JVM).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: