#c++ #linux #windows #winapi #графика
Когда пишется ОС припиливают API. С помощью Win32 API можно создавать оконные приложения. Но ведь когда у них не было никакого API они могли что-то нарисовать на экране, а затем собрать в кучу и делать оконные приложения. Как собственно средством только ЯП сделать окно, например или что-то нарисовать? Как это делали создатели ОС?
Ответы
Ответ 1
Можно рисовать на фреймбуфере(fbdev) или напрямую в видеокарту (dri). Очень длинная статья по теме: http://betteros.org/tut/graphics1.php В современных компютерах можно написать графику шейдерами и выводить на тот же фреймбуфер. В противовес АПИ и фреймворкам, такой вывод популярен на встраиваемых системах и тонких клиентах. Рекомендую посмотреть на Yocto. Там собирается очень минимальный Линукс и есть шаблоны для сборки разных библиотек для работы на низком уровне.Ответ 2
Средством только ЯП не получится. Еще понадобится окружение, в котором ЯП будет работать. ОС по сути и есть это окружение. Без ОС - как минимум вам нужен будет загрузчик, который включит устройства ввода-вывода (клавиатура, мышь, видеокарта и дисплей), и устройство, с которого загрузится ваша программа — (дисковод, жесткий диск, CD-ROM, флэшка или сетевуха), найдет вашу программу на одном из устройств и передаст ей управление. После чего вы сможете рисовать, т.к. загрузчик, образно говоря, передаст вам вместе с управлением драйвер видеокарты в качестве модуля для вашей программы. Можете поставить себе виртуальную машину и поэкспериментировать с этим.Ответ 3
писать в порты видеоадаптера BIOS обычно имеет прерывания для вывода точки на экране с заданными атрибутами. Никакого окружения не нужно. Никакой ОС не нужно. API пишите сами. Удобнее сначала сделать компилятор к-нибудь языка. На ассемблере муторно. ОС будет нужна для отрисовки более сложных вещей и работой с памятью. Хотя можно и без нее:) Обратил внимание,что Вас интересует получение окошечек именно на С++. Но С++ все-равно должна использовать либо библиотеки написанные на асме, либо ассемблерные вставки для вывода. И мы приходим к п.1., т.е. пишем напрямую в видюху. P.S. что есть ЯП? ЯПлакалъ?
Комментариев нет:
Отправить комментарий