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/ |