32-битное максимальное адресное пространство Ubuntu

Джефф рассказывал об этом некоторое время назад в его блоге в терминах 32-битной Vista.

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
0
5 033
6

Ответы 6

Теоретически такая проблема есть во всех 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-битным вычислениям. Они сталкиваются с той же проблемой.)

Стандартный способ обойти это - использовать PAE для предоставления 36 битов для адресации.

ChrisInEdmonton 10.11.2009 19:09

Linux поддерживает технологию PAE, которая позволяет использовать более 4 ГБ памяти, однако я не знаю, включена ли она по умолчанию в Ubuntu. Возможно, вам потребуется скомпилировать новое ядро.

Обновлено: некоторые темы на форумах Ubuntu предполагают, что ядро ​​сервера имеет PAE по умолчанию, вы можете попробовать его установить.

не нужно его компилировать, просто установите пакет.

ctrl-alt-delor 14.02.2012 13:28

Да, 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-битные приложения и игры В большинстве своем работают нормально - в ТЕОРИИ. На практике это огромная проблема.

Sam Axe 05.05.2009 06:10

Это неверно. 32-разрядная версия Ubuntu с одним из ядер PAE_enabled поддерживает более 4 ГБ физической памяти. Однако по-прежнему существуют ограничения для каждого процесса.

ChrisInEdmonton 10.11.2009 19:08

Да, использование более 4 ГБ ОЗУ в 32-битном режиме требует сопоставления и отмены сопоставления файлов в / dev / shm или некоторых других ramfs или tmpfs.

Zan Lynx 03.02.2011 02:49

Что ж, с Windows есть что-то под названием PAE, что означает, что вы можете получить доступ к 64 ГБ памяти на машине с Windows. Обратной стороной является то, что большинство приложений не поддерживают фактическое использование более 4 ГБ ОЗУ. Лишь небольшое количество приложений, таких как SQL Server, запрограммировано на использование всей дополнительной памяти.

PAE - это способ, которым ОС может получить доступ к более чем 4 Гб физической памяти. Linux тоже поддерживает это. Это не позволяет приложениям использовать более 3 Гб адресного пространства. Windows предоставляет приложениям, таким как SQL-сервер, неприятный способ использовать больше памяти, чем это; Ничего подобного для linux я не знаю.

Mark Baker 13.10.2008 19:28

На сервере Ubuntu в ядре включен PAE, в настольной версии эта функция не включена по умолчанию.

Это, кстати, объясняет, почему сервер Ubuntu не работает в некоторых аппаратных эмуляторах, тогда как настольная версия работает.

Похоже, вокруг PAE есть некоторая путаница. PAE - это «расширение адреса страницы» и ни в коем случае не является функцией Windows. Это хитрость, которую Intel внедрила в свои процессоры Pentium II (и новее), чтобы позволить машинам получить доступ к 64 ГБ памяти. В Windows приложения должны явно поддерживать PAE, но в мире с открытым исходным кодом пакеты могут быть скомпилированы и оптимизированы по своему вкусу. Пакеты, которые могут использовать более 4 ГБ памяти в Ubuntu (и других дистрибутивах Linux), скомпилированы с поддержкой PAE. Сюда входит все программное обеспечение для конкретного сервера.

Действительно есть некоторая путаница, и вы не улучшаете ее. PAE не делает ничего, чтобы позволить приложениям получить к нему прозрачный доступ. И действительно, как это могло быть? Имея всего 32 бита в вашем адресном регистре, доступ к более чем 4 ГБ потребует поддержки приложений.

Mark Baker 13.10.2008 19:30

Другие вопросы по теме