Так что я программист, и я не полный идиот, поэтому я точно знаю, почему вы не можете получить доступ к памяти, где у вас нет указателей. Но я никогда не пробовал это, и я не думаю, что когда-либо буду, потому что это кажется большой тратой денег / времени.
Мне просто интересно, есть ли какие-нибудь инструменты, которые позволили бы мне получить доступ к моему himem (Вы могли бы подумать, что мы уже обошли эту проблему).
Ответы:
Если у вас есть процессор с расширением физического адреса (что вы, вероятно, делаете) и правильная ОС ( например, не потребительская версия Windows, он использует PAE, но ограничен 4 ГБ ), тогда память можно отобразить и использовать как обычно. В противном случае память просто не будет адресована, операционная система скажет вам, что у вас есть сколько угодно больших микросхем, но они просто не будут добавлены к объему памяти, к которому вы можете получить доступ.
источник
Все будет хорошо работать, так как 4 ГБ - это предел для 32-битного процессора. Вот статья, которая более глубока и показывает, что на 32-битной ОС вы можете установить и использовать гораздо больше, чем 4 ГБ.
источник
Полагаю, технически, если бы операционная система была хорошо спроектирована, вы могли бы использовать более 4 ГБ. Нет причин думать, что ОС с возможностями виртуальной памяти не может использовать 32-битные виртуальные адреса с 64-битными реальными адресами.
источник
Зависит от того, какую 32-битную ОС вы имеете в виду!
Конечно, в современных операционных системах вы можете подключить столько, сколько ваша материнская плата может взять без проблем (хотя вы, возможно, не сможете использовать все это), но это было не всегда так, по крайней мере с Windows:
http://answers.google.com/answers/threadview/id/333688.html
источник
Первое, что нужно понять, это то, что современные компьютерные системы используют виртуальную память. Вы можете иметь 32-битные виртуальные адреса для приложений, имея более 32-битные физические адреса.
Второе, что нужно понять, - это то, что физическое адресное пространство используется для различных целей, наиболее важными из которых являются основной оперативной памяти и периферийные устройства с отображением в памяти. В частности, видеокарты часто имеют большие области отображения памяти. В результате, если у вас есть только 4 ГБ доступного физического адресного пространства, вы можете получить значительно меньше, чем 4 ГБ оперативной памяти. Обычно используется около 3,5 ГБ, но я видел системы, где оно было всего 2,5 ГБ.
На ПК для поддержки более 4 ГБ физического адресного пространства используется механизм, называемый PAE. Для этого нужно несколько вещей.
Процессоры поддерживают PAE целую вечность, это не проблема.
Многие старые чипсеты были ограничены 4 ГБ физического адресного пространства. Чипсеты IIRC Intel для ноутбуков получили поддержку более 4 ГБ адресного пространства с поколением «Санта-Роса» в 2007 году. Я не уверен насчет настольных чипсетов, но ожидаю, что это было примерно в то же время. Чипсеты для рабочих станций и серверов, очевидно, получили поддержку гораздо раньше.
Afaict BIOS'ы в основном поддерживают его, если есть чипсет. Не удивил бы меня, если бы были некоторые исключения.
ОС тернистая. Linux и Windows поддерживают PAE целую вечность. К сожалению, поскольку Windows XP с пакетом обновления 2 MS искусственно ограничил физическое адресное пространство до 4 ГБ. Они утверждают, что сделали это из-за глючных драйверов, циники заподозрили, что сделали это, чтобы заставить людей покупать серверные версии.
В Windows XP это встроено в ядро и в принципе не может быть отменено. Однако в более поздних версиях это может быть обойдено с некоторыми незначительными взломами ядра. Смотрите https://wj32.org/wp/ для подробностей.
источник