Парочка вопросов про биос

Тема в разделе "WASM.OS.DEVEL", создана пользователем ajak, 31 окт 2007.

  1. ajak

    ajak New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2007
    Сообщения:
    463
    1) Возможно ли добраться до биоса и изменить его из винды?
    2) Где взять официальные доки (очень люблю первоисточник) на все прерывания и функции биоса, клавиатура мышь и прочяя переферия?
    3) Все фызовы функций api в виндовз сводятся к обращению соответствующих функций в биосе?
     
  2. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    ajak
    1) Да.
    2) В интернете. Если тебе нужены дока на биос, то ищи
    "PhoenixBIOS 4.0 Programmer’s Guide Version 1.0". Все биосы похожи, но единого стандарта нет. Так что помимо этой доки лучше взять не официальные "Help" и "Interrupt List" от Ralf Brown
    3) Нет. Это обсалютная чушь. api это набор функций они не обязаны вызывать прерывания.
    Идем в глубь. Для общения с драйверами используются прерывания (винндовское прерывание). Но это всего лишь точка для перехода между уровнями привелегий, между кольцами защиты. Сейчас есть специальные команды для этого, так что прерывания не используются.
    Идем в глубь что там делает драйвер? Он общается с портами ввода/вывода и физическами адресами в памяти. Биос там не используется. Вернее как сказать не используется. В win98 октивно использовались, а в WinNT(Его последователях) уже нет савсем нет.

    Вот на начальном этапи загрузки ОС там да используются прерывания.
     
  3. ajak

    ajak New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2007
    Сообщения:
    463
    Спасибо. А чтобы добраться до биоса из винды, нужно быть в режиме ядра?
     
  4. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    ajak
    А что значит добраться? Можно через драйвер физической памяти считать его.
     
  5. Vilco

    Vilco Vitaly

    Публикаций:
    0
    Регистрация:
    5 мар 2007
    Сообщения:
    190
    Адрес:
    Nsk, Russia
    А существуют ли в свободном распостранении сорцы какого-нибудь более-менее современного биоса?
     
  6. Mi256

    Mi256 New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2007
    Сообщения:
    116
    А я кстати так и делал как говорит Pavia . Адрес загрузки и размер - прочитать можно из GDT, он постоянно находится в невыгружаемой памяти так что прочитать легко, и синька врят-ли будет. (Ищи cтраницы начинающиеся после адреса F0000000)
     
  7. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Vilco
    Да существуют Award (Award Bios 6.00Pg Source Code 1999) в исходных кодах и OpenBIOS .
    BIOS распологается 4ГБ- размер биоса
    1 0000 0000h-n*4 0000h
    Обычно биос имеет размеры 256кб, 512кб, 1024кб.
    А вот если тебе перезаписать нужно то там хитрая система программирования. И зависит от материнки в том числе.
     
  8. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    есть LinuxBIOS еще. тоже полезная штука.
     
  9. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    BIOS используется и в NT и последующих, но не для ввода-вывода, а для управления электропитанием (ACPI в некоторых случаях этого требует, APM вроде бы вообще через SMM реализуется). Однако если не заморачиваться со сном/пробуждением системы, то BIOS не нужен после окончания загрузки системы.
     
  10. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    SII
    Я имел ввиду что прерывания не используются. Вернее почти не используются. Там BIOS используется только для заполнения таблиц ACPI. А дальше уже ОС разбирает таблицы и сама управляет энерго обеспичением и прочим. Так что тут опять биос учавствует только на начальном этапе загрузки ОС.
     
  11. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Pavia

    Если ОС использует ACPI -- то вроде бы да (лень глядеть в спецификацию; помню только, что при "поверхностном сне" BIOS вообще никак не нужен, поскольку при пробуждении просто возобновляется выполнение с точки, где процессор "заснул" -- он зацикливается на проверке какого-то разряда; а при "глубоком" BIOS используется, потому что процессор уходит в полное отключение и возобновляет работу с точки входа в BIOS по сбросу, но используется вроде только в процессе перезапуска ОС после сна, что фактически является разновидностью начальной загрузки). Вот если APM, то, вероятно, BIOS там используется и для перехода в сон, переключения режимов энергопотребления устройств и т.п., но утверждать не буду -- спецификацию APM смотрел давным-давно и ни разу на практике не использовал. Впрочем, в наши дни актуально только использование ACPI :)

    Кстати, вот ещё одна мысль. BIOS можно использовать и в процессе работы ОС при присоединении новых устройств PCI (если платформа поддерживает "горячее подключение"). Впрочем, думаю, проще всё это реализовать самому -- "ручной" доступ к конфигурационному пространству PCI проблем не составляет.
     
  12. ajak

    ajak New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2007
    Сообщения:
    463
    А почему вначале загрузки доступ к устройствам осуществляется через прерывания а почему нельзя напрямую через порты?
     
  13. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    можно и напрямую
     
  14. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    ajak

    Просто проще через BIOS. Да и надёжнее: BIOS точно знает, какие контроллеры на маме стоят и как с ними работать.
     
  15. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    читать точно можно