Принцип управления памятью используется Linux

Они - пережиток от Unix. Пространство памяти и дисковое пространство были в дефиците. Вырубание нескольких гласных и других сокращений дало реальные сбережения. Несколько дисковых блоков или несколько байтов могли означать различие в способности запустить программу или нет. (Я когда-то должен был обрезать программу на 24 байта, прежде чем она будет работать.)

Также, поскольку Tom отметил, что конечные скорости были медленными. 1 200 бодов были представлены как высокая скорость, и это было. Я работал с одной системой, которая использовала половину телетайпа скорости (55 бодов или 5 симв./с) как консоль.

В системах, выполняющих графические интерфейсы, обычно не имеет значения, что как средние пользователи не будет вводить по абсолютному адресу вокруг в них. Каталоги обычно хорошо документируются в hier страница справочника.

Переход на более длинные имена вызвал бы много проблем для существующих программ. Это также ограничило бы мобильность сценария. Соединение нескольких имен к тем же каталогам, вероятно, более сбивало бы с толку, чем полезный.

Править: PDP-7, на котором был разработан Unix, имел основную конфигурацию 4 кВт памяти и максимума 32 кВт. Слова, где 18 битов шириной. Вход был телетайпом, таким образом, скорость составляла вероятные 110 бодов или 10 сП, примерно 100 слов, который значительно медленнее, чем речь.

9
13.03.2011, 01:32
2 ответа

Linux использует обоих. Это использует сегментацию для отображения всего доступного адресного пространства при предоставлении различных прав доступа: в основном ядро и представление пространства пользователя. Вы можете grep исходный код Linux для KERNEL_DS (сегмент данных ядра) для некоторых примеров.

Подкачка страниц затем используется для реализации виртуальной памяти (Grep для "структуры gdt_page" в ядре для начальной точки)

7
27.01.2020, 20:06

Управление памятью в соответствии с Linux работает исключительно подкачкой страниц.

Linux поддерживает обоих "маленьких" (обычно 4 КБ) и "большой" (2M) страницы. Первый "просто работает" без Вас знание или выполнение чего-либо специального, и последний специальный режим потребности (должны быть зарезервированы во время начальной загрузки и отображены через специальное устройство).

Единственный контекст, в котором "сегмент" появляется в соответствии с Linux, является кирпичом () syscall, который используется для увеличения сегмента данных процесса (Вам обычно не будет нужно, это, malloc делает это без Вас имеющий необходимость заботиться). Но так или иначе, память прибывает в страницы и управляется на страницах, и она не имеет никакого отношения к x86 сегментации.

6
27.01.2020, 20:06
  • 1
    X86 была устаревшей, когда i386 вышел. Linux никогда не использовал сегментацию для управления памятью. Некоторые производные как ЛОСИ и (возможно) uClinux могли бы. –  LawrenceC 13.03.2011, 01:55

Теги

Похожие вопросы