|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.08.2008, 08:38 | #11 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Вот выкладываю все что у меня есть ну и новое ядро. Клава работает и экран в 85x20 в текстовом режиме. Ну значит можно тогда попробывать начать работу, например с винтом ? Правда, когда читал статьи разные почему то упомянулось, что через порты не всегда может все сработать. Как вы думаите ? p.s. и опять такие нужны прерывания
|
22.08.2008, 19:55 | #12 |
Пользователь
Регистрация: 07.08.2008
Сообщений: 33
|
Йопта, парень =)) Напросился
Извращенцем посвящается или как приписюлить к ОС прерывания БИОС 1. Зная, что положение обработчика БИОС-прерывания определяется его вектором (указателем на точку входа в обработчик), размер вектора равен 4 байта и вектора расположены в памяти последовательно начиная с 0х00000000, думаю не составит труда выяснить адрес конкретного обработчика. 2. Берём эмулятор (qemu подойдёт) и делаем дамп памяти с этого места. Сохраняем. 3. Дизасемблируем (А шо, у кого-то езь исходники БИОС-прерываний? - Делитесь.) сию весчь как 16-битный код. Уже хорошо, да? 4. Шаманим и переделываем под 32-битный код защищенного режима. Тут множество нюансов. К примеру, дальние прыжки. Допустим, нашли jmp 00ff:0fff. В защищенном режиме 00ff воспримется не как часть адреса, а как селектор. Правим. 5. Не дай Боже в обработчике встретим инструкцию вида int x - Шаг 1. 6. Утрём пот со лба, вознесём богам молитвы и дальше.. Теперь надо чтобы по инструкции int x в зашишенном режиме генерилось не исключение, а наше прерывание. А по возникновении ошибки, исключительной ситуации, наоборот. Вот тут вопрос об определении, как было сгенерированно прерывание, аппаратно или программно.. ВЫВОД: На <мужскую хениталию> вам фонарик на солнечных батарейках за 10000$? Прерывания обязательны, но аппаратные, а не программные. Нажата клавиша - на те прерывание (СИГНАЛ, если так будет яснее). В ответ уже писюлишь реакцию на нажатие, капишь? Программные прерывания возникают по инструкции int и есть ни что иное, как извращенный вызов процедуры (вот API чем вас не устраивает?). Ещё раз грю, забей! Делай пока получается - не получается что-то конкретное - пешы, разберёмся. Всё железо прийдётся программировать через порты. Вот список книг, которые я посоветовал бы почитать на эту тему М. Гук, Аппаратные средства IBM PC В. Несвижский, Программирование аппаратных средств в Windows В. Кулаков, Программирование на аппаратном уровне. Специальный справочник.
"... Раньше мы жили завтра, а теперь и сегодня - вчера
Вместо Роллингов - хакеры, вместо Битлов - юзера..." (с) Б.Г. |
23.08.2008, 10:33 | #13 |
Пользователь
Регистрация: 07.08.2008
Сообщений: 33
|
Впечатлило, правда на qemu не запустилось, так что надо пробовать на нескольких реальных компах и соответственно минимизировать асм-код как машиноспецифичный. GDT нужна будет другая, большего размера - для размещения дескипторов TSS, LDT, шлюзов задач и др. приблуд - ну это уж потом. Для клавы не плохо было бы организовать буфер (хотя бы на базе линейного статического массива), а так - очень даже кавайно
Накропал немного кода по bios32. Вот только примеров практического приложения окромя pci bios пока не нашёл. Покопаюсь в нете.
"... Раньше мы жили завтра, а теперь и сегодня - вчера
Вместо Роллингов - хакеры, вместо Битлов - юзера..." (с) Б.Г. Последний раз редактировалось drRobert; 23.08.2008 в 10:35. |
23.08.2008, 11:37 | #14 | |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
В смыслк
Цитата:
|
|
23.08.2008, 11:50 | #15 | |
Пользователь
Регистрация: 07.08.2008
Сообщений: 33
|
Цитата:
Код:
"... Раньше мы жили завтра, а теперь и сегодня - вчера
Вместо Роллингов - хакеры, вместо Битлов - юзера..." (с) Б.Г. |
|
23.08.2008, 11:57 | #16 |
Пользователь
Регистрация: 07.08.2008
Сообщений: 33
|
Шибко обрабатыватся буде? А во вторых, от клавы могут быть не только сообщения о нажатии, но и об отпускании и по-нормальному - добавлять их в очередь. Приложение будет смотреть её, выбирать нужные сообщения и по своему обрабатывать - тестовый редактор печатать, игра - перемещение персонажа. Ну это к примеру.
"... Раньше мы жили завтра, а теперь и сегодня - вчера
Вместо Роллингов - хакеры, вместо Битлов - юзера..." (с) Б.Г. |
23.08.2008, 13:00 | #17 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Я думаю сделать system.h в котором например
Код:
|
23.08.2008, 13:08 | #18 |
Пользователь
Регистрация: 07.08.2008
Сообщений: 33
|
Э-э-э.. Тут ещё кто езь? Ых.. Разумеется аллокатор памяти прийдётся писать. Память - ресурс, а управление ресурсами - одна из фундаментальных задач ос. Задачу запустить - надо выделить под неё память, файл прочитать - то же самое.. Как ни крутись, а попа сзади (вернее у тебя она ещё впереди =)) ). С классами советую не заморачиваться - во всяком случае сейчас, "пощупай" архитектуру: защ. режим, страничную адресацию, многозадачность, а потом уже с багажом знаний можно будет более основательно подойти к вопросам реализации.
"... Раньше мы жили завтра, а теперь и сегодня - вчера
Вместо Роллингов - хакеры, вместо Битлов - юзера..." (с) Б.Г. |
22.09.2008, 16:02 | #19 |
Новичок
Джуниор
Регистрация: 21.09.2008
Сообщений: 1
|
Ребята идея конешно хорошая, я както тоже пыталса в это вникнуть потом нарвался на один проэкт адрес сайта не помнюю но вот название ресурса ReactOS там кстате реализовываетса ОС с нуля и там уже есть продвижения есть исходный код самой системы полностью. Так что качайте и втыкайте )))
|
19.05.2009, 22:32 | #20 |
somewhere else
Участник клуба
Регистрация: 17.07.2008
Сообщений: 1,409
|
Глупый наверно вопрос но все же:
чем отличается img от простого бинарника и какой утилитой воспользоватся для создания img если я пишу на FASM?
"Тяжело в учении, легко в бою" - А.В. Суворов
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Объявление собственной глобальной процедуры | Gorin | Общие вопросы Delphi | 11 | 06.11.2007 17:49 |
РАЗРАБОТКА DLL | Leo | Общие вопросы Delphi | 2 | 26.10.2007 21:35 |
Разработка протокола | OrdJONY | Общие вопросы по программированию, компьютерный форум | 2 | 04.10.2007 13:21 |