Защищенный режим, разработка ОС, Документация, Обучалки...

Содержание


Микро ядро ОС

Мне было нечего делать и я начал потихоньку заниматься созданием ОС. Кажется, я все еще не плюнул на серьезные, сложные и глобальные проекты. ;))

Я пишу ОС с моим другом Геннадием Прощаевым. Мы консультируемся, обмениваемся мнениями и опытом. Вот его координаты:

Домашняя страница = http://www.chat.ru/~genapro
E-mail = genapro@chat.ru

На всякий случай, хотелось бы чтобы Вы запомнили, что :

Автор не может быть подвержен ответственности за любой вред причиненный его программой Вам, Вашему оборудованию, Вашим данным. Вы используете его программу на свой страх и риск!!!

Эта программа демонстрирует основны системного программирования в защищенном режиме.

Описание

- 32-х битный защищенный режим для 386+ процессоров
- Обработка исключений
- Обработка прерываний от клавиатуры и таймера
- Переключение задач (задачи 0-го и 3-го колец)

Системные требования

- 386-й или лучший компьютер
- EGA/VGA или лучшая видео система
- DOS 5.0 или лучший (без драйверов памяти таких, как HIMEM.SYS и EMM386.EXE) или Windows 9x загруженная в режиме Command Prompt Only mode

oskernel.zip - 28KB (TAsm 3.2+)

В начало



Обучалка по страничной адресации

Две версии программы (PAGING и NOPAGING) различаются только в одной детали. Первая устанавливает бит PG в регистре CR0 в "1", а вторая не делает этого. Результат разный. Программы пытаются рисовать одинаковым образом цветные рлосы на экране, но из-за того, что в программах работают различные режимы адресации, полосы на экране появляются в различном порядке в этих программах.

paging.zip - 33KB (TAsm 3.2+)

В начало



V86 монитор

Програма является примером монитора v86 режима. Она устанавливает V86 режим и запускает коммандный интерпретатор (COMMAND.COM). Сразу скажу, что в программе где-то есть ошибка, и она не работает на всех компьютерах.

Описание:

Проверено на Wolfenstein 3d ;-)

v86.zip - 28KB (TAsm 3.2+)

К сожалению, я обнаружил, что эта программа не всегда работает. Там должна быть ошибка, которую я не собираюсь исправлять, т.к. исходный текст большой и старый. Лучше посетите следующий сайт, т.к. представленные на нем примеры работы с v86 проще и действительно работают:

http://welcome.to/pmode - PMode Tutorials in C and Asm

В начало


COFF-утилиты

Представляю Вашему вниманию набор утилит, которые позволят Вам очень просто делать 32-х битные программы для защищенного режима (но не для DPMI), используя Си компилятор DJGPP и ассемблер NASM. Эти утилиты просто делают из объектных файлов типа COFF (".o") программы, содержащие уже настроенные указатели. Т.е. они делают простой аналог COM программы. Подобные программы очень просто загружать и запускать.

Краткое описание

Программа на ассемблере просто пишет до боли известное "hello world!" и завершается.

Программа на Си более продвинутая:

Скачать:

coffutil.zip - 180KB
coffutil_asm_demo.zip - 5KB
coffutil_c_demo.zip - 40KB

В начало



Загрузочные сектора, запускающие COM/EXE программы

Когда люди начинают писать какие-либо программы, которые должны автоматически загрузиться BIOS'ом с диска, они очень часто пытаются запихнуть кучу кода в маленький загрузочный сектор. Также часто они включают в код загрузочного диска инициализацию защищенного режима и каждая ошибка ведет к полной перезагрузке, т.к. опять же в маленький сектор не помещаются средства обработки исключений. При этом приходится запускать специальные программы для обновления загрузочного сектора после внесения очередных изменений в код. Не редко люди изобретают новые файловые системы или меняют расположение системных областей. Все это только усложняет процесс разработки, и не понятно зачем все таки люди в конечном счете сами себе усложняют жизнь. Ведь можно всего этого избежать.

Почему бы не написать эти сектора так, чтобы поддерживалась обычная FAT? Тогда бы диски оставались "правильными" и "видимыми" для системы, в которой Вы ведете разработку (DOS, Windows, ...). И почему-бы не сделать загрузочный сектор, способный загружать простые стандартные COM/EXE программы? Тогда можно было бы избежать многочисленных и неудобных изменений загрузочного сектора, и делать обычным образом такие же обычные COM/EXE программы и просто обновлять их на диске по мере надобности без использования специальных утилит для работы с самим загрузочным сектором.

Если Вам нравится эта идея, то мои сектора BootProg Вам придутся по вкусу, т.к. они превосходно справляются с задачей.

Текущаяя версия (1.2) поддерживает стандартные дискеты с FAT12 и жесткие диски с разделом FAT16. Обе разновидности (для FAT12 и для FAT16) я успешно протестировал.

Надеюсь, очевиден тот факт, что программы, которые будет загружать и запускать подобный загрузочный сектор не могут пользоваться сервисом MSDOS, т.к. на момент их загрузки MSDOS отсутствует в памяти компьютера. Программы должны пользоваться сервисом BIOS вместо MSDOS.

bootprog.zip - 50KB (NASM 0.98)

В начало



Разработка ОС для чайников - Загрузчик ОС

Несколько программистов, появляющихся в группе новостей alt.os.development, начало абсолютно новый проект - OS Development for Dummies (Разработка ОС для чайников). Загрузчик ОС является частью проекта. Эту часть выполнил я. Вы можете посетить официальный сайт проекта: http://www.mega-tokyo.com/osd. Последние версии загрузчика вы можете скачать отсюда. Если хотите почитать документацию о загрузчике - читайте.

В начало



Intel'овские документы по x86 and x87

Intel 80386 Programmer's Reference Manual +
Detailed Instruction List (232 KB)

Intel 80386 Programmer's Reference Manual (на русском) (216 KB)

Intel 80486 Programmer's Reference Manual (на русском) (523 KB)

Intel 80387 Programmer's Reference Manual (121 KB)

В начало


x86 Assembly Language Webring
This Site is Owned by: Alexei
Prev 5 Skip Prev Previous Next Skip Next Next 5 Random List

Jump to Ring Home