Если вы покупаете принтер, клавиатуру или какую-нибудь ещё периферию для компьютера, на коробках может быть написано Plug’n’Play (или Plug & Play). Вот что это значит и что вам с этим делать.
Главное кратко:
- Plug & Play значит, что устройство подключается к вашему компьютеру и им можно пользоваться сразу.
- Устанавливать драйверы и перезагружать компьютер не нужно.
- Иногда для этого оборудования могут быть дополнительные программы, но для работы устройства они не необходимы.
- В большинстве случаев Plug & Play распространяется на компьютеры с операционными системами Windows и Mac OS. С Linux сложнее.
Как было раньше
До изобретения технологий Plug & Play компьютеры не умели понимать, что за устройство к ним подключили. Поэтому, когда вам нужно было подключить к компьютеру что-то новое, нужно было действовать так:
- покупаете новое железо — видеокарту, принтер, модем или что угодно ещё;
- устанавливаете драйвер с дискеты;
- выключаете компьютер и подключаете новое устройство;
- включаете компьютер и заходите в настройку;
- находите только что подключённое устройство;
- говорите, что для этого устройства нужно использовать такой-то драйвер;
- перезагружаете компьютер;
- вот теперь можно работать с новым устройством.
Что такое plug’n’play
Технология Plug’n’play («подключи и пользуйся») означает, что новое устройство можно подключить к компьютеру и сразу начать им пользоваться. Компьютер сам разберётся, что за устройство перед ним, установит нужные драйверы и настроит все свои внутренние штуки. В большинстве случаев — даже без перезагрузки.
Весь секрет в том, что производители операционной системы заранее добавляют много разных драйверов на все случаи жизни, чтобы в нужный момент достать их из кладовки и установить. Но перед этим система проходит такой путь:
- компьютер понимает, что к нему подключили новое устройство;
- получает от устройства служебную информацию;
- смотрит, в какую категорию попадает устройство и что нужно настроить для его работы;
- если нужны драйверы, добавляет нужные драйверы;
- если устройство сделано по стандарту своего класса, начинает работать с ним как с устройством нужного класса;
- добавляет к себе в настройки запись о том, что появилось новое устройство и им можно пользоваться.
Теперь коротко про каждый этап.
Как компьютер узнаёт, что к нему подключили новое устройство
Сразу после включения компьютер начинает спрашивать у каждого порта — подключено к нему что-то или нет. Порты — это разъёмы для подключения внутри и снаружи.
Компьютер постоянно проверяет, подключено ли что-то к порту или нет. Если подключено — то это новое или старое и ничего делать пока не надо? Такой опрос компьютер проводит сотни раз в секунду, поэтому как только мы что-то подключим — компьютер сразу узнает об этом.
Служебная информация от устройства
Как только порт сообщил, что в его разъём что-то подключили, система сразу посылает на этот порт служебное сообщение с вопросом «А ты кто?». Это стандартное сообщение, которое умеют обрабатывать почти все устройства.
В ответ устройство посылает информацию о себе: тип, марку, модель, параметры работы, версию прошивки и много остальных важных компьютеру свойств. Компьютер получает ответ и смотрит, есть ли такое устройство в списке знакомых ему или нет.
Если устройство знакомое, то система переходит к следующему этапу. Но иногда бывает так, что устройство понимает, что у него спрашивают, но ничего не посылает в ответ. В этом случае нужно ставить драйвер вручную, а потом подключать устройство заново — без этого компьютер просто не поймёт, что с ним делать.
Внутренняя настройка системы
Когда компьютер понял, что за новое устройство к нему подключили (принтер, сканер, видеокарту или что-то другое), он смотрит, может ли он завести новое устройство в системе так, чтобы это не помешало остальным. Например, не будет ли мешать новый принтер работе двух старых.
Если всё в порядке и никто никому не мешает, компьютер устанавливает драйверы.
Установка драйверов
Тут всё просто: компьютер по описанию устройства находит у себя подходящий драйвер и устанавливает его. Иногда в системе нет драйвера именно от этой модели, но есть драйвер от похожей, с теми же возможностями, или драйвер, который подходит целой серии устройств. В этом случае компьютер поставит такой драйвер. По этой причине название модели в драйвере и на самом устройстве иногда различаются:
Если подходящего драйвера в системе не нашлось, компьютер выведет сообщение об ошибке. В этом случае драйвер нужно будет устанавливать вручную:
Class-compliant-устройства и общие драйверы
Для некоторых устройств в индустрии придумали общие правила работы — например для мышей и клавиатур, простых принтеров и сканеров, MIDI-контроллеров и аудиокарт. Правила описывают, на какие команды должно реагировать устройство, какую информацию отправлять в компьютер, в каком формате и т. д.
Если какое-то устройство работает по этим правилам, его называют class-compliant — то есть «соответствующий классу». И тогда операционной системе не нужны индивидуальные драйверы для этого конкретного устройства. Достаточно использовать общий драйвер для всех устройств такого типа.
Class-compliant-устройства оказались очень полезны, когда мы начали подключать устройства к планшетам. Например, вы можете подключить любой соответствующий классу аудиоинтерфейс к Айпаду, и он заработает так, будто он создан специально для этого Айпада. Производителям не нужно писать драйверы отдельно под Айпад, а разработчикам iPadOS не нужно добавлять в поставку операционной системы тысячи однотипных драйверов для разных устройств.
Так что class-compliant — это гуд. Будет работать без вопросов.
Как там с Linux
С Линуксом ситуация такая:
- Есть сборки, у которых в комплекте есть огромная коллекция драйверов, чтобы большинство устройств Plug & Play работали как положено.
- И есть голые сборки, в которых нет части драйверов (или почти всех).
- Есть устройства, драйверы на которые уже добавили в Windows, но ещё не отгрузили сообществу Linux.
- Есть устройства, на которые для Linux в принципе нет драйверов (и не планируется).
Например, не так давно мы в редакции пытались установить Linux Mint на современный ноутбук Lenovo. В сборке Mint не оказалось драйвера для платы Wifi, а его ручная установка оказалась довольно сложной. А в сборке Ubuntu всё заработало «из коробки».
В общем, всё сложно.