219

Каковы различия между 32-битными и 64-битными системами?

Если вы использовали оба из них, какие острые различия вы испытали?

Будет ли проблемой использование 32-битных программ в 64-битных системах в некоторых случаях?

19 ответов19

262

Примечание. Эти ответы относятся к стандартным процессорам ПК на базе x86 (Intel и AMD) и Windows (как правило, настраиваются для конечных пользователей). Другие 32-разрядные или 64-разрядные микросхемы, другие ОС и другие конфигурации ОС могут иметь различные компромиссы.

С технической точки зрения 64-битная ОС дает вам:

  • Позволяет отдельным процессам обращаться к более чем 4 ГБ ОЗУ каждый (на практике большинство, но не все 32-разрядные ОС также ограничивают общий объем используемой оперативной памяти системы менее 4 ГБ, а не только максимум для каждого приложения).

  • Все указатели занимают 8 байтов вместо 4 байтов. Влияние на использование ОЗУ минимально (поскольку маловероятно, что приложение будет заполнено гигабайтами указателей), но в худшем теоретическом случае это может сделать кэш-память ЦП способной удерживать в 1/2 раза больше указателей (делая это будет эффективно 1/2 размера). Для большинства приложений это не так уж важно.

  • В 64-битном режиме гораздо больше регистров ЦП общего назначения. Регистры являются самой быстрой памятью во всей вашей системе. В 32-битном режиме есть только 8 и 16 регистров общего назначения в 64-битном режиме. В написанных мной приложениях для научных вычислений я наблюдал повышение производительности до 30% за счет перекомпиляции в 64-битном режиме (мое приложение действительно могло использовать дополнительные регистры).

  • Большинство 32-разрядных ОС позволяют отдельным приложениям использовать только 2 ГБ ОЗУ, даже если у вас установлено 4 ГБ. Это связано с тем, что остальные 2 ГБ адресного пространства зарезервированы для обмена данными между приложениями, с ОС и для связи с драйверами. Windows и Linux позволят вам изменить этот компромисс до 3 ГБ для приложений и 1 ГБ для общего доступа, но это может вызвать проблемы для некоторых приложений, которые не ожидают изменений. Я также предполагаю, что это может нанести вред видеокарте с 1 ГБ ОЗУ (но я не уверен). 64-разрядная ОС может дать отдельным 32-разрядным приложениям более полные 4 ГБ для игры.

С точки зрения пользователя:

  • Скорость приложения обычно выше для 64-разрядного приложения в 64-разрядной ОС по сравнению с 32-разрядной версией приложения в 32-разрядной ОС, но большинство пользователей не увидят этого ускорения. Большинство приложений для обычных пользователей на самом деле не используют дополнительные регистры, или преимущества компенсируются большими указателями, заполняющими кэш.

  • Если у вас есть приложения для захвата памяти (например, фоторедакторы, обработка видео, научные вычисления и т.д.), Если у вас есть (или вы можете купить) более 3 ГБ ОЗУ, и вы можете получить 64-разрядную версию приложения, Выбор прост: используйте 64-битную ОС.

  • Некоторое оборудование не имеет 64-битных драйверов. Проверьте свою материнскую плату, все подключаемые карты и все USB-устройства перед переключением. Обратите внимание, что на заре Windows Vista было много проблем с драйверами. В наши дни все в целом лучше.

  • Если вы одновременно запускаете так много приложений, что у вас заканчивается ОЗУ (обычно вы можете сказать это, потому что ваш компьютер начинает работать очень медленно и вы слышите хруст жесткого диска), тогда вам понадобится 64-разрядная ОС (и достаточно оперативной памяти).

  • Вы можете запускать 32-битные приложения (но не драйверы) в 64-битной Windows без проблем. Наихудшее замедление, которое я измерил для 32-разрядного приложения в 64-разрядной Windows, составляет около 5% (это означает, что если на выполнение 32-разрядной Windows потребовалось 60 секунд, потребуется не более 60 * 1,05 = 65 секунд с то же самое 32-битное приложение в 64-битной Windows).

Что 32-битный против 64-битный не означает:

В системах x86 32-битные и 64-битные напрямую относятся к размеру указателей. Это все.

  • Это не относится к размеру типа C int . Это зависит от конкретной реализации компилятора, и большинство популярных компиляторов выбирают 32-битные int на 64-битных системах.

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

  • Он не имеет прямого отношения к размеру шины физического адреса. Например, системе с 64-разрядными строками кэша и максимум 512 ГБ памяти требуется только 33 бита в ее адресной шине (то есть log2(512*1024**3) - log2(64) = 33).

  • Это не относится к размеру физической шины данных: это больше связано с производственными затратами (количеством контактов в сокете ЦП) и размерами линий кэша.

107

В принципе, вы можете сделать все в большем масштабе:

  1. ОЗУ для ОС: ограничение ОЗУ 4 ГБ на платформе x86 для ОС (в большинстве случаев)
  2. ОЗУ на процесс: ограничение ОЗУ 4 ГБ на процессоре x86 для процессов (всегда). Если вы считаете, что это не важно, попробуйте запустить приложение, интенсивно использующее базу данных MSSQL. Он будет использовать более 4 ГБ, если он у вас есть, и работать намного лучше.
  3. Адреса: Адреса 64-битные, а не 32-битные, что позволяет вам иметь "большие" программы, которые используют больше памяти.
  4. Дескрипторы, доступные для программ: Вы можете создавать больше файловых дескрипторов, процессов, ... Например, на Windows x64 вы можете создать> 2000 потоков на процесс, но на x86 приблизиться к нескольким сотням.
  5. Доступны более широкие программы: с x64 вы можете запускать как x86, так и x64 программы. (Пример windows: wow64, windows32 на эмуляции windows64)
  6. Варианты эмуляции: с x64 вы можете запускать виртуальные машины x86 и x64.
  7. Быстрее: некоторые вычисления выполняются быстрее на 64-битном процессоре
  8. Разделение нескольких системных ресурсов. Большое количество оперативной памяти очень важно, если вы хотите запустить хотя бы одну виртуальную машину, которая разделяет системные ресурсы.
  9. Доступны эксклюзивные программы: несколько новых программ поддерживают только x64. Пример Exchange 2007.
  10. Будущий устаревший x86?: Со временем будет использоваться все больше и больше 64-битных и все больше и больше x86 не будет использоваться. Таким образом, производители будут поддерживать только 64-битные и более.

Два больших типа 64-битных архитектур - это архитектуры x64 и IA64. Но x64 - самый популярный на сегодняшний день.

x64 может выполнять команды x86, а также команды x64. IA64 также выполняет команды x86, но не поддерживает расширения SSE. На Itanium выделено оборудование для запуска инструкций x86; это эмулятор, но аппаратно.

Как упомянул @Phil, вы можете глубже понять, как это работает здесь.

46

Наибольшее влияние, которое люди заметят в данный момент, заключается в том, что 32-битный ПК может обрабатывать максимум 4 ГБ памяти. Когда вы снимаете память, выделенную для другого использования операционной системой, ваш компьютер, вероятно, будет показывать только около 3,25 ГБ используемой памяти. Перейдите на 64 бита, и этот предел исчезнет.

Если вы занимаетесь серьезным развитием, это может быть очень важно. Попробуйте запустить несколько виртуальных машин, и вам скоро не хватит памяти. Серверы с большей вероятностью будут нуждаться в дополнительной памяти, поэтому вы обнаружите, что использование 64-битных систем на серверах намного больше, чем на настольных ПК. Закон Мура гарантирует, что у нас будет больше памяти на машинах, и в некоторых случаях настольные компьютеры также будут переключаться на 64-битную версию в качестве стандарта.

Более подробное описание различий в процессорах можно найти в этой замечательной статье от ArsTechnica.

31

Нет ничего бесплатного: хотя 64-разрядные приложения могут получить доступ к большему объему памяти, чем 32-разрядные, недостатком является то, что им требуется больше памяти. Все те указатели, которые раньше требовали 4 байта, теперь им нужно 8. Например, требование по умолчанию в Emacs - это на 60% больше памяти, когда он построен для 64-битной архитектуры. Эта дополнительная нагрузка снижает производительность на всех уровнях иерархии памяти: большие исполняемые файлы загружаются с диска дольше, большие рабочие наборы вызывают больше подкачки, а большие объекты означают меньшее размещение в кэшах процессора. Если вы подумаете о ЦП с кешем L1 16 КБ, 32-разрядное приложение может работать с 4096 указателями, прежде чем оно пропустит и перейдет в кэш L2, но 64-разрядное приложение должно достичь кеша L2 после всего лишь 2048 указателей.

На x64 это смягчается другими архитектурными улучшениями, такими как большее количество регистров, но на PowerPC, если ваше приложение не может использовать> 4G, оно может работать быстрее на "ppc", чем "ppc64". Даже на Intel существуют рабочие нагрузки, которые работают быстрее на x86, и немногие работают на 5% быстрее на x64, чем на x86.

19

64-битная ОС может использовать больше оперативной памяти. Вот и все, на практике. В 64-битной Vista/7 используются более совершенные функции безопасности для размещения жизненно важных компонентов в ОЗУ, но это не так «заметно» как таковое.

От ChrisInEdmonton:

32-разрядная операционная система в системе ix86 с PAE может адресовать до 64 ГБ ОЗУ. 64-разрядная операционная система на x86-64 может получить доступ к 256 ТБ виртуального адресного пространства, хотя это может быть увеличено в последующих процессорах, до 16 EB. Обратите внимание, что некоторые операционные системы еще больше ограничивают адресное пространство, и большинство материнских плат будут иметь дополнительные ограничения.

14

Не уверен, что смогу ответить на все ваши вопросы без написания целого эссе (всегда есть Google ...), но вам не нужно разрабатывать свои приложения по-другому для 64-битных систем. Я предполагаю, что имеется в виду, что вы должны помнить о вещах, например, размеры указателя больше не соответствуют размеру целых. И у вас есть масса потенциальных проблем со встроенными допущениями для определенных типов данных длиной четыре байта, которые могут больше не соответствовать действительности.

Это может привести к путанице в вашем приложении - от сохранения / загрузки из файла, итерации по данным, выравнивания данных до битовых операций с данными. Если у вас есть существующая кодовая база, которую вы пытаетесь портировать, или работаете над обоими, то, скорее всего, у вас будет много маленьких проблем.

Я думаю, что это проблема реализации, а не дизайна. Т.е. Я думаю, что "дизайн", скажем, пакет для редактирования фотографий будет одинаковым независимо от размера слов. Мы пишем код, который компилируется как в 32-битную, так и в 64-битную версии, и дизайн, безусловно, не отличается между ними - это одна и та же кодовая база.

Основное "большое дело" на 64-битной версии - это то, что вы получаете доступ к гораздо большему адресному пространству памяти, чем 32-битная. Это означает, что вы действительно можете использовать более 4 ГБ памяти на вашем компьютере, и это действительно поможет.

Я уверен, что другие ответы будут вдаваться в детали и выгоды больше, чем я.

С точки зрения обнаружения разницы, то программно вы просто проверяете размер указателя (например, sizeof (void *)). Ответ 4 означает 32 бит, а 8 означает, что вы работаете в 64-битной среде.

10

32-битный процесс имеет виртуальное адресное пространство 4 ГБ; это может быть слишком мало для некоторых приложений. 64-битное приложение имеет практически неограниченное адресное пространство (конечно, оно ограничено, но вы, скорее всего, не достигнете этого предела).

На OSX есть и другие преимущества. В следующей статье вы узнаете, почему запуск ядра в 64-битном адресном пространстве (независимо от того, работает ли ваше приложение в 64 или 32) или запуск приложения в 64-битном адресном пространстве (в то время как ядро все еще 32-битное) приводит к гораздо большей производительности. Подводя итог: если какой-либо из них является 64-битным (ядро или приложение, или, конечно, оба), TLB ("буфер просмотра трансляции") не нужно очищать всякий раз, когда вы переключаетесь с ядра на использование пробела и обратно (что будет доступ к оперативной памяти).

Также вы получаете прирост производительности при работе с переменными "long long int" (64-битные переменные, такие как uint64_t). 32-битный ЦП может добавлять / делить / вычитать / умножать два 64-битных значения, но не в одной аппаратной операции. Вместо этого необходимо разделить эту операцию на две (или более) 32-битные операции. Таким образом, приложение, которое много работает с 64-битными числами, получит прирост скорости благодаря возможности выполнять 64-битную математику непосредственно в аппаратном обеспечении.

И последнее, но не менее важное: архитектура x86-64 предлагает больше регистров, чем классические архитектуры x86. Работа с регистрами намного быстрее, чем работа с ОЗУ, и чем больше регистров у процессора, тем реже ему приходится менять значения регистров в ОЗУ и обратно в регистры.

Чтобы узнать, может ли ваш процессор работать в 64-битном режиме, вы можете посмотреть различные переменные sysctl. Например, откройте терминал и введите

sysctl machdep.cpu.extfeatures

Если в нем указан EM64T, ваш процессор поддерживает 64-битное адресное пространство в соответствии со стандартом x86-64. Вы также можете искать

sysctl hw.optional.x86_64

Если он говорит 1 (истина / включен), ваш процессор поддерживает битовый режим x86-64, если он говорит 0 (ложь / отключен), это не так. Если настройка вообще не найдена, считайте ее ложной.

Примечание. Вы также можете извлекать переменные sysctl из нативного приложения C, не используя инструмент командной строки. Увидеть

man 3 sysctl
9

Обратите внимание, что адресное пространство может использоваться для более чем (реальной) памяти. Можно также отобразить в памяти большие файлы, что может повысить производительность при более странных шаблонах доступа, поскольку включается более мощное и эффективное кэширование на уровне ВМ на уровне блоков. Кроме того, безопаснее выделять большие блоки памяти на 64-битной, так как администратор heap с меньшей вероятностью столкнется с фрагментацией адресного пространства, которая не позволит ему выделить большой блок.

Некоторые из вещей, упомянутых в этом потоке (например, удвоение # регистров), применимы только к x86-> x86_64, а не к 64-битным в общем. Так же, как тот факт, что под x86_64 гарантированно есть SSE2, 686 кодов операций и дешевый способ сделать PIC. Эти функции строго не о 64-битной, а о сокращении устаревших и устранении известных ограничений x86

Более того, довольно часто люди указывают на удвоение регистров как причину ускорения, в то время как более вероятным является использование SSE2 по умолчанию, которое делает свое дело (ускорение memcpy и подобных функций). Если вы включите тот же набор для x86, разница будет намного меньше. (*) (***)

Также имейте в виду, что часто возникает начальный штраф, потому что средняя структура данных будет увеличиваться просто потому, что размер указателя больше. Это также имеет кеш-эффекты, но более заметно, потому что усреднение memcpy() (или любого другого эквивалента для копии памяти на вашем языке) займет больше времени. Это только на несколько процентов, но ускорения, названные выше, также на этой величине.

Обычно издержки на выравнивание также больше на 64-битных архитектурах (ранее 32-битные записи часто становятся смесью 32-битных и 64-битных значений), еще больше разрушая структуры.

В целом, мои простые тесты показывают, что они будут грубо уравновешивать друг друга, если драйверы и библиотеки времени выполнения полностью адаптированы, не давая значительной разницы в скорости для среднего приложения. Однако некоторые приложения могут внезапно работать быстрее (например, в зависимости от AES) или медленнее (критическая структура данных постоянно перемещается / сканируется / обходит и содержит много указателей). Тем не менее, тесты проводились на Windows, поэтому оптимизация PIC не проводилась.

Обратите внимание, что в большинстве языков JIT-VM (Java, .NET) в среднем (внутренне) используется значительно больше указателей, чем, например, в C++. Вероятно, их использование памяти увеличивается больше, чем для средней программы, но я не смею приравнивать это непосредственно к замедляющим эффектам (так как это действительно сложный и забавный зверь, который часто трудно предсказать без измерения)

В 64-разрядной версии Windows по умолчанию используется SSE2 для операций с плавающей запятой, что, по-видимому, ускоряет простые операции и замедляет сложные операции (sin, cos и т.д.).

(*) малоизвестный факт - число регистров SSE также удваивается в 64-битном режиме

(**) У доктора Доббса была хорошая статья об этом несколько лет назад.

8

Помимо очевидных проблем с пространством запоминания, о которых здесь упоминает большинство людей, я думаю, что стоит взглянуть на понятие "вычислений с широким словом", о котором Кнут (среди прочих) говорил в последнее время. За счет манипулирования битами можно получить много преимуществ, а побитовые операции с 64-битным словом идут намного дальше, чем с 32-битным словом. Короче говоря, вы можете выполнять больше операций в регистрах, не обращаясь к памяти, и с точки зрения производительности это довольно большой выигрыш.

Взгляните на Том 4, предисловие 1А, чтобы найти примеры классных трюков, о которых я говорю.

7

Помимо возможности адресовать больше памяти, x86_64 также имеет больше регистров, позволяющих компилятору генерировать более эффективный код. Улучшение производительности, как правило, будет довольно незначительным.

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

6

Эта тема уже слишком длинная, но ...

Большинство ответов сосредоточены на том факте, что у вас больше 64-битное адресное пространство, поэтому вы можете адресовать больше памяти. Для примерно 99% всех приложений это совершенно не имеет значения. Большой возглас

Настоящая причина того, что 64-битная версия хороша, состоит не в том, что регистры больше, но их в два раза больше! Это означает, что компилятор может хранить больше ваших значений в регистре, вместо того, чтобы помещать их в память и загружать их несколькими инструкциями позже. Если и когда оптимизирующий компилятор развертывает ваши циклы для вас, он может развернуть их примерно вдвое, что действительно может повысить производительность.

Кроме того, были определены соглашения о вызове / вызове подпрограммы для 64-битной системы, чтобы сохранить большинство переданных параметров в регистрах вместо того, чтобы вызывающий объект помещал их в стек, а вызываемый объект их выводил.

Таким образом, "типичное" C/C++ приложение получит повышение производительности примерно на 10% или 15%, просто перекомпилировав для 64-битной версии. (Предполагая, что некоторая часть приложения была связана с вычислениями. Конечно, это не гарантировано; Все компьютеры ждут с одинаковой скоростью. Ваш пробег может меняться.)

5

Цитата из Microsoft.com:

В следующей таблице увеличенные максимальные ресурсы компьютеров, основанных на 64-разрядных версиях Windows и 64-разрядном процессоре Intel, сравниваются с существующими 32-разрядными максимумами ресурсов.

МС-таблица

5

На 32-битной машине у вас есть только 4 294 967 295 байт памяти для адресации. На 64-битной машине у вас 1,84467441 × 10 ^ 19 байт памяти.

Википедия говорит это

64-разрядные процессоры вычисляют конкретные задачи (например, факториалы больших чисел) вдвое быстрее, чем работают в 32-разрядных средах (данный пример получен из сравнения между 32-разрядным и 64-разрядным Windows Calculator; заметно для факториала, скажем, 100 000). Это дает общее представление о теоретических возможностях 64-битных оптимизированных приложений.

Несмотря на то, что 64-разрядные архитектуры, несомненно, упрощают работу с большими наборами данных в таких приложениях, как цифровое видео, научные вычисления и большие базы данных, ведутся серьезные споры о том, будут ли они или их 32-разрядные режимы совместимости работать быстрее, чем сопоставимые цены. 32-битные системы для других задач. В архитектуре x86-64 (AMD64) большинство 32-разрядных операционных систем и приложений могут без проблем работать на 64-разрядном оборудовании.

64-битные виртуальные машины Java Sun запускаются медленнее, чем их 32-битные виртуальные машины, потому что Sun реализовал "серверный" JIT-компилятор (C2) только для 64-битных платформ. [9] "Клиентский" JIT-компилятор (C1), который производит менее эффективный код, но компилируется гораздо быстрее, недоступен на 64-битных платформах.

Следует отметить, что скорость не является единственным фактором, который следует учитывать при сравнении 32-разрядных и 64-разрядных процессоров. Такие приложения, как многозадачность, стресс-тестирование и кластеризация (для высокопроизводительных вычислений), HPC, могут более подходить для 64-битной архитектуры при правильном развертывании. По этой причине 64-битные кластеры широко используются в крупных организациях, таких как IBM, HP и Microsoft.

5

Помимо уже упомянутых преимуществ здесь есть еще несколько в отношении безопасности:

  • У процессоров x86_64 в таблицах страниц есть бит no-execute. Т.е. это может предотвратить атаки безопасности, вызванные переполнением буфера. 32-битный процессор x86 поддерживает эту функцию только в режиме PAE.
  • Увеличенное адресное пространство позволяет лучше рандомизировать структуру адресного пространства (ASLR), что затрудняет использование переполнений буфера.
  • Процессор x86_64 имеет независимый от позиции код, т. е. доступ к данным относительно регистра указателя команд (RIP).

Еще одно преимущество, которое приходит на ум, заключается в том, что объем виртуальной непрерывной памяти, выделяемой с помощью vmalloc() в ядре Linux, может быть больше в 64-битном режиме.

4

Кристоф и Поши заявили, что основные технические различия между 32- и 64-битными ОС «пользовательский опыт обычно сильно отличается от теории». На сегодняшний день 64-разрядные потребительские версии Windows (XP и Vista) имеют большие дыры в поддержке драйверов. У меня было много принтеров, сканеров и других внешних устройств, которые не работали с 64-битными версиями, которые прекрасно работают с 32-битными версиями. Это устройства с 64-разрядными драйверами, и они по-прежнему не будут работать. На этом этапе я бы порекомендовал вам держаться подальше от всего, что основано на потребителях, то есть от 64-разрядной версии от Microsoft, пока вы не услышите о том, как Windows 7 справляется с этим, от реальных конечных пользователей, а не только от фанатов, которые в настоящее время имеют к нему доступ. Дайте ему как минимум 6 месяцев и посмотрите, что испытывают люди. Лично я буду устанавливать 32-разрядную версию Windows 7, так как мои 64-разрядные версии Vista - это дорогая бумага, которую я перестал использовать несколько лет назад и вернулся к 32-разрядной версии XP.

2

Некоторые игровые программы используют представление битовой доски . Шахматы, шашки и Отелло, например, имеют доску 8x8, то есть 64 квадрата, поэтому наличие как минимум 64 битов в машинном слове значительно повышает производительность.

Я помню, как читал о шахматной программе, 64-битная сборка которой была почти в два раза быстрее 32-битной версии.

2

Термин 32-разрядный и 64-разрядный относится к способу обработки информации процессором компьютера (также называемым ЦП). 64-разрядные версии Windows обрабатывают большие объемы оперативной памяти (ОЗУ) более эффективно, чем 32-разрядные системы.

скорость может быть разной на мой взгляд

1

Для большинства практических целей вы, вероятно, не заметите разницу.

Для установки 64-разрядной операционной системы у вас должен быть 64-разрядный процессор (большинство процессоров за последние несколько лет).

У 64-битной операционной системы есть несколько преимуществ:

  • Это позволит вам использовать более 4 ГБ ОЗУ (максимальное число, которое вы можете адресовать в 32-битной ОС, составляет 2 ^ 32 = 4 ГБ)
  • Это полезно для работы с большими наборами данных (например, в Excel) и некоторыми вычислительными задачами (например, Photoshop и большие файлы)
  • Вы можете запустить только 64-битную программу на 64-битной ОС, но вы можете запустить 32-битную программу на обеих (имейте в виду, что многие программы выполняются как обе, так что не так уж много 64-битных программы).

В большинстве случаев 64-разрядные программы используют немного больше памяти, но для персонального компьютера это обычно не замечается.

1

Еще один момент, связанный с Microsoft Windows, заключается в том, что на протяжении многих лет существовал Win32 API, который предназначен для 32-разрядных операционных систем и не оптимизирован для 64-разрядной компиляции. Когда я пишу несколько DLL для своих приложений, я обычно компилирую в Win32, который не является 64-битной версией вещей. До Vista не было много успешных 64-битных версий Windows, я считаю, что там, где я работаю, моя новая машина имеет 4 ГБ ОЗУ, но я все еще использую 32-битную Windows XP Pro, поскольку это известная стабильная операционная система. S относительно XP64 или Vista.

Я думаю, что вы можете также оглянуться назад, когда произошел переход с 16-битного на 32-битный, чтобы узнать больше подробностей о том, почему этот переход может иметь большое значение для некоторых людей. Критически важные приложения, которые компания может запускать на настольном компьютере, например небольшие учетные пакеты, могут не работать в 64-разрядной операционной системе, и, следовательно, необходимо поддерживать устаревшую машину, виртуальную или реальную.

Изменение размера адреса может иметь серьезные последствия и последствия.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .