Почему приложения OS X зависят от процессора, а программы Windows — нет?

Почему приложения OS X зависят от процессора, а программы Windows — нет?

Приложения OS X необходимо создавать как для PowerPC, так и для Intel, если требуется поддержка обоих процессоров.

Однако я не думаю, что это касается программ Windows. Почему?

решение1

На потребительских системах Windows была доступна только в версии для процессоров x86 более десятилетия (Windows 95 и Windows 2000 были доступны только для систем x86, не уверен насчет более ранних версий). Но есть редакции Windows, которые работают наИтаниумархитектура, и Microsoft объявила о поддержке процессоров ARM в Windows 8.

Однако все настольные системы Windows имеют одинаковую базовую архитектуру процессора x86.


Mac OS X до начала 2006 года была эксклюзивной для процессоров PowerPC, которые использовались Apple в ее системах Mac. Затем Apple постепенно сменила свою линейку компьютеров на процессоры Intel x86 в течение следующего года. Mac OS X 10.4 (выпущенная для PowerPC в начале 2005 года, для Intel в начале 2006 года) была первым релизом, доступным как в вариантах PowerPC, так и в вариантах Intel/x86.

Они обеспечили уровень совместимости,Розеттачто позволяло выполнять (старые) программы PowerPC на (новых) процессорах Intel, и многие (более простые) программы могли быть доступны для обоих путем перекомпиляции с использованием инструментов разработчика Apple. Другие, созданные с использованием других инструментов разработчика (например, Code Warrior), или некоторые более крупные программные продукты, такие как Adobe, потребовали некоторое время, чтобы стать изначально доступными для систем Intel.

Mac OS X 10.6 (конец 2009 г.) была первой версией, в которой прекратилась поддержка PowerPC. Mac OS X 10.7 (середина 2011 г.) прекратила поддержку Rosetta, а следовательно, и программ PowerPC.

Этот сдвиг в архитектуре компьютеров Mac также стал причиной того, что теперь стало возможным запускать Windows на компьютерах Mac как напрямую, так и с использованием виртуализации.


В то время как Windows в основном работала только на системах x86, в 2006 году в линейке Mac произошли серьезные изменения. Поскольку это произошло сравнительно недавно, многие разработчики программного обеспечения продолжают поддерживать эти системы, в то время как Apple постепенно прекратила поддержку как оборудования, так и программ, написанных для него.

решение2

Это связано с разной архитектурой, то же самое было бы и с окнами, если бы они сделали что-то похожее.

На самом деле архитектура POWER от IBM все еще существует и используется во многих серверах, которым снова требуются скомпилированные ОС, отличные от тех, что предназначены для архитектуры Intel x86(-64).

решение3

Windows необходимо учитывать целевую архитектуру. Посмотрите на параметры в Visual Studio — в настоящее время Windows требуются разные сборки для 64- и 32-битных архитектур. Также для ARM (скоро). А в старые времена Windows 95 приходилось учитывать различия между 16- и 32-битными системами. Еще раньше, в 80-х, Windows 3 приходилось работать с системами 8088. Все сводится к тому, что машинный код, который выдается в исполняемый файл, должен быть разным для разных наборов инструкций.

Обе линии также имеют опции для ориентации на более старые версии своих ОС. Все меняется, компиляторы должны меняться вместе с ними, и мы все хотим поддержки старых версий.

Связанный контент