Что такое драйвер? Прежде чем ответить на этот вопрос ответим что такое API?
API - application programming interface
application - приложение или по просу программа.
programming - прилагательное "программный"
interface - интерфейс
API - это стык междду программами, описания того как взаимодействую программы. Или говоря проще набор функций и их описание.
Так вот драйвер это реализация некоторого API.
Операционная система состоит из программ и API для них. Для того что-бы написать драйвер нужно знать API.
У каждый ОС свой API. Прежде чем приступать к написанию драйвера надо придумать этот самый API.
Заметьте в определение драйвера я ни слова ни сказал про железо.
Так вот драйвер не обязан взаимодействовать с железом он может использовать и другое API.
У МС даже есть деление драйверы режима ядра и драйверы прикладного уровня. Последние как правило вызывают первые. А те в свою очередь вызывают функции из библиотек и ядра.
МС вообще насчитывае 6 уровней абстракции над железом. А я даже больше
Графический интерфейс пользователя (игра)
Фреймворк - Ogry3D
бибилотека - с API такая как OpenGL.dll
драйвер пользовательского уровня - nvoglv64.dll
драйвер ядра - Monitor.sys
минидрайвер - nvlddmkm.sys
бибилотека - HAL.C
регистры железа -
Цитата:
и еще такой вопрос opengl же без драйвера не будет работать? opengl не является же драйвером?
В далёкие годы драйвер видео карты заменял OpenGL.dll что-бы добавить свои расширения. Потом производители договорились о своем интерфейсе Installable Client Driver.
В исходниках Mesa есть opengl который чисто программный.
Цитата:
Или все таки есть какие то руководства по программированию видеокарт?
Есть для видеокарт 80-тых годов
http://www.codenet.ru/progr/video/egavga/http://www.frolov-lib.ru/books/bsp/v03/index.htmlДля видео карт с 90-тых годов используют VESA. В ПЗУ видеокарты зашыт код для Int 10h
https://www.osp.ru/pcworld/1998/07/159374/Но беда что его надо вызывать из 16-битного режима поэтому
Два пути либо эмулятор 16-битного кода как в линуксе.
Либо выставить нужное разрешение в загрузчике и больше не менять его. Так поступают все хобийные ОС.
GRUB можно указать нужное разрешение, и MultyBoot вернёт указатель на буфер и разрешение.
Цитата:
какие есть самые простые операционки с исходниками которые поддерживают nvidia geforce gt 330m?
Из ОС с драйверами GPU только Linux, KolibyOS, ReactOS и Haiku OS и возможно BeOS.
А сложность написания видео драйвера сопоставима с написанием ОС.
Цитата:
где найти список всех операцонок у которых есть исходники?
https://wiki.osdev.org/Projects