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 ответов

45 просмотров

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@Aiwan что такое база образца?
Alexey
27
Не многие знают, а кто знает, тот уже успел забыть, что в далёком 2004 году эта игра произвела настоящий фурор, настолько революционной была технология, применяемая для её соз...
ICCID
4
коллеги, добрый вечер! А никто не знает как модальная форма может себя закрыть? Ну допустим модальная форма определила, что смысла ей работать нет и хочет вернуть modalResult...
Михаил
83
Короче я тут узнал полный пиздец Что кучу постов которые я создавал через posted Спустя время не могу редактировать и менять Мол телега возвращае ошибку Это реально так ...
inc.
13
Хотя у меня сейчас есть более сложная задача, вот её думаю: как объяснить челу переходного возраста противоположного полу, обучающегося в польском колледже (а-ля наш техникум)...
Вячеслав Кузьменко
15
а сколько всего в IT умерло? Где флеш-игры, их было туча, где они все? Сегодня технология есть, а завтра вжух и мёртвая. Этот wasm сильно напоминает джавовские апплеты, silver...
Constantin F.
5
Добрый день Хочу начать обучение языку, не являюсь представителем it, буду благодарна за помощь, совсем пока не понимаю ничего) Подскажите, пожалуйста, где можно начать первы...
Sara Lala
30
а вы в курсе, что Initialize() не работает? var arr123: array[0..123] of Byte; ... Initialize(arr123, SizeOf(arr123));
Iluha Companets
8
что читать по делфи?вообще 0 в нем
fd dsds
9
верно что я могу удалить эти addq и subq т.к. со стеком никакого взаимодействия нет (исключая call)?
Michael
16
Карта сайта