Что такое 86 и 64 разрядная система?

13 ответов на вопрос “Что такое 86 и 64 разрядная система?”

  1. riptile12 Ответить

    Но старые 32-битные Windows способны работать не более чем с 4 гигабайтами ОЗУ, а это мало для современных программ. Даже если физической памяти в компьютер установлено 8 или 16 Гб, ОС способна работать лишь с 3,5-3,8 гигабайтами из них, а остальной объём висит мёртвым грузом. Существуют нестандартные способы заставить «Винду» видеть более 4 гигов, но работают они через раз, да и то, скорее, для косметического эффекта.
    64-битная версия Windows уверенно работает с любым объёмом ОЗУ (до 32ГБ).
    Различия коротко и понятно:
    x64 — работает с оперативной памятью до 32ГБ. Может запускать 32 и 64-битные программы.
    x32 — работает с оперативной памятью до 4ГБ. Может запускать только 32-битные программы для которых доступно 3 ГБ оперативки.
    Есть и другие различия. Но это уже «железные дела» и нам с вами их знать совсем не обязательно, потому что «Меньше знаешь — крепче спишь»…

    Разрядность у программ и драйверов

    Разрядность может иметь не только система, но и программы, и драйвера. Большинство программ создавалось именно под 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!

  2. matvejgontarev9558@gmail.c Ответить

    32-разрядные и 64-разрядные версии Windows эти цифры означают архитектуру процессора, чем выше разрядность тем больше оперативной памяти может использовать Ваша ОС, иногда 32 обозначают как x86, то есть в любом случае x64 более современная архитектура так как имеет 64 битную разрядность, а x86 архитектура имеет всего 32 битную разрядность.

    Как узнать какая у меня разрядность системы?

    В свойствах компьютера или при помощи программы Securable (_https://www.grc.com/securable.htm), также с помощью нее можно узнать поддерживает ли ваш процессор 64 разрядную операционную систему.

    Какая разница и что это дает?

    Шестидесяти четырех битная система может увидеть и работать с большем объемом памяти, 32 она же уже x86 устаревшая архитектура процессора работает лишь с 3 гигабайтами, до нее была 8, 16 битные системы, все мы наверно помним 8 битную Денди (не с очень то красивой графикой) и 16 битную Sega mega drive (по красочней чем на денди графикой), ну а потом уже Sony Playstation 32, тогда еще появилась Nintendo 64 но особой популярностью, 64 разрядность не пользовалась, так как на тот момент не писались в таком масштабе программы и драйвера под нее. Но на сегодняшней момент все изменилось, и производители стали активно разрабатывать приложения и драйвера, под эту систему, а почему именно сейчас?, а не тогда когда появилась Windows XP 64 не пользующаяся особой популярностью по причине отсутствия приложений и поддержки драйверов различными устройствами, а все потому что не было необходимости для обычного пользователя, так как нам хватало и той оперативной памяти с которой могла работать 32 разрядная ОС, это максимальных 3 Gb.
    Так что пришло время, поднялись требования программ к ресурсам системы. Не цифры разрядности дают прирост производительности, а объем оперативной памяти и как программа может этот объем использовать, та как сама по себе разрядность не дает скорости, если вы установили себе 64 ОС и установили программу поддерживающую эту разрядность, сам факт этого не даст значительного прироста, а вот работа программы с вашей ОП уже может значительно ускорить работу программы, как это происходит, все дело в том что программы до этого использовали в качестве буфера, на виртуальном жестком диске, и обращение к этому дампу значительно медленнее чем обращение к оперативной памяти, сейчас же идея приложения заключается в использование места под дамп именно в оперативной памяти компьютера, тем самым уменьшить время на затраты при обращении к нему.
    Вот я надеюсь хоть как то смог мало мальски для неопытных людей разобрать что к чему в этих цифрах. Так что можно подвести вывод, если вы офисный сотрудник и у вас кроме офисных программ больше ничего не установлено то вам вообще все равно что использовать, но лучше 32, так как у вас будет не так много папок Programm files ))), объясню все дело в в том что если вы установите себе 64 битную ОС то при установке приложений 32 битных вы получите вторую папку Programm files (x86) так как все программы хранятся отдельно по разрядности. По этому для офиса или использования в домашних условиях для не продвинутых пользователей и не геймеров я бы рекомендовал 32.
    Если вы уже ПРОюзер и Игроман то 64 система это для вас, так как на сегодняшний момент играм требуется уже больше оперативной памяти чем 3 Гб, да и профессиональные программы как фотошоп или видео редакторы уже могут использовать в своих целях большой объем оперативной памяти.

  3. Finalts Ответить

    Поехали. Все “за” и “против” перехода на разрядность Windows x64:
    64-битная версия Windows, формально выглядит и ощущается точно так же, как и обычная 32-битная, т.е. никаких особенных новшеств и бонусов в ней нет, однако, люди с многоядерными процессорами могут ощутить прирост производительности при использовании такой системы и 64-битных приложений в ней (что, впрочем, актуально далеко не для всех и не всегда);
    x64 способна видеть и работать с оперативной памятью 4 и более Гбайт. А вот x32 видит только 3 Гбайта, даже если физически планок оперативной памяти стоит больше. Т.е, люди, которые имеют в компьютере большой запас памяти получат больше производительности на 64-битной системе и меньше проблем с недостатком оперативной памяти;
    Не для всех компьютеров и железа в нем, производители выпустили 64-разрядные версии драйверов, что может стать проблемой при переходе на такую систему. Проверяйте наличие драйверов на сайте производителей мат.платы, видеокарты и тп, возможно, что Вы просто не сможете мигрировать с 32-разрядной системы;
    Большинство x32 приложений прекрасно работают в x64 системах, но не наоборот;
    Формально смысл перехода, в основном, заключается в количестве памяти на борту компьютера. Если меньше 4 Гбайт, то переходить смысла почти нет. Если больше (или хочется поставить больше), то стоит. Естественно, что для большинства систем, приложений и игр актуально правило “Чем больше памяти – тем лучше”. Почему? Читайте в моей статье “Практика использования 8 гб оперативной памяти + WD VelociRaptor в RAID 0”
    Моё мнение – однозначно x64, ибо большое количество памяти и, бывает, улучшенная производительность для многоядерников, определенно рулит.
    Кратенько как-то так.
    к содержанию ↑

    Как узнать разрядность Windows

    Я уже выше говорил как глянуть разрядность, однако, на всякий случай, скажу еще один способ (актуален для Windows XP):
    Нажмите “Пуск – Выполнить.”
    Наберите в открывшемся окне: winmsd.exe и нажмите кнопку OК.
    В области сведений в столбце “Элемент” найдите пункт “Тип”. Если система 32-разрядная, то пункт “Тип” будет иметь значение “Компьютер на базе X86”. Если система 64-разрядная, то пункт “Тип” будет иметь значение “Компьютер на базе Itanium”.
    Это был вариант для тех, у кого способом выше, разрядность не определяется или не указана.

  4. rm rf Ответить

    Открываем панель управления Виндовс. Данная вкладка находиться в папке «Служебные — Windows». Обычно эта папка находиться почти в самом низу списка.
    Кликаем по “Система и безопасность” в панели управления.
    После открытия окна «Система и безопасность» выбираем “Система“.
    В открытом апплете «Система» с названием «Просмотр основных сведений о вашем компьютере»  найдите пункт «Система», расположенную ниже логотипа Windows. Тип системы будет называться 64-разрядная операционная система или 32.

    Так же в типе системе указывается тип используемого процессора x64 или x86. Если процессор 64-битный, то x64, если процессор 32-битный, то x86. Это аппаратная архитектура. Она пошла от моделей процессоров Intel. В те времена были только 32-х разрядные процессоры (80286, 80386 или 80486). Чтобы было короче, прижилось обозначение по последним двум цифрам — x86.
    32-разрядную версию Windows можно установить на x86 или x64 архитектуру, но 64-разрядная Виндовс может быть установлена ​​только на оборудовании x64.

    Как узнать битность системы windows 7 и Vista

    Зайдите в Пуск > Панель управления.
    Далее жмем “Система и безопасность
    Выбираем “Система
    В пункте «Система» найдите «Тип системы». В нем показано 32-разрядная или 64-разрядная у вас операционная система.

    Windows 7 Начальная (Starter Edition) 64-разрядной версии не имеет, только 32-бит.
    Для Виндовс Vista все то же самое, только  вместо апплета «Система и безопасность» надо зайти в «Система и обслуживание».
    64-разрядная версия Windows Vista Starter Edition (Начальная) отсутствует.

    Как узнать разрядность системы windows XP

    Нажмите «Пуск» и выберите «Панель управления».
    Далее кликните по «Производительность и обслуживание».
    Выберите «Система».
    Найдите основную информацию о версии Windows XP, установленной на вашем компьютере справа от логотипа Виндовс на вкладке «Общие» в свойствах системы.
    Версия Microsoft Windows XP Professional означает, что вы используете 32-разрядную версию Windows XP.

    Microsoft Windows XP Professional x64 Edition означает, что вы используете 64-разрядную версию Windows XP.

    64-разрядных версий Windows XP Home или Windows XP Media Center Edition не существует. Если вы определили, что у вас установлены именно они, то вы используете 32-разрядную ОС.

    Сколько у вас папок «Program Files»

    Этот метод не так прост для понимания, как использование панели управления, но он обеспечивает быстрый способ проверки того, используете вы 64-разрядную или 32-разрядную версию Виндовс.
    Если ваша версия Windows является 64-разрядной, вы можете устанавливать как 32-разрядные, так и 64-разрядные программы и на вашем компьютере есть две разные папки — Program Files и Program Files (x86).

    32-разрядные версии Виндовс имеют только одну папку, поскольку в ней можно устанавливать только 32-разрядные программы.
    В 64-разрядной версии Windows существуют две программные папки:
    Для 32-разрядных приложений: C:\Program Files (x86)\
    Для 64-разрядных приложений: C:\Program Files\
    32-разрядные версии Windows имеют только одну папку:
    Для 32-разрядных приложений: C:\Program Files\
    Теперь вы знаете, используете ли вы Windows 64-х или 32-битную версию.

  5. ishkornik Ответить

    Чтобы было понятней: ширина регистра — как пропускная способность перекрёстка, оперативная память — как количество машин, а процессор — регулировщик. Процессор с архитектурой x86 способен без проблем контролировать перекрёсток с пропускной способностью в 4 гигабайта — столько машин по нему можно запустить. Процессор с архитектурой x64 теоретически способен контролировать запредельно большой перекрёсток. На компьютерном же языке это значит, что такой процессор может обеспечивать корректную работу компьютеров не только своего, но и будущего поколения.
    При установке Windows есть возможность выбора между x86 и x64Таким образом, установка свыше 4 гигабайт оперативной памяти на компьютер с процессором x86 не приведёт к её практическому расширению.
    Несмотря на крайне большую и невостребованную ширину регистра для 64-разрядных процессоров, создавать промежуточный этап между 32-битной и 64-битной разрядностью процессора практически бессмысленно. В общем-то между архитектурами x86 и x64 нет особой разницы в сложности реализации. Просто при разработке 32-битного реестра, до сих пор используемого большинством программ, объёмы оперативной памяти сверх 4 гигабайт казались невозможными, какими сейчас кажутся 264.

    Как выбрать разрядность системы

    Продолжая вышеприведённую аллегорию, можно сказать, что разрядность операционной системы определяет то, какой перекрёсток будет создаваться.
    Все процессоры с архитектурой x64 поддерживают 32-разрядную операционную систему, как и 64-разрядную, но процессоры с архитектурой x86 поддерживают только 32-разрядные системы.
    В случае если у вас процессор с архитектурой x86, то выбора вы лишены. Если же у вас архитектура x64, стоит ставить 64-разрядную систему, даже если у вас нет 4 гигабайт оперативной памяти. Причина такого выбора проста: большинство новых программ и расширений выпускается исключительно под 64-битные системы, а 32-зарядные невольно вытесняются с рынка.
    Фактически из существенных плюсов у 64-разрядных систем есть только два: поддержка сверх 4 гигабайт оперативной памяти и поддержка 64-разрядного операционного обеспечения. Все 32-разрядные программы также поддерживаются без каких-либо трудностей.
    Да, положительных моментов мало, но минусов почти нет. Исключение только в том случае, если вы используете какое-либо очень старое оборудование, у которого нет 64-разрядной версии драйвера. Например, 32-битные драйверы, которые не станут на 64-разрядную систему.

  6. wanggwanis Ответить

    Разрядность (битность) – это свойство операционной системы, определяющее количество информации, которой одновременно оперирует компьютер.
    Исходя из определения, можно сделать вывод, что чем выше разрядность операционной системы компьютера, тем быстрее он работает.
    На самом же деле, не все так просто. Прирост быстродействия от использования 64-битной системы на практике почти не ощущается. Кроме того, каждый из типов ОС имеет свои недостатки.
    Недостатки 64-разрядной версии Windows:
    • Windows х64, а также 64-разрядные программы, используют значительно больше оперативной памяти компьютера, чем их 32-разрядные аналоги;
    • Windows х64 может работать только на компьютере, процессор которого поддерживает такую возможность. Однако, этот недостаток уже почти потерял свою актуальность, поскольку абсолютное большинство современных процессоров поддерживают технологию х64.
    Недостатки 32-разрядной версии Windows:
    • компьютер с 32-разрядной системой может использовать не больше 4 ГБ оперативной памяти, даже если объем физически установленных в нем модулей ОЗУ будет значительно превышать этот показатель;
    • в 32-разрядных версиях Windows не работают 64-битные программы. В то же время, 32-битные приложения в Windows 64-bit, как правило, работают нормально.
    Какую Windows предпочесть, 32-х или 64-разрядную?
    Все зависит от объема оперативной памяти компьютера. Если ее объем 4 ГБ и больше, устанавливать целесообразно 64-разрядную Windows, если меньше – 32-разрядную.

    Как узнать разрядность Windows компьютера

    1. Найти на рабочем столе компьютера значок с названием «Компьютер», «Этот компьютер» или «Мой компьютер».
    Если на рабочем столе такой значок отсутствует, его туда можно добавить. Как добавить значок «Компьютер» на рабочий стол читайте здесь.
    2. Щелкнуть по этому значку правой кнопкой мышки и в открывшемся контекстном меню выбрать пункт «Свойства».

    Откроется окно, которое в разных версиях Windows выглядит по-разному. Но в нем в любом случае отображается информация о разрядности Windows, см. изображение ниже.

    Исключением является Windows XP. Информация о ее типе отображается только в том случае, если Windows является 64-разрядной. В открывшемся окне будет присутствовать надпись “Выпуск x64”, “x64 edition” или что-то похожее. Если такой надписи нет, значит Windows XP является 32-разрядной.

  7. vasiapupkinpuk Ответить

    В рамках архитектуры вычислительной техники под термином «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-битные системы

    На момент написания статьи в 2010 году, наиболее известными и распространенными являются две 64-битные архитектуры микропроцессоров: IA64 и Intel 64.
    IA-64 64-битная микропроцессорная архитектура, разработанная совместно компаниями Intel и Hewlett Packard. Реализована в микропроцессорах Itanium и Itanium 2. Для более подробного знакомства с архитектурой IA-64 можно обратиться к следующим статьям в Wikipedia: “IA-64”, “Itanium”, “Itanium 2”. Архитектуру Itanium поддерживает большое количество производителей серверов: Bull, Fujitsu, Fujitsu Siemens Computers, Hitachi, HP, NEC, SGI и Unisys. Эти производители присоединились к Intel и множеству разработчиков ПО для создания Itanium Solutions Alliance, с целью продвижения архитектуры и ускорения темпов портирования ПО.
    Intel 64 (AMD64 / x86-64 / x64 / EM64T) — данная архитектура представляет собой расширение архитектуры x86 с полной обратной совместимостью. Существует множество вариантов названия данной архитектуры, что приводит к путанице, хотя, по сути, все эти названия обозначают одно и тоже: x86-64, AA-64, Hammer Architecture, AMD64, Yamhill Technology, EM64T, IA-32e, Intel 64, x64. Более подробно узнать о том, как появилось так много названий, можно в статье из Wikipedia: “X86-64”. Процессоры с архитектурой Intel 64 нашли широкое распространение персональных компьютерах. И скорее всего ваш компьютер оснащен именно процессором с данной архитектурой.
    Важно понимать, что IA-64 и Intel 64 (AMD64) это совершенно разные, несовместимые друг с другом, микропроцессорные архитектуры. Далее в статье мы будем рассматривать только архитектуру Intel 64 (x64 / AMD64), как более популярную среди разработчиков прикладного программного обеспечения для операционной системы Windows. Для краткости программную модель Intel 64, доступную программисту в 64-битной системе Windows, называют Win64.

    Архитектура 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 архитектуре, ограничивает производительность в вычислительных задачах. Увеличенное количество регистров обеспечивает достаточную производительность для многих приложений.
    Подчеркнем основные достоинства архитектуры 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 обеспечивает обратную совместимость с 32-битными приложениями. Например, 64-битная версия Windows использует специальный режим WoW64 (Windows-on-Windows 64), который транслирует вызовы 32-битных приложений к ресурсам 64-битной операционной системы.
    Далее в статье мы будем рассматривать только 64-битные операционные системы семейства Windows.

    WoW64

    Windows-on-Windows 64-bit (WoW64) — подсистема операционной системы Windows, позволяющая запускать 32-битные приложения на всех 64-битных версиях Windows.
    Подсистема WoW64 не поддерживает следующие программы:
    программы, скомпилированные для 16-разрядных операционных систем;
    программы режима ядра, скомпилированные для 32-разрядных операционных систем.
    Существуют различия WoW64 в зависимости от архитектуры процессора. Например, 64-битная версия Windows разработанная для процессора Intel Itanium 2 использует WoW64 для эмуляции x86 инструкций. Такая эмуляция весьма ресурсоемка по сравнению с WoW64 для архитектуры Intel 64, так как происходит переключение с 64-битного режима в режим совместимости, при выполнении 32-битных программ.
    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Гб.
    Особенность компиляторов для 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-битный процессор теоретически может адресовать 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-битных приложений на языке Си/Си++”. Содержание:
    Урок 01. Что такое 64-битные системы.
    Урок 02. Поддержка 32-битных приложений.
    Урок 03. Перенос кода на 64-битные системы. За и против.
    Урок 04. Создание 64-битной конфигурации.
    Урок 05. Сборка 64-битного приложения.
    Урок 06. Ошибки в 64-битном коде.
    Урок 07. Проблемы выявления 64-битных ошибок.
    Урок 08. Статический анализ для выявления 64-битных ошибок.
    Урок 09. Паттерн 01. Магические числа.
    Урок 10. Паттерн 02. Функции с переменным количеством аргументов.
    Урок 11. Паттерн 03. Операции сдвига.
    Урок 12. Паттерн 04. Виртуальные функции.
    Урок 13. Паттерн 05. Адресная арифметика.
    Урок 14. Паттерн 06. Изменение типа массива.
    Урок 15. Паттерн 07. Упаковка указателей.
    Урок 16. Паттерн 08. Memsize-типы в объединениях.
    Урок 17. Паттерн 09. Смешанная арифметика.
    Урок 18. Паттерн 10. Хранение в double целочисленных значений.
    Урок 19. Паттерн 11. Сериализация и обмен данными.
    Урок 20. Паттерн 12. Исключения.
    Урок 21. Паттерн 13. Выравнивание данных.
    Урок 22. Паттерн 14. Перегруженные функции.
    Урок 23. Паттерн 15. Рост размеров структур.
    Урок 24. Фантомные ошибки.
    Урок 25. Практическое знакомство с паттернами 64-битных ошибок.
    Урок 26. Оптимизация 64-битных программ.
    Урок 27. Особенности создания инсталляторов для 64-битного окружения.
    Урок 28. Оценка стоимости процесса 64-битной миграции Си/Си++ приложений.
    Также рекомендую раздел с обзорами статей по тематике связанной с 64-битнми технологиями.

    Библиографический список

    Джон Р. Машей. Долгая дорога к 64 битам. http://www.viva64.com/go.php?url=321
    Wikipedia. 64-bit. http://www.viva64.com/go.php?url=203

  8. VideoAnswer Ответить

Добавить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *