OSDev
http://osdev.su/

Библиотека ядра
http://osdev.su/viewtopic.php?f=5&t=579
Страница 1 из 1

Автор:  achesnokov [ 04 июн 2012, 11:41 ]
Заголовок сообщения:  Библиотека ядра

Внутри ядра должно храниться N-ое количество разнообразных структур данных. Соответственно возникает необходимость распределения памяти внутри ядра. Кроме того ряд функций необходим для отладки.

Вопрос. Кто чем пользуется для распределения памяти в ядре, кто чем пользуется в качестве библиотеки ядра? Какие есть готовые варианты библиотек?

Автор:  Bargest [ 04 июн 2012, 13:24 ]
Заголовок сообщения:  Re: Библиотека ядра

Для динамического распределения памяти внутри ядра я использую самодельное выделение/освобождение памяти с использованием таблицы памяти.
Цитата:
Кроме того ряд функций необходим для отладки.

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

Автор:  SII [ 04 июн 2012, 17:30 ]
Заголовок сообщения:  Re: Библиотека ядра

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

Автор:  phantom-84 [ 04 июн 2012, 19:54 ]
Заголовок сообщения:  Re: Библиотека ядра

Распределение памяти в ядре сильно похоже на slab. Страницы различных таблиц могут перемешиваться в ВАП. Все писал сам.

Автор:  pavia [ 04 июн 2012, 20:11 ]
Заголовок сообщения:  Re: Библиотека ядра

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

SII писал что он использует стек как динамическую память. Такое тоже использую во вторичном загрузчике.

Автор:  SII [ 04 июн 2012, 21:27 ]
Заголовок сообщения:  Re: Библиотека ядра

Хм, где это я использовал стек как динамическую память?.. Стек -- это стек, годится только для временных данных, но никак не для управляющих структур и т.п., имеющих сравнительно большое время жизни.

Автор:  phantom-84 [ 04 июн 2012, 22:45 ]
Заголовок сообщения:  Re: Библиотека ядра

Я использую стек процессора для передачи данных из RM в PM, в частности в стеке передаются структуры, описывающие доступные для использования области физической памяти. Таблица свободных страниц физической памяти имеет стековую структуру, только растет вверх, а не вниз. Списки частично свободных блоков и списки свободных элементов в каждом блоке системных таблиц по сути являются динамическими стеками.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/