185 похожих чатов

А как правильнее выделить память под битмап для физического менеджера,

у меня в момент инициализации vmm передается mmap, из которого выделяются регионы, каждый регион инициализирует как раз pmm, но pmm’у нужен битмап, а в момент инициализации pmm никакого kmalloc’а нет? Сделать какой-то prekmalloc на маленьком регионе в начале?

30 ответов

58 просмотров

А зачем тебе "prekmalloc"?

по идее у тебя не будет посреди работы добавляться память

а у тебя вводные то какие?

Просто забери кусок памяти из первичной мемори мапы

Evg-Resh Автор вопроса
disba1ancer
а у тебя вводные то какие?

Вводные? Ну 32-битное ядро

Evg-Resh Автор вопроса
Berkus Decker
Просто забери кусок памяти из первичной мемори мап...

А есть какое-то общепринятое название для таких первичных аллокаторов, которые более не будут использоваться после инициализации vmm?

Evg Resh
Вводные? Ну 32-битное ядро

а кроме этого? включен ли mmu, если да, то как предлагается мапить страницы в твоей конфигурации

disba1ancer
что значит первичная мемори мапа?

Ну то что тебе груб даёт или кто-то

Evg Resh
А есть какое-то общепринятое название для таких пе...

Не-а, просто отгрызаешь кусок доступной памяти и всё.

Evg-Resh Автор вопроса
disba1ancer
а кроме этого? включен ли mmu, если да, то как пре...

Как раз в моменте включения mmu, беру мапа от граба, ищу регионы(мержу, если надо), отделяю регионы на ядровые и неядровые(ядровые находятся в 1 МБ после имаджа ядра), мапплю страницы в верхние адреса потом. Собственно, для отслеживания физических страниц в регионе нужна битмапа(при чем она может увеличиваться)

Evg-Resh Автор вопроса
Berkus Decker
Не-а, просто отгрызаешь кусок доступной памяти и в...

Спасибо, думаю просто статически выделю еще один МБ после имаджа кернела

Evg Resh
Как раз в моменте включения mmu, беру мапа от граб...

у меня немного другая проблема mmu уже включен, и мне надо инициализировать алокатор, из доступного это рекурсивная таблица страниц и карта физ памяти

Evg-Resh Автор вопроса
disba1ancer
у меня немного другая проблема mmu уже включен, и ...

А для чего использовать рекурсивную таблицу? Чтоб, если не хватит места в таблице, использовать следующую?

Evg Resh
А для чего использовать рекурсивную таблицу? Чтоб,...

так удобнее таблицей страниц управлять

Evg-Resh Автор вопроса
disba1ancer
так удобнее таблицей страниц управлять

А можете поподробнее рассказать? Я прочитал, но не совсем понял, как то, что последняя таблица будет указывать на первую поможет с управлением таблицей страниц

Evg Resh
А можете поподробнее рассказать? Я прочитал, но не...

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

Evg-Resh Автор вопроса
disba1ancer
смысл в том, чтобы последняя запись в самом верхне...

Т.е. становится циклической? И если кто-то захочет замаппить страницу на адрес, который pte[1028], то, фактически, это будет pte[3](Исходя из того, что размер таблицы 1024 страницы)?

Evg Resh
Т.е. становится циклической? И если кто-то захочет...

это сложно объяснить, это нужно попытаться понять

Evg Resh
Т.е. становится циклической? И если кто-то захочет...

вот тебе поясняющая картинка, предположим, что каждая страница вмещает 4 записи по 1 байту каждая, цифрами обозначены адреса, которыми управляют записи, физические страницы обозначены буквами, несложно заметить, что страница A нарисована дважды, она так нарисована для удобства восприятия, нужно просто помнить, что это одна и та же страница

Evg Resh
Т.е. становится циклической? И если кто-то захочет...

теперь подумай, что будет при обращении по адресу 60?

Evg-Resh Автор вопроса
Evg Resh
Обращение по адресу B?

да, только не по адресу, а к странице B

Evg Resh
Обращение по адресу B?

и что конкретно мы на ней увидим?

Evg-Resh Автор вопроса
disba1ancer
и что конкретно мы на ней увидим?

Не совсем понимаю, честно говоря. То, что находится на странице В. Т.е. мы пошли по циклу. Т.е. адрес 60 = 48, 64 = 52, и т.д. Так?

Evg Resh
Не совсем понимаю, честно говоря. То, что находитс...

смотри по картинке, у тебя есть числа - виртуальные адреса и буквы обозначающие страницу, диапазоны чисел мапятся в страницы, но не в другие адреса

Evg Resh
Не совсем понимаю, честно говоря. То, что находитс...

увидим, действительно то что находится на странице B

Evg-Resh Автор вопроса
disba1ancer
смотри по картинке, у тебя есть числа - виртуальны...

А, т.е. в рамках одной page directory, вся последняя таблица указывает на начало каждой из таблиц в pd

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

Обсуждают сегодня

@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Подобного рода ;Следующие три строки это директивы ассемблера, ;которые можно не задавать, т.к.работаем в Visual Studio. ;Символ ";" - это начало однострочного комментария ...
Егор Анелькин
3
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
еще вопрос, допустим мы создадим char массив из 10 элементов и присвоим ему через сканф 10 символов. и выведем все символы. Хотел спросить последний элемент /0 будет включать...
Anthem
11
открыть папку в проводнике: 1 - ShellExecute 2 - ExecuteProcess 3 - OpenDocument что лучше выбрать?
Alexey Kulakov
12
Изменение типа с SomeException на String и правда удобней @cheese_hs . А вот такой вариант насколько некрасив еще? loadConfigDB :: IO (Either String ConfigDataBase) loadConfi...
Camara
7
Где в Астане можно купить мясо для шашлыков?
Dancing Іңұқәһүғө
21
Карта сайта