прерывания и планировщик

Тема в разделе "WASM.OS.DEVEL", создана пользователем Hell_Knight, 10 окт 2010.

  1. shm

    shm New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2010
    Сообщения:
    93
    вот готовый конфиг для загрузки с дискеты (если грузишься из образа - делай соотв. поправки)
    PS: файл имеет обычный текстовый формат
     
  2. shm

    shm New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2010
    Сообщения:
    93
    файл bochsrc.bxrc:

    megs: 512
    floppya: 1_44=A:
    log: shmdos32.log

    просто создай файл с таким расширением и копай туда эти три строчки обычным блокнотом
     
  3. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    По поводу стека. Естественно в ss нужно записать селектор сегмента данных. Указатель стека esp можно использовать тот же самый при условии, что значение кратно 4, а в старшем слове в RM было нулевое значение. Лично я во время инициализации и в RM, и в PM использую один и тот же стек.

    Bochs настраивается элементарно. В нем есть пример конфигурационного файла с достаточно подробными комментариями.
     
  4. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Нафига 512 метров? Автору до ос с такими потребностями еще далеко :)
     
  5. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    В grub компилировать конечный конфиг. файл не нужно. Скрипты используются для генерации конечного конфиг. файла, но его можно не генерировать, а написать вручную.
     
  6. shm

    shm New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2010
    Сообщения:
    93
    Real machine:) Ни и пусть на будущее все равно бочс не выделит ничего лишнего(в отличии от вмво). А вообще я просто взял конфиг моей ОС, там память нужна в частности для отладки GUI, декодирования больших жепегов, etc.

    Единственный, но очень большой минус бочс - это то, что он крайне медленно работает. Для начальной отладки маленького ядра скорость и не нужна. Да в общем-то и наплевать бы на скорость работы если бы не скорость чтения с диска, у меня ОС со всеми потрохами всего несколько сот килобайт - не дождешься пока загрузится, поэтому и приходится использовать вмво, хотя если уже обработка исключений отлажена, то в большинстве случаев можно и даже лучше отлаживаться из самой ОС ну например писать отдельные автономные функции вывода и переключать видео режим через порты в какой-нить стандартный.
     
  7. shm

    shm New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2010
    Сообщения:
    93
    grub использовать для написания своей ОС для интереса на мой взгляд как то странно т.к. он уже по сути содержит в себе мини-ядро, насколько мне известно уже и в PM сам переводит, тогда ядро запускаемой ОС становится далеко не полностью самостоятельным. Хотя конечно можно, да и придется всё поменять (GDT, IDT, etc...), но тогда зачем его использовать?
     
  8. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Слепки памяти труднее просматривать. Про grub согласен, хотя к примеру Линукс его использует без проблем. В принципе grub может грузить и модули реального режима, а также просто бутсекторы. Структурно grub 2 действительно сильно смахивает на ОС. Многие любительские ОС до него не дотягивают. Хотя он однозадачный.
     
  9. Hell_Knight

    Hell_Knight New Member

    Публикаций:
    0
    Регистрация:
    3 ноя 2009
    Сообщения:
    51
    ну я как бы делал таки настройки(всё остальное по умолчнанию):
    edit options -> Disk options -> boot options ->
    Boot drive #1 = disk (Hard)
    32-bit OS Loader Hack:
    OS to Load: nullkernel
    pathname of OS: путь до файла-жесткого диска (у меня ОС сразу на жестком диске, всмысле в файле)
    pathname of I/O: хз, что это, но написал путь там где оська, только добавил еще под-папку...
    pathname of initrd: тоже хз, что это ну тоже указал в ту папку...
    далее вернулся назад и запустил эмуляцию, и ошибка в программе...
    вылетел
    что-то я не то указал наверное...
    подскажите, что я не то сделал

    З.Ы. мануалы читаю)
     
  10. Hell_Knight

    Hell_Knight New Member

    Публикаций:
    0
    Регистрация:
    3 ноя 2009
    Сообщения:
    51
    друзья!
    Я встроил одну очень полезную функцию...
    которая может выводить значения регистров на экран (рисовать их)
    могу сообщить какими значениями проинициализированы конкретные регистры
     
  11. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.546
    Адрес:
    Russia
    Hell_Knight
    Давайте. Потом научитесь дампы памяти выводить. Но зачем?) В том же qemu это опции эмулятора и он все сам выдает, по команде.
     
  12. Hell_Knight

    Hell_Knight New Member

    Публикаций:
    0
    Регистрация:
    3 ноя 2009
    Сообщения:
    51
    фух, я всё таки смог запустить под boch)
    у меня есть лог-файл
     
  13. Hell_Knight

    Hell_Knight New Member

    Публикаций:
    0
    Регистрация:
    3 ноя 2009
    Сообщения:
    51
    Итак!
    Проблема оказалась в том, что GDTR указывал на адрес, не адаптированные к страничной адресации