Твердое и мягкое: стандарты и проблемы

Спецвыпуск Xakep, номер #012, стр. 012-072-1

Andrew Fadeev (andrewf@farlep.net)

Куйте железо, не отходя от кассы

Хэй, будущий феррет! Сейчас речь пойдет о самых передовых железках: о 3D-ускорителях графики и о пытающихся угнаться за ними платах 3D-звука. Появление этих железок вызвало в далеком 97 такой взрыв разнородных API, что расхлебать эти помои смогли только совсем недавно. Да и смогли ли?:). С 3D-звуком, например, ужасы творятся до сих пор....

Что есть железо?

Разберемся, что есть железо. Обычно, это платка с кучкой всяких микросхемок, разъемов и прочей электронной бурдой. Эта штукенция, какая бы крутая она ни была, требует управления. Сама догадаться, что делать, она не может. Вот тут на помощь приходят драйвера, или API.

Что есть API?

API - это Application Programming Interface. В нашем случае - набор программных средств для управления железякой. API - штука очень удобная. Программисту, кодящему программу, которая будет использовать, например, 3D-акссель, глубоко до Гейтса, что там именно за железка, что у нее на уме и какие команды она понимает. Он знает конкретный API и обращается к нему. API должен перевести весь этот бред, что программер накодил, бедной железяке. Правда, сама железка должна поддерживать этот API - иначе выйдет разговор немого с глухим. А это - проблемы, которые были решены корпоративным гением Майкрософта (гений у них такой: задавить, всех задавить!).

Намба Зиро: ОСы, не мухи

Были умники, кричащие DOS - rulezzz, остальное - не оси. Таких умников с каждым днем все меньше. Это и понятно. Забота ОСки - скрыть от программ геморрой работы с железом, чтобы кодерам не париться и не писать по релизу под каждую конфигурацию. А у ДОС был API только для работы с дисками. Дисковая Операционная Система, как-никак :). Со всеми остальными девайсами приходилось работать напрямую. Вот и получилось, что ВСЕ звуковые карты на аппаратном уровне совместимы с Sound Blaster 2.0. Чтобы программерам проще было, и приложения с карточками работали без проблем. Был бы API - ну кому бы это было нужно? Когда вышел Выньдос, он тоже не отличался разумностью. Только потом к нему прирос DirectX, а кодеры вообще обленились. Какой подарочек - всех под одну гребенку стричь можно!

Нумеро Уно: 3D-графика

Первые Voodoo наделали много шума. Уууу! Билинейная фильтрация! Аааа! Пикселей не видно! Вот тогда-то и началось. У 3Dfx был собственный API - Glide. Всеми любая Майкрософт уже тогда всунула в молоденький DirectX модуль Direct3D, который Вуду держал плохенько. Майкрософт закричала: "А ну, под стандарт все!", программисты ответили "Фигу! Glide лучше!". Еще со стороны "Силикон Графикс" пришел OpenGL, который продвигал Кармак - главный квакер всего мира и окрестностей. Тем не менее, Glide был всеми любим, так как вторая версия DirectX сильно бажила, а OpenGL юзал только GLQuake. Однако, кроме 3Dfx, ускорители стали производить и другие (в том числе и nVidia), а Glide был закрыт на амбарный замок. А тут и третий DirectX подоспел. Вот, все и стали его использовать.

С этого момента началось противостояние. Большинство игр все равно оптимизировалось под Glide, а остальные API в глаза знать не хотело. 3Dfx рулила, а енд-юзеры страдали. Вместо покупки железки помощнее (а NVIDIA уже тогда вырывалась вперед), приходилось раскапывать вопросы про поддержку ускорителей играми и разбираться в видах API, чтобы приобрести самый "поддерживаемый" девайс. Зато грамотность поднялась на высоты необозримые :).

Содержание  Вперед на стр. 012-072-2

загрузка...
Cпец Хакер #075Cпец Хакер #074Cпец Хакер #073Cпец Хакер #072Cпец Хакер #071Cпец Хакер #070Cпец Хакер #069Cпец Хакер #068Cпец Хакер #067Cпец Хакер #066Cпец Хакер #065Cпец Хакер #064Cпец Хакер #063Cпец Хакер #062Cпец Хакер #061Cпец Хакер #060Cпец Хакер #059Cпец Хакер #058Cпец Хакер #057Cпец Хакер #056Cпец Хакер #055Cпец Хакер #054Cпец Хакер #053Cпец Хакер #052Cпец Хакер #051Cпец Хакер #050Cпец Хакер #049Cпец Хакер #048Cпец Хакер #047Cпец Хакер #046Cпец Хакер #045Cпец Хакер #044Cпец Хакер #043Cпец Хакер #042Cпец Хакер #041Cпец Хакер #040Cпец Хакер #039Cпец Хакер #038Cпец Хакер #037Cпец Хакер #036Cпец Хакер #035Cпец Хакер #034Cпец Хакер #033Cпец Хакер #032Cпец Хакер #031Cпец Хакер #030Cпец Хакер #029Cпец Хакер #028Cпец Хакер #027Cпец Хакер #026Cпец Хакер #025Cпец Хакер #024Cпец Хакер #023Cпец Хакер #022Cпец Хакер #021Cпец Хакер #020Cпец Хакер #019Cпец Хакер #018Cпец Хакер #017Cпец Хакер #016Cпец Хакер #015Cпец Хакер #014Cпец Хакер #013Cпец Хакер #012Cпец Хакер #011Cпец Хакер #010Cпец Хакер #009Cпец Хакер #008Cпец Хакер #007Cпец Хакер #006Cпец Хакер #005Cпец Хакер #004Cпец Хакер #003Cпец Хакер #002Cпец Хакер #001