OSDev

для всех
Текущее время: 15 дек 2017, 11:19

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




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

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

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

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


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

Зарегистрирован: 26 апр 2007, 15:35
Сообщения: 366
Откуда: Saint-Petersburg
А зачем ОС так много памяти? Основа вроде требовала совсем мало памяти.


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

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


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

Зарегистрирован: 26 апр 2007, 15:35
Сообщения: 366
Откуда: Saint-Petersburg
Зарезервированы? Не стоит ли озаботится реализацией динамического выделения ресурсов заместо статического указания?

Цитата:
каждая Page Directory - еще +2Мб (нижние 512 страниц).

//Quark


Насколько я помню, на таблицы страниц для каждого нового процесса требуется ресурсов:

1 страница PageDir.
+1 страница PageTable на каждые 4 мегабайта памяти процесса (при использовании стандартных 4-килобайтных страниц)

Для таких процессов, как у _тебя_ в системе - на первых порах достаточно 8 килобайт на процесс.

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

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


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

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

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

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

Сделал.


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

Зарегистрирован: 26 апр 2007, 15:35
Сообщения: 366
Откуда: Saint-Petersburg
Хорошая экономия памяти получилась?


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

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


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

Зарегистрирован: 26 апр 2007, 15:35
Сообщения: 366
Откуда: Saint-Petersburg
Хм.. Над этим надо поразмыслить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: 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
Сообщения: 84
у меня зоздается 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:
}
}


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.

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


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

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


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

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