OSDev
http://osdev.su/

Story OS
http://osdev.su/viewtopic.php?f=4&t=2
Страница 1 из 1

Автор:  whitequark [ 26 апр 2007, 19:11 ]
Заголовок сообщения:  Story OS

Story OS - микроядерная операционная система с объектно-ориентированным интерфейсом к сервисам. При разработке основное внимание уделяется: во-первых, удобству программирования драйверов и прикладных программ и во-вторых, стабильности системы в целом. Сайт системы http://story.osdev.ru. На сайте регулярно выкладываются новые версии системы. В ближайшее время появится документация.
Система работает на 32-разрядных процессорах Intel, начиная с 386. Для нормальной работы необходимо как минимум 10Мб памяти.
UPD: в версии 0.45 минимальный размер памяти уменьшен до 3 Мб

Скриншоты:
Изображение Изображение

Изображение Изображение

Автор:  whitequark [ 27 апр 2007, 19:16 ]
Заголовок сообщения:  Re: Story OS

ОС грузится по адресу 0x200000, два мегабайта зарезервированы под ядро и модули (уже 4) и каждая Page Directory - еще +2Мб (нижние 512 страниц). Получаем при загрузке с 3мя модулями 10мб.
Кстати, что подразумевается под основой?

Автор:  whitequark [ 28 апр 2007, 17:59 ]
Заголовок сообщения:  Re: Story OS

Цитата:
Для монтирования страниц ядра не нужно заново создавать PageTable в каждом новом процессе. Достаточно вписать в PageDir создаваемого процеса записи, указывающие на уже существующие PageTable ядра. (банально копировать первые 512 записей из существующего PageDir).

Спасибо, исправил.
Цитата:
При выполнении процессом запросов на выделение памяти - дополнительные PageTable создавать/добавлять динамически.

Я так и делаю.
Цитата:
Зарезервированы? Не стоит ли озаботится реализацией динамического выделения ресурсов заместо статического указания?

Сделал.

Автор:  sadko [ 02 май 2007, 14:34 ]
Заголовок сообщения:  Re: Story OS

У меня, например, для этого в системе выделяется пул физических страниц. Каждый дескриптор описывает физическую (!) страницу. Размер пула прямиком зависит от объёма ОЗУ и кратен размеру страницы. Всего существует три пула: каталогов, таблиц и самих страниц. Очень удобно, особенно при будущей реализации LRU или NFU. Но пока страничная адресация у меня не работает на полную мощь.

Автор:  Игорь [ 02 май 2007, 17:26 ]
Заголовок сообщения:  Re: Story OS

Странно это все на консоль тратить 10 метров,ты видел Миракуликс Ос,так там ясно на что идет 22 метра рам а у тебя?)))

Автор:  pushkoff [ 02 май 2007, 17:57 ]
Заголовок сообщения:  Re: Story OS

у меня зоздается 2 списка свободных страниц
один для обнуленных, второй для грязных

каждая страница имеет свой описатель, описатель пока содержит только ссылку на следующую страницу в списке...

для добавления страниц в список использую такие ф-ции

void slist_push(SLIST* slist, SLIST_ITEM* item)
{
__asm
{
mov esi, slist
mov ebx, item
mov eax, [esi] // top
mov edx, [esi+4] // seq
L1], eax // next = top
lea ecx, [edx+1] // new seq = seq + 1
lock cmpxchg8b qword ptr [esi]
jne L1 // Failed, retry! (edx] // top
mov edx, [esi+4] // seq
L1] // new top = top->next
lea ecx, [edx+1] // new seq = seq + 1
lock cmpxchg8b qword ptr [esi]
jne L1 // Failed, retry! (edx:eax now contain most recent seq:top)
L2:
}
}

Автор:  sadko [ 02 май 2007, 18:17 ]
Заголовок сообщения:  Re: Story OS

Ёлки, да ещё и на асме! Если будешь продолжать в таком духе, то дальше будет сложнее и сложнее ядро развивать.

Автор:  pushkoff [ 02 май 2007, 18:20 ]
Заголовок сообщения:  Re: Story OS

это стандартные алгоритмы их в библиотеке интела можно найти (но я не оттуда выдрал)
в виндовозе их можно найти под именем InterlockedPopEntrySList и InterlockedPushEntrySList, в линуксе тоже но со словом Atomic...

Автор:  whitequark [ 02 май 2007, 19:27 ]
Заголовок сообщения:  Re: Story OS

После исправлений минимальные требования к памяти уменьшились до ~3Mb

Автор:  pushkoff [ 03 май 2007, 22:39 ]
Заголовок сообщения:  Re: Story OS

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

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