СОВМЕСТИМОСТЬ ОПЕРАЦИОННЫХ СИСТЕМ

Виды сопоставимости

Рассмотрев базы построения и функционирования ОС, можно прийти к выводу о том, что определенные строительные и многофункциональные особенности хоть какой ОС конкретно должны касаться только системных программистов и могут совсем не быть известны рядовому юзеру. В то время как некие идеи (к примеру, объектно-ориентированный подход) находятся в СОВМЕСТИМОСТЬ ОПЕРАЦИОННЫХ СИСТЕМ ведении только разработчиков и только косвенно оказывают влияние на конечного юзера, концепция множественных прикладных сред приносит юзеру давно ожидаемую возможность делать на собственной ОС программки, написанные для других ОС и микропроцессоров. Свойство ОС, характеризующее возможность выполнения в ОС приложений, написанных для других ОС, именуется совместимостью.

Существует два принципно отличающихся вида сопоставимости СОВМЕСТИМОСТЬ ОПЕРАЦИОННЫХ СИСТЕМ, которые не следует путать: сопоставимость на двоичном уровне и сопоставимость на уровне начальных текстов. Приложения обычно хранятся в компьютере в виде исполняемых файлов, содержащих двоичные образы кодов и данных. Двоичная сопоставимость достигается в этом случае, если можно взять исполняемую программку, работающую в среде одной ОС, и запустить ее СОВМЕСТИМОСТЬ ОПЕРАЦИОННЫХ СИСТЕМ на выполнение в среде другой ОС.

Сопоставимость на уровне начальных текстов просит наличия соответственных компиляторов в составе программного обеспечения компьютера, на котором подразумевается использовать данное приложение, также сопоставимости на уровне библиотек и системных вызовов. При всем этом нужна перекомпиляция начальных текстов программ в новые исполняемые модули.

Таким макаром, сопоставимость СОВМЕСТИМОСТЬ ОПЕРАЦИОННЫХ СИСТЕМ на уровне начальных текстов более принципиальное значение имеет для разработчиков приложений, в распоряжении которых находятся эти начальные тексты. Для конечных же юзеров практическое значение имеет только двоичная сопоставимость, потому что исключительно в этом случае они могут без особых способностей и умений использовать программный продукт, поставляемый в виде двоичного исполняемого кода, в разных СОВМЕСТИМОСТЬ ОПЕРАЦИОННЫХ СИСТЕМ операционных средах и на различных компьютерах. Для юзера, купившего в свое время пакет программ для MS-DOS, принципиально, чтоб он мог запускать этот обычный ему пакет без каких-то конфигураций либо ограничений на собственной новейшей машине, работающей, к примеру, под управлением Windows NT. Множественные прикладные среды СОВМЕСТИМОСТЬ ОПЕРАЦИОННЫХ СИСТЕМ как раз и обеспечивают сопоставимость данной ОС с приложениями, написанными для других ОС и микропроцессоров, на двоичном уровне, а не на уровне начальных текстов.

Каким типом сопоставимости – двоичной либо совместимостью начальных текстов обладает ОС, находится в зависимости от многих причин. Самый значимый из их – архитектура микропроцессора, на котором работает СОВМЕСТИМОСТЬ ОПЕРАЦИОННЫХ СИСТЕМ ОС. Исключительно в том случае, если микропроцессор употребляет тот же набор команд (может быть, даже более расширенный, но ни при каких обстоятельствах не уменьшенный) и тот же спектр адресов, двоичная сопоставимость может быть достигнута достаточно легко. Довольно соблюсти несколько последующих критерий:

– вызовы функций API, которые содержит приложение, должны поддерживаться данной СОВМЕСТИМОСТЬ ОПЕРАЦИОННЫХ СИСТЕМ ОС;

– внутренняя структура исполняемого файла приложения должна соответствовать структуре исполняемых файлов данной ОС.

Несравненно труднее добиться двоичной сопоставимости операционным системам, созданным для выполнения на микропроцессорах, имеющих различающиеся архитектуры. Не считая соблюдения приведенных выше критерий, нужно также организовать эмуляцию двоичного кода. Пусть, к примеру, требуется выполнить DOS-программу для IBM СОВМЕСТИМОСТЬ ОПЕРАЦИОННЫХ СИСТЕМ PC-совместимого компьютера на компьютере Macintosh. Компьютер Macintosh построен на базе микропроцессора Motorola 680x0, а компьютер IBM PC – на базе микропроцессора Intel 80x86. Микропроцессор Motorola имеет архитектуру (систему команд, состав регистров и т.п.), лучшую от архитектуры Intel, потому ему совсем непонятен двоичный код DOS-программы, содержащей аннотации этого СОВМЕСТИМОСТЬ ОПЕРАЦИОННЫХ СИСТЕМ микропроцессора. Для того чтоб компьютер Macintosh сумел интерпретировать машинные аннотации, которые ему вначале непонятны, на нем должно быть установлено особое программное обеспечение – эмулятор.

Предназначение эмулятора заключается в том, чтоб поочередно выбирать каждую двоичную аннотацию микропроцессора Intel, программным методом дешифрировать ее, чтоб найти, какие деяния она задает, а потом делать эквивалентную подпрограмму СОВМЕСТИМОСТЬ ОПЕРАЦИОННЫХ СИСТЕМ, написанную в инструкциях микропроцессора Motorola. Так как вследствие строительных различий микропроцессор Motorola не имеет в точности таких же регистров, флагов и внутреннего арифметико-логического устройства, как в микропроцессоре Intel, он должен эмулировать (имитировать) и все эти элементы с внедрением собственных регистров и памяти. Состояние эмулируемых регистров и СОВМЕСТИМОСТЬ ОПЕРАЦИОННЫХ СИСТЕМ флагов после выполнения каждой аннотации должно быть точно таким же, как и в реальном микропроцессоре Intel. Эта не очень непростая, исходя из убеждений программной реализации, задачка просит для собственного выполнения довольно огромного количества ресурсов компьютера. Реально на компьютере Macintosh можно запускать на выполнение только маленькие DOS-приложения, не требующие активного СОВМЕСТИМОСТЬ ОПЕРАЦИОННЫХ СИСТЕМ использования ресурсов компьютера.

Все же, существует несколько другой, еще более действенный выход из описанной ситуации – внедрение так именуемых прикладных программных сред. Одной из составляющих, формирующих программную среду, является набор функций интерфейса прикладного программирования API, которым ОС обеспечивает свои приложения. Для сокращения времени выполнения чужих программ прикладные среды имитируют воззвания к СОВМЕСТИМОСТЬ ОПЕРАЦИОННЫХ СИСТЕМ библиотечным функциям. Эффективность данного подхода определяется тем, что большая часть современных программ работают под управлением графических интерфейсов юзера (GUI) типа Windows, Mac либо UNIX Motif, при всем этом приложения, обычно, самую большую часть времени растрачивают на выполнение неких отлично прогнозируемых действий. Они безпрерывно производят вызовы библиотек GUI для манипулирования окнами СОВМЕСТИМОСТЬ ОПЕРАЦИОННЫХ СИСТЕМ и для других, связанных с GUI, действий. Сейчас в средней программке около 60–80% времени выполнения тратится на выполнение функций GUI и других библиотечных вызовов ОС. Эта самая особенность приложений позволяет прикладным средам восполнить огромные издержки времени, потраченные на покомандное эмулирование программки. Кропотливо спроектированная программная среда имеет в собственном составе библиотеки СОВМЕСТИМОСТЬ ОПЕРАЦИОННЫХ СИСТЕМ, имитирующие внутренние библиотеки GUI, но написанные на “родном” коде данной ОС. Таким макаром достигается существенное ускорение выполнения программ с API другой операционной системы. Для того чтоб отличить таковой подход от более неспешного процесса эмулирования кода по одной команде за один раз, его именуют трансляцией.

К примеру СОВМЕСТИМОСТЬ ОПЕРАЦИОННЫХ СИСТЕМ, для Windows-программы, работающей на Macintosh, при интерпретации команд микропроцессора Intel 80x86 производительность может быть очень низкой. Но когда происходит вызов функции GUI открытия окна, модуль ОС, реализующий прикладную среду Windows, перехватывает этот вызов и направляет его на перекомпилированную для микропроцессора Motorola 680x0 подпрограмму открытия окна. В итоге на схожих участках кода СОВМЕСТИМОСТЬ ОПЕРАЦИОННЫХ СИСТЕМ скорость работы программки может достигнуть скорости работы на собственном “родном” микропроцессоре.

Но следует увидеть, что для того чтоб программка, написанная для одной ОС, могла быть выполнена в рамках другой ОС, недостаточно только обеспечить сопоставимость API. Полностью может случиться так, что концепции, положенные в базу различных ОС, войдут в противоречие СОВМЕСТИМОСТЬ ОПЕРАЦИОННЫХ СИСТЕМ вместе. К примеру, в одной ОС приложению может быть разрешено конкретно управлять устройствами ввода-вывода, а в другой эти деяния являются прерогативой ОС. Совсем естественно, что любая ОС имеет свои собственные механизмы защиты ресурсов, свои методы обработки ошибок и исключительных ситуаций, необыкновенную структуру процесса и схему управления памятью, свою СОВМЕСТИМОСТЬ ОПЕРАЦИОННЫХ СИСТЕМ семантику доступа к файлам и графический пользовательский интерфейс. Все эти отличия определяются специфичностью аппаратной платформы, на которой работает ОС, особенностями ее реализации либо заложены разработчиками системы как присущие данной системе характеристики. Для обеспечения сопоставимости нужно организовать бесконфликтное сосуществование в рамках одной ОС нескольких методов управления ресурсами СОВМЕСТИМОСТЬ ОПЕРАЦИОННЫХ СИСТЕМ компьютера.


sovmeshenij-net-moskovskoe-glavnoe-territorialnoe-upravlenie-banka-rossii.html
sovmestimost-cheloveka-so-sredoj-obitaniya-antropometricheskaya-fiziologicheskaya.html
sovmestimost-i-mnozhestvennie-prikladnie-sredi.html