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

Я тут пытаюсь переработать архитектуру подсистемы памяти ядра во что-то

осмысленное. Есть pmm, который создает набор range’ей(пока что только для ядра, потом для юзерспейса), range - адрес, длина и битмап, далее vmm, который маппит адрес в виртуальный и далее мне нужно два ядровых аллокатора, первый для аллокаций при инициализации(пока init-процесс не начался), второй уже для kernel-процессов. Второй, как мне кажется, должен работать над абстрацией, что-то вроде vm_area или vmobject, так как он хоть ядровый, но процесс, а вот первому, кажется, достаточно просто куска памяти(и вероятно, даже не нужно его переводить в higher-half, просто 1МБ статически выделить). Насколько такая архитектура валидна?
Т.е. pmm(bitmap) -> vmm(mapping) -> vm_area(allocator) -> mmap -> kmalloc(block) // примерно по такому же флоу должен идти user-space, просто mmap в виде сискола
и
static 1mb -> premalloc(block)

19 ответов

46 просмотров

Есть классная идея, когда ядро ваще не аллоцирует память, оченно рекомендую.

Архитектура валидна, если работает, так что почему б не попробовать и не понять насколько это тебе подходит?

Evg-Resh Автор вопроса
ᛒ ᛖ ᚱ ᚲ ᚢ ᛊ ᛞ ᛖ ᚲ ᛖ ᚱ
Архитектура валидна, если работает, так что почему...

Мне скорее хочется научиться как правильно, а не просто завести это, но хорошо, спасибо)

Evg Resh
Мне скорее хочется научиться как правильно, а не п...

правильно зависит от того чья идеология построения ОС ближе

Evg Resh
Мне скорее хочется научиться как правильно, а не п...

Как правильно, такого нету. Есть правильно под твои конкретные требования.

disba1ancer
это наверняка ещё сложнее чем когда в ядре

неа, реализация одинаково сложная

Boris Vinogradov
неа, реализация одинаково сложная

обычный набор аллокаторов не получается, так тут ещё и вне ядра

disba1ancer
обычный набор аллокаторов не получается, так тут е...

я думаю тут проблема в том что не хватает простых знаний для создания сколь угодно простого программного продукта

Boris Vinogradov
я думаю тут проблема в том что не хватает простых ...

просто если из ядра убрать аллокатор возникает вопрос "а где ядру брать память?"

disba1ancer
просто если из ядра убрать аллокатор возникает воп...

этот вопрос возникает если алокатор внутри

disba1ancer
просто если из ядра убрать аллокатор возникает воп...

Ну в сел4 это решено просто - ядру не надо брать память, отличное решение.

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

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

$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
И ещё вопрос: можно ли типа как на дос как-то запариться и с помощью прерываний выводить текст, вместо функции printf ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
34
Ладно, ещё тупого спрошу. Код должен банально вывести значение регистра на консоль, на деле же не выводя ничего, просто оставляя нерабочую консоль (открыта, ничего не написан...
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
25
здравствуйте. пытаюсь проверить, содержится ли в десятичном представлении инта некоторая цифра. совершаю: strstr(x, "5") != NULL) получаю ошибку с фото (заведомо неработающий ...
Катя Шевчук🪇
18
Что там вообще с кроссплатформенностью?
🄼🄰🄺🅉🄰🄸
23
Доброй ночи. Вопрос знатокам. Имеется некая таблица, результат которой выведен в DBGrid на форме. И есть форма, с помощью которой можно как добавить запись, так и отредактиров...
Евгений
28
Ребята. Этот вопрос мучает меня уже 13 - 15 лет. Почему при валидации в ФормЛистере у поля phone поведение странноватое и отличается от других? А именно, вот набор правил д...
Андрей [aharito] Харитонов
1
{ char buff = *start; *start = *end; *end = buff; } Из-за этой строчки? Что каждый символ через перем бафф? Как вариант использовать другие со...
Wenks
12
а всё почему? потому что ассемблер в отличии от яву порождает множество пагубных привычек, среди которых например можно отметить использование глобальных переменных для всего ...
Mixail Frolov
35
Кстати, а я вот тут подумал. Допустим, у нас имеется цикл который выполняет огромное количество итераций, но мы хотим, чтобы какие-то действия исполнилось только один раз. В Я...
The Bird of Hermes
23
Карта сайта