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

72 просмотра

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

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

Крокант
Это как?

Как обычно, seL4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта