Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.02.2014, 05:08
Кандидат Javascript-наук
Отправить личное сообщение для FanAizu Посмотреть профиль Найти все сообщения от FanAizu
 
Регистрация: 08.03.2011
Сообщений: 148

Драйверы и устройства
Прочел, что, например, операционная система знает о существование принтера. В операционной системе есть методы, которые управляют принтером, и пользовательские программы дергают эти методы, чтобы управлять принтером. Поскольку принтеров куча и все они устроены по-разному, то реализацию этих методов доверяют производителям принтеров, то есть пишут драйверы. Итого получаем, к примеру, следующую картину:
я пишу программу пользовательскую, моя программа дергает в операционной системе метод, например, для рисования 1-пиксельной зеленой точки. Операционная система находит реализацию данного метода в загруженном в память драйвере и исполняет код реализации этого метода.
Возможно я коряво описал ситуацию, вот вырезка, прочитанная мною:


Драйвера - это совего рода прослойка между ОС и железом [1]. Железа бывает много и разного, а ОС одна (под каждую ОС свой драйвер - так в 99% случаев с дровами). ОС знает, что конкретный тип устройства (т.е. железа) умеет делать то-то и то-то, к примеру, ОС знает, что с винта можно получить данные и записать на него данные (очень упрощаем), каждый винт (т.е. конкретный тип железа) выполняет эти действия по-своему. Разработчики ОС не могут реалтзовать все ветки поведения "записать данные" для ОС, поэтому на помощь приходят драйвера, которые уже обладают реализацие метода "получить данные" и "записать данные" для своего типа железа. ОС же только дергает за методы драйвера и передает/получет параметры/значения от них, а драйверы в свою очередь работают уже с конкретным железом под которое были написаны.
Это описание можно назвать "на пальцах" или базовым описанием принципа работы драйверов. На самом деле типов драйверов много больше и функции, которые они выполняют тоже огромного количество.



Вопросы вот по этой части из вырезки "ОС знает, что конкретный тип устройства (т.е. железа) умеет делать то-то и то-то,":
1) допустим, ОС знает о том, что принтер умеет делать 5 вещей, например, рисовать точку зеленую, рисовать красную точку и любые другие действия, к примеру.
Так вот зная это, ОС имеет 5 методов, которые дергают прикладные программы. А производители принтеров уже пишут драйвера и тем самым реализуют эти методы.
Вопрос в следующем. Поскольку ОС знает, что тип устройства "принтер" имеет 5 методов, то и хранит в себе 5 методов, которые могут дергать прикладные программы.
А что, если вдруг, завтра появится новый принтер, который помимо этих вот 5 методов умеет делать ещё что-нибудь, например, танцевать? Как в таком случае
прикладной программе дергать метод "танцевать", который умеет делать принтер, но о котором ничего не знает ОС т.к. в ней уже заложено, что для типа устройства
"принтер" есть 5 методов и всё?

2) допустим на момент выхода ОС разработчики знали обо всех типах устройств, которые существовали на момент написания ОС и заложили поддержку этих устройств в ОС.
То есть ОС знает об, например, всё том же устройстве-принтере и содержит методы для манипуляций этим устройством. А что, если после выхода ОС я изобрету своё устройство,
например, транслятор моих мыслей на бумагу. ОС ничего не знает о таком устройстве и не знает какие методы существуют для данного типа устройства. И как тогда
писать прикладные программы для управления моим устройством?

Наверняка я вообще где-то имею абсолютно неправильное представление о том, как все это устроено, поэтому, очень надеюсь, что вы наведете меня в нужное русло. Спасибо, с уважением.
Ответить с цитированием
  #2 (permalink)  
Старый 20.02.2014, 07:18
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

Неточностей конечно много. Но в целом ответ: да, "писать прикладные программы для управления моим устройством".
Более того, "прикладные программы" зачастую пишут без нужды на то.
Разве вы не встречаете постоянно, что в комплекте с драйвером сейчас идёт 200 мегов мерзкого говнософта, дублирующего имеющийся функционал ОС, но через задницу?) Выковырять "чистый драйвер" порой довольно сложно.
__________________
29375, 35

Последний раз редактировалось Aetae, 20.02.2014 в 07:21.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработка под мобильные устройства J_O_K_E_R Мобильный JavaScript 0 11.01.2014 17:46
Вычисление диагонали устройства KupueIIIKo Общие вопросы Javascript 11 03.06.2013 15:18
gismeteo и мобильные устройства. sssppp6 Серверные языки и технологии 2 07.05.2012 18:16