Как пересобрать *nix-приложение для поддержки x86-64
Большинство используемых в обычной жизни вариантов Linux ориентированы на работу с бинарными пакетами, и пересобирать программы в них приходится нечасто. Если вы хотите насладиться преимуществами 64-битной архитектуры, убедитесь, что заветные цифры «64» содержатся в номере версии вашего «дистро» - большинство крупных сборщиков поставляют специальные билды для этих целей. Впрочем, использовать или не использовать «продвинутые» дистрибутивы - вопрос открытый: Linux состоит из множества пакетов, и может статься, что нужная программа не собрана под 64-битную архитектуру в вашем репозитарии. Тогда можно попробовать собрать ее из исходников самостоятельно. Скорее всего, архитектура должна определиться автоматически (например, на этапе выполнения скрипта configure или при подготовке пакета из src.rpm-файла), и все нужные опции компилятора включатся без вашего участия. В особо запущенных случаях потребуется ручная правка Makefile. Здесь надо действовать по ситуации - но чаще всего будет достаточно добавить ключ -march ‹имя-архитектуры› при запуске gcc или g++[Например, -march k8 для сборки под AMD64 (полный перечень опций можно найти в документации gcс на www.gcc.gnu.org/onlinedocs/gcc/i386-and-x86_002d64-Options.html
Microsoft Windows XP x64-bit edition
Говоря о технологии x86-64, невозможно не упомянуть, пожалуй, главную операционную систему, с которой пользователям этой технологии придется работать, - Microsoft Windows.
Можно долго рассуждать на тему, насколько интересна и востребована сегодня технология x86-64, но раз ее так или иначе поддерживают почти все новые процессоры, то у пользователей возникает вопрос иного рода: как 64-битность использовать на практике. Впрочем, очевидно, что для начала потребуется установить на компьютер 64-битную операционную систему.
Windows XP Professional x64 edition
А поскольку для среднестатистического юзера понятия ОС и Microsoft Windows, можно сказать, равнозначны, то выбор у него не очень богатый: либо «более пользовательская» Windows XP Professional x64 edition, либо серверные разновидности Windows 2003 Server x64 edition. На самом деле выбор еще уже, поскольку, вопреки своему названию, Windows XP Professional x64 edition основывается отнюдь не на коде оригинальной Windows XP, а использует то же самое «ядро» от Windows 2003 Server. Так что какой бы вариант вы не предпочли, «достанется» вам примерно одно и то же, просто с разными настройками системы по умолчанию. «Обновлять» систему с 32 бит до 64 невозможно - в любом случае потребуется ее полная переустановка. Список доступных языков пока тоже невелик: либо английский, либо японский, либо пакет MUI с европейскими языками (в которые русский язык не включен); так что неопытному пользователю, боюсь, рекомендовать Windows x64 edition не приходится. Впрочем, еще год назад у Microsoft не было даже этого, так что даже такой скудный ассортимент - значительный шаг вперед.
Итак, все 64-битные варианты операционных систем от Microsoft основываются на ядре Windows 2003 Server и уже включают в себя первый сервис-пак к Windows 2003[Кстати, видимо, желание включить SP1 в состав x64 edition и вызвало длительную задержку с релизом Windows x64 edition], интерфейс DirectX 9.0c и медиаплейер Windows Media Player десятой версии. Единственное «видимое» отличие для пользователя этих «осей» от 2003 Server SP1 - это возможность запуска 64-битных приложений. Поддерживается как AMD64, так и EM64T, со всей сопутствующей последней технологии спецификой. В остальном чисто внешне новые операционные системы, если не считать красивых логотипов с подписями «x64 edition», ничем не отличаются от своих прародителей. Интерфейс, приемы работы в ОС, системные настройки - все остается прежним.
А вот «невидимых» программных изменений гораздо больше. К примеру, переход на 64-битную архитектуру и к 64-битным указателям должен был автоматически привести к тому, что все структуры Windows API, в которых эти указатели встречаются, разом устарели и потребовали замены. Проще говоря, переход к 64-битным вычислениям автоматически привел и к смене Windows API на новую, «64-битную» версию. Но поскольку подобного рода смена API не позволила бы запускать в новых «Окнах» 32-битные приложения (даже несмотря на поддержку такой возможности процессором), то «старый» API в ней тоже сохранили, реализовав его через специальный «переходник», конвертирующий данные из «старого» формата в новый и наоборот. Называется «переходник» WOW64 (Windows On Windows x64) и может сильно тормозить работу 32-битных приложений под 64-битной Windows. Вообще, ситуация, в которой 64-битные и 32-битные приложения вынуждены как-то налаживать взаимодействие друг с другом, уже привела к довольно забавным результатам. К примеру, в Windows x64 edition - целых два Internet Explorer’а: «новый» быстродействующий 64-битный и «старый» 32-битный, не столь проворный, зато совместимый со всевозможными 32-разрядными плагинами для Internet Explorer’а. Мелочь, конечно, но именно из таких мелочей складывается…
Читать дальше