Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 05.docx
Скачиваний:
26
Добавлен:
26.09.2019
Размер:
595.17 Кб
Скачать

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

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

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

Корпорация 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 аппаратных возможностей.

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

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

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

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

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

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

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

Microsoft разрабатывает специальные ветки своей операционной системы MicrosoftWindows: WindowsCE и WindowsEmbedded.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]