Джефф рассказывал об этом некоторое время назад в его блоге в терминах 32-битной Vista.
Применяется ли тот же предел памяти 32 бит 4 ГБ, который применяется в 32-битной Vista, к 32-битной Ubuntu? Существуют ли 32-битные операционные системы, которые творчески решили эту проблему?





Теоретически такая проблема есть во всех 32-битных ОС. У вас есть 32 бита для адресации.
2^32 bits / 2^10 (bits per kb) / 2^10 (kb per mb) / 2^10 (mb per gb) = 2^2 = 4gb.
Хотя есть несколько способов обойти это. (Посмотрите на скачок от 16-битных вычислений к 32-битным вычислениям. Они сталкиваются с той же проблемой.)
Linux поддерживает технологию PAE, которая позволяет использовать более 4 ГБ памяти, однако я не знаю, включена ли она по умолчанию в Ubuntu. Возможно, вам потребуется скомпилировать новое ядро.
Обновлено: некоторые темы на форумах Ubuntu предполагают, что ядро сервера имеет PAE по умолчанию, вы можете попробовать его установить.
не нужно его компилировать, просто установите пакет.
Да, 32-битный ubuntu имеет такие же ограничения памяти.
Есть исключения из ограничения 4 ГБ, но они зависят от приложения ... Как и в случае, Microsoft Sql Server может использовать 16 ГБ с настроенными и поддерживаемыми «Расширениями физического адреса» [PAE] и ... тьфу http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=3703755&SiteID=17
Кроме того, драйверы в ubuntu и Windows уменьшают объем памяти, доступной из адресного пространства 4 ГБ, отображая память из этих 4 ГБ на устройства. Видеокарты особенно плохо справляются с этим, ваша видеокарта на 256 МБ использует не менее 256 МБ вашего адресного пространства ...
Если вы можете [ваши драйверы поддерживают это, а процессор достаточно новый], установите 64-битную ОС. Ваши 32-битные приложения и игры будут работать нормально.
Это не совсем правда. 32-битные приложения и игры В большинстве своем работают нормально - в ТЕОРИИ. На практике это огромная проблема.
Это неверно. 32-разрядная версия Ubuntu с одним из ядер PAE_enabled поддерживает более 4 ГБ физической памяти. Однако по-прежнему существуют ограничения для каждого процесса.
Да, использование более 4 ГБ ОЗУ в 32-битном режиме требует сопоставления и отмены сопоставления файлов в / dev / shm или некоторых других ramfs или tmpfs.
Что ж, с Windows есть что-то под названием PAE, что означает, что вы можете получить доступ к 64 ГБ памяти на машине с Windows. Обратной стороной является то, что большинство приложений не поддерживают фактическое использование более 4 ГБ ОЗУ. Лишь небольшое количество приложений, таких как SQL Server, запрограммировано на использование всей дополнительной памяти.
PAE - это способ, которым ОС может получить доступ к более чем 4 Гб физической памяти. Linux тоже поддерживает это. Это не позволяет приложениям использовать более 3 Гб адресного пространства. Windows предоставляет приложениям, таким как SQL-сервер, неприятный способ использовать больше памяти, чем это; Ничего подобного для linux я не знаю.
На сервере Ubuntu в ядре включен PAE, в настольной версии эта функция не включена по умолчанию.
Это, кстати, объясняет, почему сервер Ubuntu не работает в некоторых аппаратных эмуляторах, тогда как настольная версия работает.
Похоже, вокруг PAE есть некоторая путаница. PAE - это «расширение адреса страницы» и ни в коем случае не является функцией Windows. Это хитрость, которую Intel внедрила в свои процессоры Pentium II (и новее), чтобы позволить машинам получить доступ к 64 ГБ памяти. В Windows приложения должны явно поддерживать PAE, но в мире с открытым исходным кодом пакеты могут быть скомпилированы и оптимизированы по своему вкусу. Пакеты, которые могут использовать более 4 ГБ памяти в Ubuntu (и других дистрибутивах Linux), скомпилированы с поддержкой PAE. Сюда входит все программное обеспечение для конкретного сервера.
Действительно есть некоторая путаница, и вы не улучшаете ее. PAE не делает ничего, чтобы позволить приложениям получить к нему прозрачный доступ. И действительно, как это могло быть? Имея всего 32 бита в вашем адресном регистре, доступ к более чем 4 ГБ потребует поддержки приложений.
Стандартный способ обойти это - использовать PAE для предоставления 36 битов для адресации.