- Преимущества и недостатки 64-битной архитектуры Windows 7
- Содержание
- Введение
- Преимущества 64-разрядной системы
- Требования к компьютеру
- Windows 32 и 64 бита. Какая между ними разница?
- Что означает 32 и 64 бита
- Как определить какой ОС пользуетесь вы?
- Зачем нам 32 бита?
- 64-битные программы
- Немного про 64 бита в мобильных устройствах
- Урок 1. Что такое 64-битные системы
- Содержание
- Архитектура Intel 64
- 64-битные операционные системы
- Адресное пространство
- Программная модель Win64
Преимущества и недостатки 64-битной архитектуры Windows 7
Содержание
Введение
Еще пару лет назад на большинстве домашних компьютеров работала 32-битная версия Windows, а 64-битный вариант использовали исключительно профессионалы (например, для ресурсоемких программ видеомонтажа). При этом процессоры с 64-разрядной архитектурой выпускаются уже с 2003 года, а двумя годами позже на рынок вышла Windows XP в 64-битном варианте.Однако на большинстве новых компьютеров 64-битные версии Windows начали устанавливать только после появления Windows 7. Какие же преимущества дает 64-битная архитектура? Действительно ли она работает быстрее? С какими проблемами столкнутся пользователи? Об этом читайте далее.
Преимущества 64-разрядной системы
Разрядность может быть 32 или 64 бита, но на экране обе версии Windows 7 выглядят одинаково. Возможности систем также идентичны: в комплекте те же дополнительные программы, например Windows Media Player или Paint. Однако «под капотом» все же есть существенные различия.
- Увеличенная рабочая скорость.С 64-битной версией Windows компьютер может обрабатывать за единицу времени в два раза больше данных, чем с 32-битной. При этом он использует расширенные возможности 64-разрядных процессоров, которые за один такт способны обрабатывать 64 бита данных (8 байт). Поэтому программы, оптимизированные для 64-битных ОС, умеют работать быстрее, чем их аналоги для процессоров, обрабатывающих всего 32 бита (4 байта) за один такт.
- Больше оперативной памяти.32-битные версии Windows могут использовать максимум 4 Гб памяти, причем не вся она доступна программам. Например, 1 Гб занимает сама операционная система, к тому же до 1 Гб (в зависимости от ПК) резервируется для видеопамяти. Так что для самих программ остается не более 2 Гб. Если они «прожорливы», памяти может не хватить.
Для 64-битных версий Windows подобного ограничения нет. Максимальная рабочая память в Windows 7 Home Premium выросла до 16 Гб; версии Professional, Ultimate и Enterprise могут работать даже со 192 Гб. Благодаря большей доступной памяти Windows реже приходится выгружать разделы программ на сравнительно медленный жесткий диск (в файл подкачки), поэтому и компьютер работает быстрее.
Требования к компьютеру
- Процессор.Важнейшим необходимым условием для работы 64-битной операционной системы является процессор с 64-битной архитектурой. Изготовитель процессоров AMD называет эту технологию AMD64, а его конкурент Intel – EM64T.
- Процессоры с 64-битной архитектурой уже стали скорее правилом, чем исключением. Примерно с 2006 года большинство новых компьютеров и ноутбуков оснащается именно ими, хотя многие все еще работают под 32-битной Windows. Узнать, какой именно процессор установлен на вашем ПК, можно с помощью программы CPU-Z (см. рис. внизу).
- Оперативная память. 64-битная Windows имеет смысл лишь в том случае, если у компьютера не меньше 4 Гб оперативной памяти.
- В остальном 64-битные версии ОС не предъявляют особых требований к аппаратной части (например, к HDD или видеокарте) по сравнению с 32-битными.
Если в 64-битной Windows работают 32-битные программы, то в Диспетчере задач они помечаются соответствующим образом (*32). Диспетчер задач можно запустить, нажав комбинацию клавиш Ctrl+Shift+Esc
Windows 32 и 64 бита. Какая между ними разница?
Существует множество систем счета, но, когда речь заходит о компьютерах, то есть только двоичная система – 0 и 1. Это означает, что для 1-битных вычислений есть только два возможных значения, четыре для 2-битных, восемь для 3-битных. Количество значений определяется результатом возведения 2 в степень – 2 в третьей степени или в кубе это восемь, что соответствует 3-битным вычислениям.
Что означает 32 и 64 бита
Продолжая возводить 2 в степень, мы дойдем до 32 и получится, что для 32-битных вычислений существует 4 294 967 296 значений, а для 64-битных количество значений уже составит 18 446 744 073 709 551 616 – это примерно 18,4 квинтиллиона.
Это огромное количество бит и цифры показывают насколько более производительными чипы должны быть, чтобы поддерживать вычисления с бо́льшим количеством бит. Несмотря на кажущуюся простоту разница заметно больше чем в два раза. Вот почему новые чипы и операционные системы так редко переходят к поддержке новых вычислений. Для примера:
- В 1970-х годах чип Intel 8080 поддерживал 8 битные вычисления
- В 1992 году Windows 3.1 стала первой 16 битной, настольной версией Windows
- В 2003 году компания AMD начала поставки первых 64-битных, настольных чипов
- В 2009 году Apple сделала Mac OS X Snow Leopard полностью 64-битной
- В 2014 году был представлен iPhone 5s, первый смартфон с 64-битным чипом Apple A7
В настоящее время вы скорее всего пользуетесь 64-битным чипом с 64-битной операционной системой, что позволяет вам запускать 64-битные приложения. Однако так может быть не всегда. Редакции Windows 7, 8, 8.1 и 10 также существуют и в 32-битных вариантах.
Как определить какой ОС пользуетесь вы?
Если вашему компьютеру менее 10 лет, то ваш процессор практически гарантировано 64-битный, однако у вас может быть установлена 32-битная ОС. К счастью, это довольно легко проверить. В Windows 10 перейдите в Параметры > Система > О системе или просто в окне настроек, в строке поиска введите О компьютере . В разделе характеристики устройства должно быть написано 64-разрядная операционная система, процессор x64.
Зачем нам 32 бита?
Так почему все-таки кто-то устанавливает 32-битные ОС? Основная причина в том, что 32-битные процессоры требуют наличия 32-битной операционной системы. Наличие такого чипа сегодня маловероятно. Intel начала производить 32-битные процессоры семейства 80386 в далеком 1985 году, а продавать 64-битные в 2001 году. Поэтому если ваш компьютер не старше 10 лет, то скорее всего он поддерживает и 64-битные инструкции.
Скорее всего, если у вас довольно старая система, то возможно на ней установлена 32-битная система из-за проблем с быстродействием. А обновлениями к сожалению, нельзя изменить разрядность системы. Это в принципе может быть оправдано – ранние 64-битные процессоры могут не поддерживать всех функций. Для того чтобы определить полностью ли ваш компьютер готов к использованию 64-битной версии, вы можете запустить простую программу 64bit Checker .
На компьютер с 64-битным процессором можно установить 32-битную операционную систему, но это нерациональный подход. 32-битная ОС имеет больше ограничений, к примеру, она не поддерживает работу с объемом ОЗУ свыше 4 Гб. Так, современная Windows 10 64 бита поддерживает максимально 2 терабайта оперативной памяти (128 Гб в Домашней версии).
Теоретическое ограничение ОЗУ в 64-битных системах составляет 16 экзабайт. Это примерно равно 1 миллиону терабайт или 1 миллиарду гигабайт. Однако, мы пока еще очень далеко до оборудования, которое сможет поддерживать такой объем памяти. Сейчас покупка ноутбука с 16 Гб ОЗУ выглядит отличным решением, не так ли?
64-битные системы имеют и множество других улучшений, которые не так заметны невооруженным взглядом: 64-битное адресное пространств, расширенные регистровые ресурсы, 64-битные виртуальные адреса и многое другое. Все эти улучшения важны для инженеров и призваны улучшить работу оборудования.
64-битные программы
Вы могли также заметить, что некоторые программы также поставляются в версиях для 32 и 64 битных систем. Хорошим примером здесь может стать Firefox, который до сих пор выпускается в сборках для обоих редакций. Все это только потому что 32-битные операционные системы до сих пор в ходу. Однако только 64-битные ОС могут запускать как 32, так и 64 битные приложения. В Windows для этого есть встроенная подсистема эмуляции WoW64.
Вы наверняка замечали, что на вашем диске C:\ имеются две папки Program Files – одна для 64-битных программ, а другая для 32-битных с приставкой (x86). Вы можете с легкостью проверить как много 32-битных приложений используете, просто заглянув в соответствующую папку. В настоящее время все больше ОС отказывается от поддержки 32-битных программ. Это уже произошло в MacOS и частично в различных Linux дистрибутивах. Возможно скоро к этому придет и Windows.
Немного про 64 бита в мобильных устройствах
Как мы уже упоминали выше, чип Apple A7 стал первым 64-битным мобильным процессором. В 2015 году Apple заявила, что все программное обеспечение в iOS должно быть 64 разрядным. Начиная с июня 2016 года при открытии 32-битного приложения, в последних версиях iOS появлялось предупреждение о том, что его использование может повлиять на производительность всей системы.
Если вы пользуетесь iPhone 5s или новее, iOS 10 или выше, то вы в любом случае не сможете использовать 32-битные приложения. Это одно из преимуществ закрытой системы Apple – компания может напрямую повлиять на разработчиков и ускорить внедрение технологий.
На Android телефонах все несколько сложнее, потому что не все чипы поддерживали 64-битные вычисления. Если ваша версия Android ниже 5.0 Lollipop, то вы точно используете 32-битную систему. Разрядность операционной системы вы можете посмотреть, к примеру, в AnTuTu Benchmark, в разделе О системе.
В мобильном сегменте, 64-битные ОС – это не просто способ использования большего количества ОЗУ. Переход к x64 системе на самом деле не гарантирует лучшую производительность. Вместо этого есть и другие преимущества – выборка большего количества данных на цикл и улучшенное шифрование. В целом новые 64-битные чипы энергоэффективнее и обладают множеством других не менее важных возможностей.
В конечном итоге 64-битная революция уже свершилась и вам не нужно знать о ней все, чтобы быть ее частью.
Не забудьте подписаться и поставить лайк. Впереди будет еще много крутых статей.
Урок 1. Что такое 64-битные системы
Содержание
На момент написания курса, наиболее известными являются две 64-битные архитектуры микропроцессоров: IA64 и Intel 64.
- IA-64 64-битная микропроцессорная архитектура, разработанная совместно компаниями Intel и Hewlett Packard. Реализована в микропроцессорах Itanium и Itanium 2. Для более подробного знакомства с архитектурой IA-64 можно обратиться к следующим статьям в Wikipedia: «IA-64», «Itanium», «Itanium 2».
- Intel 64 (EM64T / AMD64 / x86-64 / x64) — данная архитектура представляет собой расширение архитектуры x86 с полной обратной совместимостью. Существует множество вариантов названия данной архитектуры, что приводит к путанице, хотя, по сути, все эти названия обозначают одно и тоже: x86-64, AA-64, Hammer Architecture, AMD64, Yamhill Technology, EM64T, IA-32e, Intel 64, x64. Более подробно узнать о том, как появилось так много названий, можно в статье из Wikipedia: «X86-64».
Важно понимать, что IA-64 и Intel 64 — это совершенно разные, несовместимые друг с другом, микропроцессорные архитектуры. В рамках курса мы будем рассматривать только архитектуру Intel 64 (x64 / AMD64) как более популярную среди разработчиков прикладного программного обеспечения для операционной системы Windows. Соответственно, когда будет упоминаться операционная система Windows, то будут иметься в виду ее 64-битные версии для архитектуры Intel 64. Примеры: Windows XP Professional x64 Edition, Windows Vista x64, Windows 7 x64. Для краткости программную модель Intel 64, доступную программисту в 64-битной системе Windows, называют Win64.
Архитектура Intel 64
Рассматриваемая архитектура Intel 64 — простое, но в то же время мощное обратно совместимое расширение устаревшей промышленной архитектуры x86. Она добавляет 64-битное адресное пространство и расширяет регистровые ресурсы для поддержки большей производительности перекомпилированных 64-битных программ. Архитектура обеспечивает поддержку устаревшего 16-битного и 32-битного кода приложений и операционных систем без их модификации или перекомпиляции.
Необходимость 64-битной архитектуры определяется приложениями, которым необходимо большое адресное пространство. В первую очередь это высокопроизводительные серверы, системы управления базами данных, САПР и, конечно, игры. Такие приложения получат существенные преимущества от 64-битного адресного пространства и увеличения количества регистров. Малое количество регистров, доступное в устаревшей x86 архитектуре, ограничивает производительность в вычислительных задачах. Увеличенное количество регистров обеспечивает достаточную производительность для многих приложений.
Подчеркнем основные достоинства архитектуры x86-64:
- 64-битное адресное пространство;
- расширенный набор регистров;
- привычный для разработчиков набор команд;
- возможность запуска старых 32-битных приложений в 64-битной операционной системе;
- возможность использования 32-битных операционных систем.
64-битные операционные системы
Практически все современные операционные системы сейчас имеют версии для архитектуры Intel 64. Например, Microsoft предоставляет Windows XP x64. Крупнейшие разработчики UNIX систем также поставляют 64-битные версии, как, например, Linux Debian 3.5 x86-64. Однако это не означает, что весь код такой системы является полностью 64-битным. Часть кода ОС и многие приложения вполне могут оставаться 32-битными, так как Intel 64 обеспечивает обратную совместимость. Так, 64-битная версия Windows использует специальный режим WoW64 (Windows-on-Windows 64), который транслирует вызовы 32-битных приложений к ресурсам 64-битной операционной системы.
Адресное пространство
Хотя 64-битный процессор теоретически может адресовать 16 экзабайт памяти (2^64), Win64 в настоящий момент поддерживает 16 терабайт (2^44). Этому есть несколько причин. Текущие процессоры могут обеспечивать доступ лишь к 1 терабайту (2^40) физической памяти. Архитектура (но не аппаратная часть) может расширить это пространство до 4 петабайт (2^52). Однако в этом случае необходимо огромное количество памяти для страничных таблиц, отображающих память.
Помимо перечисленных ограничений, объем памяти, который доступен в той или иной версии 64-битной операционной системе Windows, зависит также от коммерческих соображений компании Microsoft. Различные версии Windows имеют различные ограничения, представленные в таблице.
Таблица 1 — Поддерживаемый объем оперативной памяти в различных версиях Windows
Программная модель Win64
Также как и в Win32, размер страниц в Win64 составляет 4Кб. Первые 64Кб адресного пространства никогда не отображаются, то есть наименьший правильный адрес- это 0x10000. В отличие от Win32, системные DLL загружаются выше 4Гб.
Особенность компиляторов для Intel 64 в том, что они могут наиболее эффективно использовать регистры для передачи параметров в функции вместо использования стека. Это позволило разработчикам Win64 архитектуры избавиться от такого понятия, как соглашение о вызовах (calling convention). В Win32 можно использовать разные соглашения: __stdcall, __cdecl, __fastcall и так далее. В Win64 есть только одно соглашение о вызовах. Рассмотрим пример, как передаются в регистрах четыре аргумента типа integer:
- RCX: первый аргумент
- RDX: второй аргумент
- R8: третий аргумент
- R9: четвертый аргумент
Аргументы после первых четырех integer передаются на стеке. Для float аргументов используются XMM0-XMM3 регистры, а также стек.
Разница в соглашениях о вызове приводит к тому, что в одной программе нельзя использовать и 64-битный, и 32-битный код. Другими словами, если приложение скомпилировано для 64-битного режима, то все используемые библиотеки (DLL) также должны быть 64-битными.
Передача параметров через регистры является одним из новшеств, делающих 64-битные программы более производительными, чем 32-битные. Дополнительный выигрыш в производительности можно получить, используя 64-битные типы данных, о чем будет рассказано в соответствующем уроке.
Правообладателем курса «Уроки разработки 64-битных приложений на языке Си/Си++» является ООО «Системы программной верификации». Компания занимается разработкой программного обеспечения в области анализа исходного кода программ. Сайт компании: http://www.viva64.com.
Найдите ошибки в своем C, C++, C# и Java коде
Предлагаем попробовать проверить код вашего проекта с помощью анализатора кода PVS-Studio. Одна найденная в нём ошибка скажет вам о пользе методологии статического анализа кода больше, чем десяток статей.