Что такое разрядная система
Разрядность Windows: x64 или x32 (x86). Как её узнать?
Не многие знают, что в Windows есть такое понятие как разрядность — x32 (x86), x64. В этой короткой заметке мы объясним что это такое на пальцах. Тут нет ничего сложного и знать это нужно, потому что это важный момент.
Разрядность операционной системы – грубо и очень приближённо, это количество мельчайших единиц информации (бит), которое процессор способен обработать за один такт (герц). В современном мире существует два варианта разрядности: 32-бит или 64-бит. 32-битные системы называют также x86: это неверное обозначение, зато распространённое. Других вариантов практически нет – разве что доисторические 16-разрядные программы эпохи MS-DOS и Win98.
Чем отличаются Window 32 и 64 на практике? Не скоростью работы – это точно. Грубоватый пример – на задней оси грузовиков бывают и 2 шины, и 4. Наличие 4х шин не делает фуру быстрее или мощнее – но в некоторых случаях многоколёсная конфигурация удобнее: скажем, при перевозке особо тяжёлого груза. Так и с 64-битной версией Windows: быстрее система не станет, но…
Сзади у грузовика 4 колеса, по 2 шины на каждую сторону. Это как в случае с 64-битной ОС: иногда лучше, но точно не быстрее и не медленнее.
Но старые 32-битные Windows способны работать не более чем с 4 гигабайтами ОЗУ, а это мало для современных программ. Даже если физической памяти в компьютер установлено 8 или 16 Гб, ОС способна работать лишь с 3,5-3,8 гигабайтами из них, а остальной объём висит мёртвым грузом. Существуют нестандартные способы заставить «Винду» видеть более 4 гигов, но работают они через раз, да и то, скорее, для косметического эффекта.
64-битная версия Windows уверенно работает с любым объёмом ОЗУ (до 32ГБ).
Различия коротко и понятно:
Есть и другие различия. Но это уже «железные дела» и нам с вами их знать совсем не обязательно, потому что «Меньше знаешь — крепче спишь»…
Разрядность у программ и драйверов
Разрядность может иметь не только система, но и программы, и драйвера. Большинство программ создавалось именно под 32-битные операционки. 32-разрядные приложения отлично работают и в 64-битной среде. Наоборот – не работает никак: истинно 64-битные проги не способны запуститься в 32-разрядой Windows.
Как узнать какая разрядность у вашей Windows?
Если у вас возник такой вопрос, то скорее всего у вас 32-разрядная система — она более популярна и всегда ставиться по умолчанию. 64-разрядную систему как правило устанавливают осознанно и намеренно.
Понять какая разрядность у вашей ОС очень просто.
Windows 8, 10
Нажмите правой кнопкой на Пуск и выберите пункт «Система«. В появившемся окне будет написана разрядность.
Windows 7
Найдите иконку «Мой компьютер» кликните по ней правой кнопкой и выберите «Свойства«.
Windows XP
Пуск > Мой компьютер > Свойства > вкладка «Общие» > Смотрим в раздел Система: если написано 64-битная версия, или 64-bit Edition, 64-бит. Если этого нет но есть что-то вроде Service Pack 3, то 32-разрядная.
Стоит ли переходить на 64-разрядную систему?
Уже, стоооит! Исключения — это пожалуй офисные компьютеры со старыми процами и 1-3 гагами памяти на борту, где не нужны никакие навороты.
Минус: x64 имеет, пожалуй, единственный минуc, из-за которого можно подумать о переходе — не все производители выпустили драйвера для 64-разрядных систем. Но, на сегодня, абсолютно все популярные программы умеют работать с x64, также как и все современные драйвера. Поэтому в 95% случаев это не будет проблемой.
Плюсов куча: более быстрые программы, улучшенная производительность для многоядерных процессоров, поддержка большого объема оперативной памяти.
Технологии развиваются и если пару лет назад никто толком не знал о 64-разрядных системах, то сегодня технологии стремятся полностью перейти на них и это лишь вопрос времени.
Вердикт? В 90% случаев стоит переходить на x64!
32-разрядная и 64-разрядная версия Windows: вопросы и ответы
Ответы на распространенные вопросы о 32-разрядной и 64-разрядной версиях Windows.
Чтобы выполнить обновление с 32-разрядной до 64-разрядной версии Windows, требуется переформатировать жесткий диск, установить 64-разрядную версию Windows, а затем переустановить все программы, которые были установлены на вашем устройстве.
Windows 10 и Windows 8.1
Справа, в разделе Характеристики устройства, посмотрите, какой Тип системы указан.
Windows 7
Нажмите кнопку » Пуск » , щелкните правой кнопкой мыши компьютери выберите пункт Свойства.
В разделе Система посмотрите, какой тип системы указан.
Чтобы установить 64-разрядную версию Windows, вам понадобится ЦП, который может работать с 64-разрядной версией Windows. Преимущества использования 64-разрядной операционной системы особенно очевидны при работе с большими объемами оперативной памяти (ОЗУ), например 4 ГБ и более. В таких случаях 64-разрядная операционная система обрабатывает большие объемы памяти более эффективно, чем 32-разрядная система. 64-разрядная операционная система работает быстрее при одновременном запуске нескольких программ и частом переключении между ними.
Для работы с 64-разрядной версией Windows на компьютере должен быть установлен процессор с тактовой частотой 64 бит. Чтобы узнать, поддерживает ли ваш процессор 64-разрядный, выполните указанные ниже действия.
Windows 10 и Windows 8.1
Справа, в разделе Характеристики устройства, посмотрите, какой Тип системы указан.
Windows 7
Выберите Отображение и печать подробных сведений о производительности компьютера и системе.
В разделе Система можно узнать тип работающей операционной системы (в разделе Тип системы), а также возможность работы 64-разрядной версии Windows (в разделе 64-разрядная поддержка). (Если на компьютере уже работает 64-разрядная версия Windows, то поле 64-разрядная поддержка не отображается.)
Что такое разрядность системы Windows и Linux?
В процессе знакомства и продолжительного использования компьютера, многие пользователи сталкиваются с вопросом разрядности операционной системы. На сегодня имеется 2 вида разрядности ОС: x32 и x64. В первую очередь, разрядность системы необходима при установке определённой группы программ, которые выпускаются в двух версиях, а также при выборе дистрибутива для установки ОС на компьютер.
Что такое разрядность?
На сегодняшний день существует два вида разрядности: x32 (x86) и x64. Разрядность в x32 бита иногда называют x86, данный вид разрядности присущ к прошлым поколениям процессоров, а x64 – к новым и современным. От разрядности процессора зависит и возможность установки вида разрядности операционной системы.
Основные технические отличия между x32 и x64 для пользователя достаточно значительны и имеют массу нюансов при установке, об их отличиях и особенностях мы расскажем ниже.
Отличия разрядности ОС?
Итак, в первую очередь от разрядности операционной системы зависит скорость её работы. По данным исследований система с x64-битной архитектурой работает быстрее, чем её x32-битный аналог. Сегодня специально для x64 архитектуры написано много отдельных версий программ, тем не менее, всё равно большинство из них, всё-таки работает только в x32 режиме.
У большинства пользователей на сегодняшний день объём оперативной памяти составляет более 4 ГБ. При этом важно отметить, что x32-битные операционные системы работают только с объёмом ОЗУ до 4 ГБ. Иными словами, если у вас имеется от 4 ГБ ОЗУ, то x32-битная ОС будет работать только с 3 ГБ, остальной объём оперативной памяти будет попросту не задействован. ОС с x64 будет видеть весь возможный объём ОЗУ, главное чтобы его поддерживала ваша материнская плата. Установить операционную систему с x64 на компьютер с ОЗУ менее 4 ГБ – нет смысла.
Визуальных отличий ОС x32 от x64 системы – нет. Они абсолютно идентичны визуально. Единственное явное их отличие – это наличие двух папок «Program Files» на системном диске C: в одну устанавливаются приложения x64, в другой (с пометкой x86) – устанавливаются x32 приложения
Как выбрать разрядность ОС?
Для того чтобы выбрать ОС нужно знать битность своего процессора и объём ОЗУ. Если у вас x64-битный процессор и объём оперативной памяти составляет более 4 ГБ (в идеале от 6 ГБ), то однозначно стоит устанавливать x64-битную систему.
Отдельно рассмотрим случаи с компьютерами, объём ОЗУ которых составляет ровно 4 ГБ. Дело в том, что многие в данном случае устанавливают x64-битную систему, чтобы ощутить все так называемые «преимущества» данной разрядности, а также, чтобы не терять полгигабайта памяти. Но дело в том, что мы бы в свою очередь настоятельно рекомендовали вам отдать предпочтение ОС с x32-битностью. Дело в том, что x64 система охватывает незадействованные полмегабайта x32 системы, тем не менее, для своей работы она берёт больший этого объём, что делает такую установку нецелесообразной.
Когда объём ОЗУ не превышает 4 ГБ, а также процессор работает в x32 режиме, то ничего не остаётся, кроме как ставить x32 ОС.
Как узнать разрядность ОС?
Давайте теперь постараемся узнать, какая разрядность у вашей установленной системы.
Самый точный ответ на вопрос разрядности системы вы сможете получить в разделе сведений. Для этого вызовите боковое меню в Windows 8, выберете там «Параметры» и затем «Сведения компьютера».
Для того чтобы посмотреть разрядность операционной системы, в Windows достаточно открыть диск C, и там посмотреть, сколько папок «Program Files», если их 2 – у вас x64 ОС, если же одна – то система x32.
Как проверить разрядность системы в Linux?
Любые вопросы, связанные с разрядностью операционной системы, вы можете задать нам в комментариях.
Какой Windows выбрать 32 или 64 бит?
Многие на нашем сайте задаются вопросом, кукую битность (разрядность) Windows установить на компьютер, 32 или 64 бита? В этой статье мы проясним ситуацию с выбором 32 или 64 битных систем.
Для начала давайте разберемся что что такое битность (разрядность) архитектуры.
Термины 32-разрядный и 64-разрядный относятся к способу обработки информации процессором компьютера ( ЦП ). 64-разрядная версия Windows обрабатывает большие объемы оперативной памяти (RAM) эффективнее, чем 32-разрядная система. В википедии есть 2 страницы о 32 (x86) и 64 битной архитектуре:
Название образовано от двух цифр, которыми заканчивались названия процессоров Intel ранних моделей — 8086, 80186, 80286 (i286), 80386 (i386), 80486 (i486). За время своего существования набор команд постоянно расширялся, сохраняя совместимость с предыдущими поколениями.
Это расширение архитектуры x86 с почти полной обратной совместимостью. Корпорации Microsoft и Oracle используют для обозначения этого набора инструкций термин «x64», однако каталог с файлами для архитектуры в дистрибутивах Microsoft Windows называется «amd64» (ср. «i386» для архитектуры x86).
Набор команд x86-64 в настоящее время поддерживается:
Да все это тяжело для понимания. Объясню своими словами 64 битная архитектура ОС это усовершенствованная 32 (86) битная архитектура. Она имеет более новые наборы команд для вычислений, а также может работать с большими объемами оперативной памяти. Если брать семейство ОС Windows, то 32 битная ОС фактически может обработать только 3,2 гигабайта оперативной памяти, а 64 теоретически до 4 терабайтов. О чем это говорит нам?
Что же выбрать 32 или 64?
О том что целесообразно ставить ОС исходя из количества оперативной памяти. Например если у вас стоит 3ГБ оперативки или меньше, вам лучше поставить 32 битную систему, а если у вас более 3ГБ, лучше 64 битку. Но не стоит забывать о том какой у вас процессор. В нашем сервисе мы давно заметили что если процессор имеет низкую частоту (от 1 до 2,4ГГц), то на 64 битной ОС компьютер работает медленно, даже если на нем установлено 4 и более ГБ оперативной памяти. По мнению нашего сервиса на такие компьютеры лучше ставить 32 битные системы и не более 4ГБ оперативной памяти. Кроме того крупные производители ноутбуков с низко частотными процессорами тоже ставят 32 битные системы с завода, даже при наличии 4ГБ памяти. Для установки 64-разрядной версии Windows требуется процессор, поддерживающий запуск 64-разрядной ОС Windows. Преимущества использования 64-разрядной операционной системы особенно очевидны при работе с большими объемами оперативной памяти (ОЗУ), например 4 ГБ и более. В таких случаях 64-разрядная операционная система обрабатывает большие объемы памяти более эффективно, чем 32-разрядная система. 64-разрядная операционная система работает быстрее при одновременном запуске нескольких программ и частом переключении между ними. В любом случае что ставить, выбирать вам, а мы ответим на интересующие вас вопросы ниже.
Как определить, установлена на компьютере 32-разрядная или 64-разрядная версия Windows?
Чтобы в ОС Windows или определить, какая версия Windows используется на компьютере (32-разрядная или 64-разрядная), выполните следующие действия.
Откройте компонент «Система». Для этого нажмите кнопку Пуск, щелкните правой кнопкой мыши Компьютер и выберите пункт Свойства. В Windows 8 откройте панель управления и перейдите в раздел система.
В разделе Система можно просмотреть тип системы.
Если компьютер работает под управлением Windows XP, выполните следующие действия.
Нажмите кнопку Пуск.
Правой кнопкой мыши щелкните Мой компьютер и выберите пункт Свойства.
Если в появившемся окне отсутствует надпись «x64 Edition», компьютер работает под управлением 32-разрядной версии Windows XP.
Если в разделе Система указано «x64 Edition», компьютер работает под управлением 64-разрядной версии Windows XP.
Как определить возможность запуска на компьютере 64-разрядной версии Windows?
Чтобы компьютер мог работать под управлением 64-разрядной версии Windows, у него должен быть 64-разрядный процессор. Чтобы узнать, поддерживает ли процессор 64-разрядные вычисления в Windows, выполните следующие действия.
Откройте раздел «Счетчики и средства производительности». Для этого нажмите кнопку Пуск и выберите компонент Панель управления (в 8 сразу идем в панель управления). В поле поиска введите Счетчики и средства производительности, а затем в списке результатов выберите пункт Счетчики и средства производительности.
Выполните одно из следующих действий.
В Windows выберите параметр Отображение и печать подробных сведений о производительности компьютера и системе.
В разделе Система можно увидеть, какой тип операционной системы используется (в разделе Тип системы) и есть ли возможность применять 64-разрядную версию Windows (в разделе 64-разрядная поддержка). (Если компьютер уже работает под управлением 64-разрядной версии Windows, раздел 64-разрядная поддержка не отображается).
Чтобы определить, поддерживает ли компьютер, работающий под управлением Windows XP, запуск 64-разрядной версии Windows, выполните следующие действия.
Нажмите кнопку Пуск.
Правой кнопкой мыши щелкните Мой компьютер и выберите пункт Свойства.
Если раздел Система содержит надпись «x64 Edition», процессор поддерживает запуск 64-разрядной версии Windows.
Можно ли обновить 32-разрядную версию Windows до 64-разрядной версии Windows или перейти с 64-разрядной версии Windows на 32-разрядную версию Windows?
Если требуется перейти с 32-разрядной версии Windows на 64-разрядную версию Windows или наоборот, следует создать резервную копию файлов и выбрать полную установку Windows. Затем необходимо восстановить файлы и переустановить программы.
Примечания
Чтобы установить 64-разрядную версию Windows на компьютере, работающем под управлением 32-разрядной версии Windows, потребуется загрузить компьютер с помощью установочного диска или файлов 64-разрядной версии Windows.
Средство переноса данных Windows не перемещает файлы из 64-разрядной версии Windows в 32-разрядную версию Windows. При использовании 64-разрядной версии Windows XP потребуется вручную перенести файлы на внешний носитель.
Можно ли запускать 32-разрядные программы и драйвера на 64-разрядном компьютере?
Большинство программ, созданных для 32-разрядных версий Windows, будут работать и в 64-разрядных версиях Windows. Исключениями являются некоторые антивирусы.
Драйверы устройств, предназначенные для 32-разрядных версий Windows, не работают на компьютерах под управлением 64-разрядных версий Windows. Если попытаться установить принтер или другое устройство с 32-разрядным драйвером, оно не будет работать правильно в 64-разрядной версии Windows.
Можно ли запускать 64-разрядные программы и драйвера на 32-разрядном компьютере?
Если программа специально создана для работы в 64-разрядной версии Windows, она не будет запускаться в 32-разрядной версии Windows. (Однако большинство программ, предназначенных для 32-разрядных версий Windows, работают и в 64-разрядных версиях Windows.)
Драйверы устройств, предназначенные для 64-разрядных версий Windows, не работают на компьютерах под управлением 32-разрядных версий Windows.
Нужны ли 64-разрядные драйверы для устройств при работе в 64-разрядной версии Windows?
Да. Для работы в 64-разрядной версии Windows всем устройствам нужны 64-разрядные драйверы. Драйверы, разработанные для 32-разрядных версий Windows, не работают на компьютерах под управлением 64-разрядной версии Windows.
Какие недостатки есть у 64 битной Windows?
Ну вот и все что мы хотели рассказать в этой статье, надеемся вы сделаете правильный выбор! Если вам нужны хорошие компьютерные советы жмите на ссылку и узнавайте больше о вашем компьютере.
64 бита
Статья раскрывает смысл термина «64 бита». В статье кратко рассмотрена история развития 64-битных систем, описаны наиболее распространенные на данный момент 64-битные процессоры архитектуры Intel 64 и 64-битная операционная система Windows.
Введение
В рамках архитектуры вычислительной техники под термином «64-битный» понимают 64-битные целые и другие типы данных, имеющих размер 64 бита. Под «64-битными» системами могут пониматься 64-битные архитектуры микропроцессоров (например, EM64T, IA-64) или 64-битные операционные системы (например, Windows XP Professional x64 Edition). Можно говорить о компиляторах, генерирующих 64-битный программный код.
В данной статье будут рассмотрены различные моменты, связанные с 64-битными технологиями. Статья предназначена для программистов, желающих начать разрабатывать 64-битные программы, и ориентирована на Windows-разработчиков, поскольку для них вопрос знакомства с 64-битными системами наиболее актуален.
История 64-битных систем
64-битность только недавно вошла в жизнь большинства пользователей и прикладных программистов. Однако работа с 64-битными данными имеет уже длинную историю.
1961: IBM выпускает суперкомпьютер IBM 7030 Stretch, в котором используются 64-битные слова данных, 32-битные или 64-битные машинные инструкции.
1974: Control Data Corporation запускает векторный суперкомпьютер CDC Star-100, в котором используется архитектура 64-битных слов (предыдущие системы CDC имели 60-битную архитектуру).
1976: Cray Research выпускает первый суперкомпьютер Cray-1, в котором реализована архитектура 64-битных слов и который послужит основой для всех последующих векторных суперкомпьютеров Cray.
1985: Cray выпускает UNICOS — первую 64-битную реализацию операционной системы Unix.
1991: MIPS Technologies производит первый 64-битный процессор, R4000, в котором реализована третья модификация разработанной в их компании архитектуры MIPS. Этот процессор используется в графических рабочих станциях SGI начиная с модели IRIS Crimson. Kendall Square Research выпускает свой первый суперкомпьютер KSR1, построенный на основе их собственной запатентованной 64-битной архитектуры RISC под операционной системой OSF/1.
1992: Digital Equipment Corporation (DEC) представляет полностью 64-битную архитектуру Alpha — детище проекта PRISM.
1993: DEC выпускает 64-битную Unix-подобную операционную систему DEC OSF/1 AXP (позже переименованную в Tru64 UNIX) для своих систем, построенных на архитектуре Alpha.
1994: Intel объявляет о своих планах по разработке 64-битной архитектуры IA-64 (совместно с компанией Hewlett-Packard) — преемника их 32-битных процессоров IA-32. Дата выпуска назначена на 1998-1999 годы. SGI выпускает IRIX 6.0 с 64-битной поддержкой чипсета R8000.
1995: Sun запускает 64-битный процессор семейства SPARC UltraSPARC. HAL Computer Systems, подчиненная Fujitsu, запускает рабочие станции, созданные на основе 64-битного процессора SPARC64 первого поколения, независимо разработанного компанией HAL. IBM выпускает микропроцессоры A10 и A30, а также 64-битные процессоры PowerPC AS. IBM также выпускает 64-битное обновление для системы AS/400, способное преобразовывать операционную систему, базы данных и приложения.
1996: Nintendo представляет игровую консоль Nintendo 64, созданную на основе более дешевого варианта MIPS R4000. HP выпускает реализацию 64-битной 2.0 версии собственной архитектуры PA-RISC PA-8000.
1997: IBM запускает линейку RS64 64-битных процессоров PowerPC/PowerPC AS.
1998: Sun выпускает Solaris 7 с полной 64-битной поддержкой UltraSPARC.
1999: Intel выпускает набор команд для архитектуры IA-64. AMD публично объявляет о своем наборе 64-битных расширений для IA-32, который был назван x86-64 (позже переименован в AMD64).
2000: IBM выпускает свой первый 64-битный мэйнфрейм zSeries z900, совместимый с ESA/390, а также новую операционную систему z/OS.
2001: Intel наконец запускает линейку 64-битных процессоров, которые теперь получают название Itanium и рассчитаны на высокопроизводительные серверы. Проект не соответствует ожиданиям из-за многочисленных задержек при выпуске IA-64 на рынок. NetBSD становится первой операционной системой, которая запускается на процессоре Intel Itanium после его выхода. Кроме того, Microsoft также выпускает Windows XP 64-Bit Edition для архитектуры IA-64 семейства Itanium, хотя в ней сохраняется возможность запускать 32-битные приложения при помощи прослойки WoW64.
2003: AMD представляет линейки процессоров Opteron и Athlon 64, созданные на основе архитектуры AMD64, которая является первой 64-битной процессорной архитектурой, основанной на архитектуре x86. Apple начинает использовать 64-битный процессор «G5» PowerPC 970 производства IBM. Intel утверждает, что процессорные чипы семейства Itanium останутся единственными 64-битными процессорами, разработанными в их компании.
2004: В ответ на коммерческий успех AMD, Intel признается, что они разрабатывали клон расширений AMD64, которому дали название IA-32e (позже переименован в EM64T, и затем еще раз в Intel 64). Intel также выпускает обновленные версии семейств процессоров Xeon и Pentium 4 с поддержкой новых команд.
2004: VIA Technologies представляет свой 64-битный процессор Isaiah.
2005: 31 января Sun выпускает Solaris 10 с поддержкой процессоров AMD64 / Intel 64. 30 апреля Microsoft выпускает Windows XP Professional x64 Edition для процессоров AMD64 / Intel 64.
2006: Sony, IBM и Toshiba начинают выпуск 64-битного процессора Cell для PlayStation 3, серверов, рабочих станций и других устройств. Microsoft выпускает Windows Vista с включенной 64-битной версией для процессоров AMD64 / Intel 64, которая поддерживает 32-битную совместимость. Все Windows-приложения и компоненты являются 64-битными, однако многие из них имеют 32-битные версии, включенные в систему в виде плагинов в целях совместимости.
2009: Как и Windows Vista, Windows 7 компании Microsoft включает полную 64-битную версию для процессоров AMD64 / Intel 64, и на большинство новых компьютеров по умолчанию устанавливается 64-битная версия. Выходит операционная система компании Apple Mac OS X 10.6, «Snow Leopard» которая имеет 64-битное ядро и предназначена для процессоров AMD64 / Intel 64, однако по умолчанию эта система устанавливается только на некоторые из последних моделей компьютеров компании Apple. Большинство приложений, поставляемых с Mac OS X 10.6, теперь также являются 64-битными.
Более подробно с историей развития 64-битных систем можно познакомиться в статье Джона Машей «Долгая дорога к 64 битам» [1] и в энциклопедической статье в Wikipedia «64-bit» [2].
Прикладное программирование и 64-битные системы
Архитектура Intel 64 (AMD64)
Рассматриваемая архитектура Intel 64 простое, но в то же время мощное обратно совместимое расширение устаревшей промышленной архитектуры x86. Она добавляет 64-битное адресное пространство и расширяет регистровые ресурсы для поддержки большей производительности перекомпилированных 64-битных программ. Архитектура обеспечивает поддержку устаревшего 16-битного и 32-битного кода приложений и операционных систем без их модификации или перекомпиляции.
Отличительной особенностью Intel 64 является поддержка шестнадцати 64-битных регистров общего назначения (в x86-32 имелось восемь 32-битных регистров). Поддерживаются 64-битные арифметические и логические операции над целыми числами. Поддерживаются 64-битные виртуальные адреса. Для адресации новых регистров для команд введены «префиксы расширения регистра», для которых был выбран диапазон кодов 40h-4Fh, использующихся для команд INC и DEC в 32- и 16-битных режимах. Команды INC и DEC в 64-битном режиме должны кодироваться в более общей, двухбайтовой форме.
16 целочисленных 64-битных регистра общего назначения (RAX, RBX, RCX, RDX, RBP, RSI, RDI, RSP, R8 — R15),
8 80-битных регистров с плавающей точкой (ST0 — ST7),
8 64-битных регистров Multimedia Extensions (MM0 — MM7, имеют общее пространство с регистрами ST0 — ST7),
16 128-битных регистров SSE (XMM0 — XMM15),
64-битный указатель RIP и 64-битный регистр флагов RFLAGS.
Необходимость 64-битной архитектуры определяется приложениями, которым необходимо большое адресное пространство. В первую очередь это высокопроизводительные серверы, системы управления базами данных, САПР и, конечно, игры. Такие приложения получат существенные преимущества от 64-битного адресного пространства и увеличения количества регистров. Малое количество регистров, доступное в устаревшей x86 архитектуре, ограничивает производительность в вычислительных задачах. Увеличенное количество регистров обеспечивает достаточную производительность для многих приложений.
64-битные операционные системы
Практически все современные операционные системы сейчас имеют версии для архитектуры Intel 64. Например, Microsoft предоставляет Windows XP x64. Крупнейшие разработчики UNIX систем также поставляют 64-битные версии, как например Linux Debian 3.5 x86-64. Однако это не означает, что весь код такой системы является полностью 64-битным. Часть кода ОС и многие приложения вполне могут оставаться 32-битными, так как Intel 64 обеспечивает обратную совместимость с 32-битными приложениями. Например, 64-битная версия Windows использует специальный режим WoW64 (Windows-on-Windows 64), который транслирует вызовы 32-битных приложений к ресурсам 64-битной операционной системы.
Далее в статье мы будем рассматривать только 64-битные операционные системы семейства Windows.
WoW64
Windows-on-Windows 64-bit (WoW64) — подсистема операционной системы Windows, позволяющая запускать 32-битные приложения на всех 64-битных версиях Windows.
WoW64 на архитектуре Intel 64 (AMD64 / x64) не требует эмуляции инструкций. Здесь подсистема WoW64 эмулирует только 32-битное окружение, за счет дополнительной прослойки между 32-битным приложением и 64-битным Windows API. Где-то эта прослойка тонкая, где-то не очень. Для средней программы потери в производительности из-за наличия такой прослойки составят около 2%. Для некоторых программ это значение может быть больше. Два процента это немного, но следует учитывать, что 32-битные приложения работают немного медленнее под управлением 64-битной операционной системы Windows, чем в 32-битной среде.
Компиляция 64-битного кода не только исключает необходимость в WoW64, но и дает дополнительный прирост производительности. Это связано с архитектурными изменениями в микропроцессоре, такими как увеличение количества регистров общего назначения. Для средней программы можно ожидать в пределах 5-15% прироста производительности от простой перекомпиляции.
Из-за наличия прослойки WoW64 32-битные программы работают менее эффективно в 64-битной среде, чем в 32-битной. Но все-таки, простые 32-битные приложения могут получить одно преимущество от их запуска в 64-битной среде. Вы, наверное, знаете, что программа, собранная с ключом /LARGEADDRESSAWARE:YES может выделять до 3-х гигабайт памяти, если 32-битная операционная система Windows запущена с ключом /3gb. Так вот, эта же 32-битная программа, запущенная на 64-битной системе, может выделить почти 4 GB памяти (на практике около 3.5 GB).
Подсистема WoW64 изолирует 32-разрядные программы от 64-разрядных путем перенаправления обращений к файлам и реестру. Это предотвращает случайный доступ 32-битных программ к данным 64-битных приложений. Например, 32-битное приложение, которое запускает файл DLL из каталога %systemroot%\System32, может случайно обратиться к 64-разрядному файлу DLL, который несовместим с 32-битной программой. Во избежание этого подсистема WoW64 перенаправляет доступ из папки %systemroot%\System32 в папку %systemroot%\SysWOW64. Это перенаправление позволяет предотвратить ошибки совместимости, поскольку при этом требуется файл DLL, созданный специально для работы с 32-разрядными приложениями.
Подробнее с механизмами перенаправления файловой системы и реестра можно познакомиться в разделе MSDN «Running 32-bit Applications».
Программная модель Win64
Также как и в Win32 размер страниц в Win64 составляет 4Кб. Первые 64Кб адресного пространства никогда не отображаются, то есть наименьший правильный адрес это 0x10000. В отличие от Win32, системные DLL загружаются выше 4Гб.
Разница в соглашениях о вызове приводит к тому, что в одной программе нельзя использовать и 64-битный, и 32-битный код. Другими словами, если приложение скомпилировано для 64-битного режима, то все используемые библиотеки (DLL) также должны быть 64-битными.
Передача параметров через регистры является одним из новшеств, делающих 64-битные программы более производительными, чем 32-битные. Дополнительный выигрыш в производительности можно получить, используя 64-битные типы данных.
Адресное пространство
Хотя 64-битный процессор теоретически может адресовать 16 экзабайт памяти (2^64), Win64 в настоящий момент поддерживает 16 терабайт (2^44). Этому есть несколько причин. Текущие процессоры могут обеспечивать доступ лишь к 1 терабайту (2^40) физической памяти. Архитектура (но не аппаратная часть) может расширить это пространство до 4 петабайт (2^52). Однако в этом случае необходимо огромное количество памяти для страничных таблиц, отображающих память.
Помимо перечисленных ограничений, объем памяти, который доступен в той или иной версии 64-битной операционной системе Windows зависит также от коммерческих соображений компании Microsoft. Ниже приведена информация по объему памяти, поддерживаемой различными версиями 64-биными версиями Windows:
Windows XP Professional — 128 Gbyte;
Windows Server 2003, Standard — 32 Gbyte;
Windows Server 2003, Enterprise — 1 Tbyte;
Windows Server 2003, Datacenter — 1 Tbyte;
Windows Server 2008, Datacenter — 2 Tbyte;
Windows Server 2008, Enterprise — 2 Tbyte;
Windows Server 2008, Standard — 32 Gbyte;
Windows Server 2008, Web Server — 32 Gbyte;
Vista Home Basic — 8 Gbyte;
Vista Home Premium — 16 Gbyte;
Vista Business — 128 Gbyte;
Vista Enterprise — 128 Gbyte;
Vista Ultimate — 128 Gbyte;
Windows 7 Home Basic — 8 Gbyte;
Windows 7 Home Premium — 16 Gbyte;
Windows 7 Professional — 192 Gbyte;
Windows 7 Enterprise — 192 Gbyte;
Windows 7 Ultimate — 192 Gbyte;
Разработка 64-битных приложений
Наиболее полно вопросы разработки 64-битных приложений рассмотрены в курсе «Уроки разработки 64-битных приложений на языке Си/Си++». Содержание:
Также рекомендую раздел с обзорами статей по тематике связанной с 64-битнми технологиями.