Решения, изменившие мир. Plug and Play
Plug’N’Pray: подключай – и молись!
Современному пользователю даже не приходится задумываться, в какое гнездо вставлять штекер от наушников: операционная система услужливо поинтересуется, что именно воткнули в разъем (а то и распознает устройство сама). Но полтора десятка лет назад все было гораздо сложнее.
Компьютеры тех лет совершенно не походили на современные: различия были не только внешние, но и конструктивные. Конечно, системная плата присутствовала, но на ней размещались исключительно процессор, память, BIOS и слоты-разъемы. Другие компоненты (контроллеры периферийных устройств) выполнялись в виде отдельных модулей – плат расширения.
Сейчас единственным пережитком тех времен осталась дискретная видеокарта. А раньше (только представьте!) устанавливать приходилось не только «видяху», но и контроллер жестких и гибких дисков (на фото), параллельных и последовательных портов (для подключения мыши и принтера), звуковой контроллер, встроенный модем, контроллер сканера (SCSI) и сетевую плату. Разумеется, в минимальной конфигурации достаточно было первых трех, позднее дисковый контроллер объединили с портами ввода/вывода и их стало два, но чаще общее количество колебалось от трех до семи.
К чему эта преамбула? А к тому, что каждое из названных устройств использовало системные ресурсы, чьи названия непрофессионалу уже ничего не говорят (адресное пространство UMB, номер прерывания IRQ, порт IO, канал прямого доступа к памяти DMA) и которые устанавливались вручную специальными перемычками (джамперами) или DIP-переключателями для каждой платы расширения. На самой системной плате такими же джамперами подбирался режим питания центрального процессора и его частота, аналогично выставлялись режимы памяти.
Для двух плат сделать это было относительно несложно, но большее количество превращалось в ночной кошмар для сисадмина: грамотно распределить ресурсы между периферией так, чтобы они между собой не конфликтовали, да еще и не создавали проблем программному обеспечению – было под силу лишь весьма опытному специалисту!
Да и пользователю приходилось нелегко: ведь подсоединение любого внешнего устройства (модема, принтера, мыши, клавиатуры, сканера, аудиосистемы, мобильника и прочих) строго-настрого предписывалось производить при выключенном питании. Мало того, затем следовало вручную установить необходимые параметры оборудования для каждого драйвера или программы, что не добавляло простоты в процесс. К тому моменту, когда компьютеры стали получать повсеместное распространение, требовался кардинально новый подход к конфигурированию аппаратных ресурсов.
Plug’n’Pray: подключай – и молись!
Хотя разработки технологии, позволяющей автоматически конфигурировать «железо», начались в 1990 году, основной предпосылкой для ее внедрения послужила лишь миниатюризация электронных схем: на смену дискретным элементам логики пришли «большие чипы» (однокристаллки), а это позволило разместить большинство элементов периферии на системной плате – таким образом ими стало проще управлять (ведь все параметры производителю известны и прописать их в BIOS не составляло труда). Анонсировали технологию в 1993-м, а первый PnP BIOS фирма Phoenix Technologies выпустила в начале 1994 года. Джамперы практически исчезли из обихода, а из внешних обязательных плат расширения остались лишь видео, звук и сетевой адаптер.
Революция произошла с выходом Windows 95. В состав ОС был включен не только режим поддержки Plug and Play, но и свыше 1000 различных драйверов. Конечно, сама по себе ОС ничего не решала: помимо нее требовалось «железо» нового поколения, в том числе системная плата с шиной EISA или PCI и соответствующий BIOS, но это никого не останавливало. Предполагалось, что новейшие конфигурации смогут автоматически распознавать оборудование и устанавливать драйверы (из имеющегося набора или с прилагаемого диска). Но на практике, увы, дело обстояло не столь красиво: одни устройства распознавались некорректно, другие не распознавались вообще, третьи требовали предварительных действий с ПО (не говоря уже об обязательной процедуре отключения питания при подсоединении периферии) – в общем, «танцы с бубном» продолжались.
Неудивительно, что пользователи ехидно окрестили прогрессивную технологию «вставляй и молись!» (Plug’n’Pray): нередко после мучительных безуспешных попыток запустить устройство согласно рекомендациям изготовителя приглашался сведущий человек, который и оживлял упрямую «железяку». Дело доходило до правки реестра и конфигурационных файлов, прописывания вручную тех же портов-прерываний, перестановок в разные слоты и прочего шаманства, поэтому профи всячески ругали новинку, сопротивляясь ее внедрению.
Масла в огонь подлила и реализация USB. По идее, именно этот интерфейс должен был значительно облегчить подключение новой периферии и простое распознавание устройств, но лишь добавил очередных проблем. Прошло довольно много времени прежде, чем производители освоили корректную поддержку аппаратуры, а программисты наконец-то отладили правильное распознавание устройств и раздачу ресурсов. Фактически технология заработала в полную силу только после выхода Windows XP SP2, к 2004 году, то есть спустя 10 лет после официального релиза.
Выводы
За прошедшие 10 лет сменилось много аппаратных технологий и появились новые ОС, контроллер памяти и графическое ядро встроили в центральный процессор, все аппаратные компоненты снабжены корректно работающим модулем аутентификации. Мы с вами, как пользователи, уже давно не замечаем проблем с аппаратными конфигурациями, ведь многие периферийные устройства автоматически распознаются системой без установки драйверов, а некоторые содержат их во встроенной памяти и устанавливают машинально. Но не стоит забывать, что такая простота – результат трудоемкой и кропотливой работы, совершавшейся на протяжении 20 лет и до сих пор не доведенной до полного идеала.
Врезка. Как работает Plug and Play
Технически система автораспознавания реализована чипом Programmable Logic Device, содержащим уникальный идентификатор для каждого устройства. После включения компьютера модуль, встроенный в BIOS, определяет, с каких девайсов можно загрузить систему. Специальный сервис, менеджер конфигурации, в процессе запуска ОС опрашивает устройства, требующие системных ресурсов, и формирует структуру дерева аппаратной конфигурации (hardware tree). Затем арбитр ресурсов (resourse arbitrator) на его основе распределяет системные ресурсы по схеме приоритетов, пытаясь избежать конфликтов, если это не удается – устройство отключается и помечается как некорректно работающее. Процедура повторяется, если к компьютеру подсоединяют новое устройство: после того, как оно определено, устанавливаются драйверы и девайс добавляется в дерево.
Опубликовано 16.05.2014