Может ли 32-битная ОС работать в 64-битном процессоре?

в чем разница между 32-разрядной и 64-разрядной ОС? Может ли 32-битная ОС работать в 64-битном процессоре?

28
задан random
29.12.2022 5:20 Количество просмотров материала 2891
Распечатать страницу

4 ответа

ваш вопрос зависит от архитектуры. x64 по существу является расширением архитектуры x86. Он поддерживает 64-битное адресное пространство. В нем содержатся некоторые новые инструкции и новые регистры.

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

32
отвечен Mehrdad Afshari 2022-12-30 13:08

64-разрядный процессор может работать как на 32, так и на 64 ОС (по крайней мере, x64). 32-битный процессор может работать только 32 встроенной.

разница составляет в основном о размере указателя / ссылки. На 64-битных машинах вы можете ссылаться на адрес в 64-битном диапазоне адресов (что дает вам 2^64 байта памяти). На 32 бит можно только 2^32 байт (=4 ГБ). Теперь, если вы посмотрите на текущих компьютерах очевидно, почему мир движется к 64 бит: 32 бит не может легко адрес больше никакого ОЗУ.

на x64 (AMD/Intel) у вас есть дополнительные преимущества 64 бит. Процессор имеет больше регистров и, таким образом, позволяет более эффективный код.

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

14
отвечен terdon 2022-12-30 15:25

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

в былые времена, когда процессор, когда люди использовали чтобы сесть и сплести (обернуть) провода между процессором и памятью, вам пришлось бы использовать либо 32, либо (теоретически, потому что в то время их не существовало) 64 провода между процессором и контроллером памяти, которые будут использоваться для указания адреса памяти, к которому вы хотите получить доступ. К примеру, допустим у нас есть 2-разрядная архитектура памяти: отправив 00 выберите адрес 0, 01 выбрать адрес 1, 10 будет выбрать адрес 2 и 11 будет выбрать адрес 3. Этот 2-бит дает нам 2^2 байты ОЗУ (4 байта).

Если взять 32-битный процессор и добавить на 32 больше проводов между ЦП и контроллер памяти, так что вы волшебным образом способен поддерживать больше памяти, теперь у вас есть "64-битный процессор", который может запускать 32-битный код или 64-разрядный код. Что это значит и как это происходит? Ну, давайте возьмем наш 2-битный процессор из более ранней части этого ответа и добавим еще один провод, превратив его в 3-битный процессор, принимая нас от 4 байт до 2^3 или 8 байт ОПЕРАТИВНАЯ ПАМЯТЬ.

будет запущен существующий "2-байтовый" код, устанавливающий значения последних 2-х проводов, как указано выше (00-11). Мы провода лишние соединения, чтобы ноль по умолчанию, так собственно и при 2-байтовый код выполняется, когда он отбирает 00, это на самом деле выбрав 000 и когда она выбирает 11, это на самом деле выбора 011. Легкий.

теперь программист хочет написать "родной" 3-байтный код и пишет свое программное обеспечение, чтобы воспользоваться дополнительным адресным пространством. Она говорит CPU, что она знает что она делает и что она возьмет на себя ручное управление новыми, дополнительными проводами. Ее программное обеспечение знает о дополнительных проводах и правильно отправляет 000-111, предоставляя ей полный доступ к диапазону памяти, поддерживаемому этой новой архитектурой процессора.

но это не так, как это должно произойти. На самом деле, это нормально не как все произошло. Когда 64-битные процессоры были впервые введены (и их было много), все они пошли с совершенно новыми архитектурами/проектами. Они не просто лавировать на дополнительные 32 провода и сказать "держи, это 64-битный процессор можно использовать в 32-разрядном или 64-разрядном режиме," а они сказали: "Это наш новый процессор и это займет всего программирования в этой совершенно новой машиной язык, ведет себя в этой совершенно новой стороны, решает кучу разных проблем, гораздо более элегантно, чем старый х86/для i386 32-разрядных процессоров когда-либо делал, и это 64-битная архитектура. Повеселиться."

Это была история Intel Itanium, теперь известной как "Itanic", потому что, насколько массово она затонула. Он должен был возвестить в новую 64-битную эру, и это было что-то, чтобы созерцать. Инструкции переменной длины, огромные кэши, 64-битное адресное пространство, тонны регистров, супер захватывающее, супер круто, и супер трудно убедить всех перекомпилировать или переписать 20 лет устаревшего кода. Это было назад, когда AMD и Intel были на самом деле конкурирующих, и AMD была блестящая идея сказать: "Давайте забудем все это" решить все проблемы в мире " бизнес и просто добавьте еще 32 провода к i386 и сделайте 32-битный совместимый 64-битный процессор " и родилась архитектура процессора x86_64.

на самом деле, если вы посмотрите на имена ядра и источники для основных операционных систем (Linux, Windows, BSD и т. д.), Вы обнаружите, что они завалены ссылками на процессоры AMD64 и архитектуру AMD64. AMD придумала выигрышную стратегию, чтобы заставить всех переключиться на 64-битный мир, сохраняя при этом совместимость с 32-битными приложениями, таким образом, чтобы 32-битная ОС могла работать на 64-разрядном оборудовании или даже 32-разрядные приложения могут работать на 64-разрядной ОС на 64-разрядном оборудовании. Intel последовал люкс рано, а не поздно с их архитектурой" Intel EM64T " (который был в основном идентичен AMD64) и x86_64 выиграл в то время как Итаник и другие, как MIPS64 и ALPHA64 не видели больше на рынке настольных/сервер.

tl;DR amd64 aka x86_64 процессоры разработаны, чтобы быть совместимыми как с 32 -, так и с 64-разрядным ядром и кодом, но большинство 64-разрядных процессоров явно не обратная совместимость таким же образом. 32-разрядный процессор может получить доступ не более 4 ГБ памяти, в то время как 64-разрядный процессор может получить доступ к потрясающим 16 EiBs (16 × 1024^6 байт, или 4 млрд. раз больше памяти, чем 4GiB).

3
отвечен Mahmoud Al-Qudsi 2022-12-30 17:42

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

-1
отвечен CsTamas 2022-12-30 19:59

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх