Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Туториалы по написанию "операционной системы" ;)

6.8K
24 августа 2006 года
legos
33 / / 13.11.2004
В наше время ещё встречаются люди, которым было бы интересно написать нечто похожее на операционную систему. Обычно сразу же возникает множество вопросов, на которые непросто найти ответы. Из-за этого, к сожалению, многие отступаются от такой интересной и полезной задачи, как OS Development.

Для того, чтобы интересующиеся могли легко разобраться в основах осеписания, я сделал несколько простеньких примеров написания оси.

------------------------------------------------------------------
ostut01/ - Простое ядро, загружается по адресу 0x100000 (1Мб).
Получает управление из grub, устанавливает собственную
таблицу дескрипторов (GDT) и выводит сообщение на экран.

ostut02/ - Большой набор улучшений. Инициализируется IDT, представлены
обработчики 0x00-0x20. IRQ переназначаются на адрес 0x20 и т.д.
Устанавливается обработчик прерывания от таймера (IRQ 0).
Работу обработчика таймера можно увидеть по выводимому символу в верхнем правом углу экрана.
Добавлена функция vsprintf() (нагло упёрта из linux-0.01 :) )
На основе этой функции реализован printk() (аналог printf() с некоторыми ограничениями)
Подробнее - см. исходные тексты.

ostut03/ - Пример страничной адресации памяти.
Написан простейший менеджер памяти.
Создаётся и заполняется каталог страниц. Монтируются все физически существующие страницы.
Для примера работы страничной адресации производится монтирование страницы видеопамяти (0xB8000) по адресу 0xF0000000 и тестовая запись по этому адресу.


ostut04/ - Невытесняющая аппаратная многозадачность.
Реализованы два процесса, работающих в 0 кольце.
Переключение задач происходит при помощи ljmp на селектор следующего процесса.
(видимо придётся упростить этот пример - слишком много лишнего кода написал)

В следующей версии планируется реализация вытесняющей многозадачности.
------------------------------------------------------------------

Прошу извинить за возможные (а как же без них?) ошибки. Если тема интересна - пишите.

Скачать версию 0.4 можно с http://fos.net.ru/ostuts/ostuts-0.4.tar.bz2
Последние версии искать здесь на http://fos.net.ru/
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог