Amd64 microsoft windows что это
Перейти к содержимому

Amd64 microsoft 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-битные системы

  1. 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, с целью продвижения архитектуры и ускорения темпов портирования ПО.
  2. 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 нашли широкое распространение персональных компьютерах. И скорее всего ваш компьютер оснащен именно процессором с данной архитектурой.

Архитектура 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-битное адресное пространство;
  • расширенный набор регистров;
  • привычный для разработчиков набор команд;
  • возможность запуска старых 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.

  • программы, скомпилированные для 16-разрядных операционных систем;
  • программы режима ядра, скомпилированные для 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Гб.

  • RCX: первый аргумент
  • RDX: второй аргумент
  • R8: третий аргумент
  • R9: четвертый аргумент

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

AMD64 — что это?

Думаем многие из работающих за компьютерами сталкивались с термином «AMD64». Вы могли видеть это название как в технической документации, так и в наименованиях папок связанных с ОС Windows. Фактически это два разных термина и давайте разберёмся что к чему.

Основное значение:
AMD64 — это обозначение 64-битной архитектуры центрального процессора, разработанной и внедренной компанией AMD в 2003 году в процессоры Athlon 64. Позднее все процессоры Advanced Micro Devices обладающие двумя и более физическими ядрами(с логическим делением и без него) или несущие одно физическое ядро с логическим делением на два виртуальных потока стали относиться к категории AMD64. Другое возможное наименование — x86-64.
До появления 64х битной архитектуры, повсеместно использовалась 32х битная. При ней каждый процессор нёс только одно ядро без логического деления на потоки, что значительно затрудняло параллельное выполнение нескольких операций.
Часто операционная система, например Linux предлагает выбрать дистрибутив AMD64 или i386. Запомните: дистрибутив AMD64 рассчитан под все многоядерные/многопоточные(то есть 64х битные) процессоры не зависимо от производителя, i386 дистрибутив выбирается если в системе установлен одноядерный однопоточный процессор(32 бита).

Дополнительное значение:
Папки с наименованием AMD64 часто встречаются в структуре OC Windows. Такие папки содержат в себе информацию об обновлениях операционной системы. Удалять их крайне их не рекомендуется. Если по каким-то причинам папки имеющие в названии часть имени «AMD64» начинают занимать слишком много места, рекомендуется произвести следующую операцию:
1) Открыть «Компьютер» или «Мой компьютер»
2) На значке диска «C» нажать правой кнопкой мыши.
3) В открывшемся окне(должна быть открыта вкладка «Общие») нажимаем левой кнопкой мыши на кнопку «Очистка диска».
4) В новом окне нажимаем кнопку «Очистить системные файлы».
5) Ставим галочку на пункте «Очистка обновлений Windows»
6) Нажимаем кнопку «ОК».

Всё о папке WinSxS: зачем она нужна, можно ли её удалить или очистить

Первый вопрос, который возникает у пользователей Windows при виде директории WinSxS — что это за папка вообще, и почему она так много весит? Стереть всё содержимое нельзя. По крайней мере, обычным способом. Если удалить важные системные файлы, в ОС возникнут неполадки. Но размер каталога со временем увеличивается. И полезно будет разобраться, как его почистить и можно ли, вообще, это сделать.

Папка WinSxS

Подробнее о папке

WinSxS находится в корневой директории ОС (обычно это C:\Windows) во всех современных Win, начиная с 7 версии. Файлы и каталоги, которые находятся там, нужны для работы операционной системы. Если их убрать, изменить, переместить или переименовать, могут возникнуть серьёзные проблемы. В лучшем случае появятся ошибки. В худшем — Виндовс больше не запустится. И придётся её восстанавливать. Поэтому перед тем как очистить какую-то системную директорию, убедитесь, что это не повредит ОС и не вызовет критических сбоев. И чтобы понять, можно ли удалить WinSxS, надо разобраться, для чего она нужна.

В ней хранятся файлы, которые нужны для восстановления Windows. После каждого обновления создаётся резервная копия — некий образ системы. С ним получится вернуть Win в то состояние, которое было до апдейта. Это полезная и нужная функция — ведь новые версии программ и служб не всегда работают стабильно.

Если вы установили ОС недавно, то WinSxS будет «маленькой» — всего несколько гигабайт. Но со временем каталог разрастается или занимает всё больше и больше места на диске. Его размеры иногда достигают 10-30 Гб. Причём часть содержимого уже может быть не нужна. Зачем вам возврат к обновлению системы безопасности, которое вы загрузили год назад?

Размер папки WinSxS

Размер папки WinSxS

Но нельзя просто очистить всю папку. Или удалить некоторые «старые» файлы, посмотрев дату их создания. Если действовать неаккуратно или непродуманно, система перестанет функционировать. Можно уменьшить размер этой директории, используя некоторые встроенные средства ОС. Или просто переустановить Win.

Память, которая указана в свойствах WinSxS, немного отличается от «реального» веса папки. На деле он чуть меньше, так как часть содержимого — это жёсткие ссылки (символические). Проводник их «не замечает».

Если после апдейта прошло несколько дней, и ОС работает нормально, значит, резервная копия уже не нужна. Но рекомендуется стирать только «старые» файлы. Ведь они точно не понадобятся. Полная очистка папки WinSxS Windows 7 невозможна. Разрешается удалить лишь некоторые файлы. Для этого должен быть установлен пакет обновлений SP1.

Освободившееся место можно распределить с большей пользой: загрузить приложения, скачать видео, сохранить личные данные и так далее. Или оставить немного памяти для нужд системы.

Как узнать, установлен ли SP1?

Именно в Windows 7 SP1 появился доступ к Win SxS. В предыдущих версиях Win очистка этой папки была невозможна. Чтобы посмотреть, есть ли этот пакет в ОС:

  1. Зайдите в «Панель управления» (к примеру, через меню «Пуск»).
  2. Откройте параметр «Система» в категории «Система и безопасность».
  3. В поле «Издание» должна быть информация: версия OS, копирайт Microsoft, год создания. Если там есть строчка «Service Pack 1», значит, всё в порядке и каталог можно редактировать.

Service Pack 1

Service Pack 1 в Windows 7

Перед чисткой

Перед тем как очистить WinSxS, надо скачать один апдейт (если он ещё не установлен).

  • Зайдите в Пуск — Программы — Центр обновлений.

Центр обновлений Windows

Центр обновлений Windows

  • Нажмите на «Необязательные обновления». Если такого пункта там нет, значит, все службы уже загружены.
  • В списке найдите апдейт с номером «KB2852386».
  • Отметьте его галочкой и подтвердите установку.

Без этого обновления очистка WinSxS будет недоступна. Его можно скачать и с официального сайта Майкрософт.

  1. Зайдите на com.
  2. В строке поиска справа сверху введите «KB2852386».
  3. Выберите апдейт, который подходит для вашей системы: 32- или 64-разрядной.
  4. Чтобы узнать информацию об ОС, кликните правой кнопкой мыши на значке «Мой компьютер», затем на пункт «Свойства». В строке «Тип» будет указана разрядность Windows.

Чистка

Если вы задумались, как удалить WinSxS, откажитесь от этой затеи. Полностью стирать эту папку нельзя. Вручную убирать оттуда файлы тоже не рекомендуется. Будут неприятные последствия. Но очистить часть содержимого, и чуть-чуть уменьшить размеры директории — вполне реальная задача.

Функция очистки диска

  • Щёлкните правой кнопкой по системному диску. Откроется контекстное меню.
  • Выберите строку «Свойства».
  • Вкладка «Общие».
  • «Очистка диска».

Очистка диска в Windows 10

Нажимаем на Очистка диска

  • Отметьте пункт «Обновления Windows». Если его там нет, нажмите на кнопку «Системные файлы». Нужная строка должна появиться.
  • Подтвердите действие, кликнув на «OK» и затем на «Удалить».
  • Дождитесь окончания процесса. Далее может потребоваться перезагрузка ПК.
  • Служба избавляется только от ненужных обновлений. Всю папку стереть не получится.

Командная строка в Windows 10

WinSxS в Windows 10 можно очистить, если использовать консоль.

  1. Кликните правой кнопкой мыши на меню «Пуск». Оно выглядит, как логотип Win.
  2. Выберите «Командная строка» и запустите её от имени администратора.
  3. Введите команду «Dism.exe /online /cleanup-image /AnalyzeComponentStore».
  4. Система проведёт анализ и выдаст рекомендации.
  5. Если она предложит удалить ненужные файлы, используйте команду «Dism.exe /online /cleanup-image /StartComponentCleanup». Начнётся чистка.
  6. Если каталог весит менее 5 Гб, его лучше не трогать. Иначе получится обратный эффект — увеличение объёма вместо оптимизации.

Если папка WinSxS занимает слишком много места, её можно почистить. Это делается через специальные службы ОС или командную строку. Не стоит изменять содержимое каталога напрямую. Если удалять все файлы методом «Delete — Enter», возникнут серьёзные проблемы.

Добавить комментарий

Ваш адрес email не будет опубликован.