OSDev

для всех
Текущее время: 27 дек 2024, 21:36

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Story OS
СообщениеДобавлено: 26 апр 2007, 19:11 

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

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Story OS
СообщениеДобавлено: 27 апр 2007, 19:16 

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Story OS
СообщениеДобавлено: 28 апр 2007, 17:59 

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

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

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

Сделал.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Story OS
СообщениеДобавлено: 02 май 2007, 14:34 

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Story OS
СообщениеДобавлено: 02 май 2007, 17:26 

Зарегистрирован: 01 май 2007, 19:12
Сообщения: 12
Странно это все на консоль тратить 10 метров,ты видел Миракуликс Ос,так там ясно на что идет 22 метра рам а у тебя?)))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Story OS
СообщениеДобавлено: 02 май 2007, 17:57 

Зарегистрирован: 27 апр 2007, 22:51
Сообщения: 75
у меня зоздается 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:
}
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Story OS
СообщениеДобавлено: 02 май 2007, 18:17 

Зарегистрирован: 02 май 2007, 14:25
Сообщения: 126
Ёлки, да ещё и на асме! Если будешь продолжать в таком духе, то дальше будет сложнее и сложнее ядро развивать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Story OS
СообщениеДобавлено: 02 май 2007, 18:20 

Зарегистрирован: 27 апр 2007, 22:51
Сообщения: 75
это стандартные алгоритмы их в библиотеке интела можно найти (но я не оттуда выдрал)
в виндовозе их можно найти под именем InterlockedPopEntrySList и InterlockedPushEntrySList, в линуксе тоже но со словом Atomic...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Story OS
СообщениеДобавлено: 02 май 2007, 19:27 

Зарегистрирован: 26 апр 2007, 16:22
Сообщения: 67
После исправлений минимальные требования к памяти уменьшились до ~3Mb


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Story OS
СообщениеДобавлено: 03 май 2007, 22:39 

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB