Что происходит при установке> 4 ГБ ОЗУ на компьютер с 32-разрядной ОС?

10

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

Мне просто интересно, есть ли какие-нибудь инструменты, которые позволили бы мне получить доступ к моему himem (Вы могли бы подумать, что мы уже обошли эту проблему).

Питер Тернер
источник
Проверьте этот альтернативный способ формулировки того же вопроса: superuser.com/questions/7964/where-did-the-other-8-gb-of-ram-go
оттуда
Спасибо, вот и хороший ответ, возможно, мне просто придется закрыть этот вопрос. serverfault.com/questions/3342/…
Питер Тернер

Ответы:

20

Если у вас есть процессор с расширением физического адреса (что вы, вероятно, делаете) и правильная ОС ( например, не потребительская версия Windows, он использует PAE, но ограничен 4 ГБ ), тогда память можно отобразить и использовать как обычно. В противном случае память просто не будет адресована, операционная система скажет вам, что у вас есть сколько угодно больших микросхем, но они просто не будут добавлены к объему памяти, к которому вы можете получить доступ.

Майк Маккуэйд
источник
3
Почему обычные версии Windows не поддерживают PAE? Еще одна причина использовать Linux ...
Zifre
1
Потому что 64-битные / серверные версии стоят дороже.
Мартин Беккет
2
Даже потребительские версии Windows поддерживают PAE - хотя они ограничены 4 ГБ (по соображениям совместимости и маркетинга). (PAE по-прежнему используется для функции «Предотвращение выполнения данных».)
user1686
3
@Zifre, многие ориентированные на потребителя драйверы не могут справиться с PAE и> 4 ГБ ОЗУ в Windows. Таким образом, включение PAE часто приводит к таинственным сбоям, и поэтому оно используется только для серверных выпусков, где, по-видимому, вы будете устанавливать драйверы более высокого качества, рассчитанные на большие объемы памяти.
bdonlan
bdonlan: PAE также включен в потребительских версиях, из-за этого у них просто искусственный лимит в 4 ГБ.
user1686
1

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

Mandroid
источник
За исключением того, что не все реальное адресное пространство обязательно выделено физической памяти.
Джейсон С
Извините, я имел в виду более 4 ГБ, просто что-то в диапазоне более 2 ^ 32.
Питер Тернер
1

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

Джейсон С
источник
1

Зависит от того, какую 32-битную ОС вы имеете в виду!

Конечно, в современных операционных системах вы можете подключить столько, сколько ваша материнская плата может взять без проблем (хотя вы, возможно, не сможете использовать все это), но это было не всегда так, по крайней мере с Windows:

Ошибка в Windows 95, 98, SE и ME возникает, если у вас установлено более 512 МБ памяти.

http://answers.google.com/answers/threadview/id/333688.html

Фактор Мистик
источник
0

Первое, что нужно понять, это то, что современные компьютерные системы используют виртуальную память. Вы можете иметь 32-битные виртуальные адреса для приложений, имея более 32-битные физические адреса.

Второе, что нужно понять, - это то, что физическое адресное пространство используется для различных целей, наиболее важными из которых являются основной оперативной памяти и периферийные устройства с отображением в памяти. В частности, видеокарты часто имеют большие области отображения памяти. В результате, если у вас есть только 4 ГБ доступного физического адресного пространства, вы можете получить значительно меньше, чем 4 ГБ оперативной памяти. Обычно используется около 3,5 ГБ, но я видел системы, где оно было всего 2,5 ГБ.

На ПК для поддержки более 4 ГБ физического адресного пространства используется механизм, называемый PAE. Для этого нужно несколько вещей.

  1. Процессор должен поддерживать это.
  2. Чипсет должен его поддерживать.
  3. BIOS должен поддерживать это.
  4. ОС должна его поддерживать.

Процессоры поддерживают PAE целую вечность, это не проблема.

Многие старые чипсеты были ограничены 4 ГБ физического адресного пространства. Чипсеты IIRC Intel для ноутбуков получили поддержку более 4 ГБ адресного пространства с поколением «Санта-Роса» в 2007 году. Я не уверен насчет настольных чипсетов, но ожидаю, что это было примерно в то же время. Чипсеты для рабочих станций и серверов, очевидно, получили поддержку гораздо раньше.

Afaict BIOS'ы в основном поддерживают его, если есть чипсет. Не удивил бы меня, если бы были некоторые исключения.

ОС тернистая. Linux и Windows поддерживают PAE целую вечность. К сожалению, поскольку Windows XP с пакетом обновления 2 MS искусственно ограничил физическое адресное пространство до 4 ГБ. Они утверждают, что сделали это из-за глючных драйверов, циники заподозрили, что сделали это, чтобы заставить людей покупать серверные версии.

В Windows XP это встроено в ядро ​​и в принципе не может быть отменено. Однако в более поздних версиях это может быть обойдено с некоторыми незначительными взломами ядра. Смотрите https://wj32.org/wp/ для подробностей.

plugwash
источник