| Да, примерно так, только иерархия драйверов важна при разработке BIOS, который координирует работу железа. На уровне самих драйверов, такого внимания иерархии не уделяется. Драйвера - это куски кода, которые невозможно предусмотреть заранее и для всех (они вставляются как кусочки пазла в нужные места системы). Тем более операционная система не в курсе кто там к чему обращается, она ими пользуется как ресурсами.
Процессор, кстати, для операционной системы это тоже ресурс, со своим драйвером... но так как их архитектура меняется медленно, видов процессоров мало и они, как правило, хорошо совместимы друг с другом, драйвера для них в операционной систем всегда готовые (точнее обвязать новый процессор - это забота чипсета, который операционной системе предоставляет стандартный доступ к процессору). Тем более операционная система будет пользоваться только тем, что ей нужно, если она не умеет пользоваться новыми командами - она их не задействует (хотя программист может). Операционной системе, потребителю драйверов, все равно, как они друг с другом взаимодействуют на уровне BIOS и печатных плат - она их просто использует. При разработке драйвера необходимо учитывать их взаимодействие, совместимость железа, какие данные откуда поступают и куда передаются, но это проблему давно решили протоколами обмена. Вы можете разработать какую угодно железку, но чтобы она пошла на рынок и продавалась, вам придется придерживаться стандартов - USB, SATA и кучи других, которые не на слуху у покупателей (так как нет коннекторов, которые руками вставляются - они заранее распаиваются). Это позволяет при разработке драйвера не сильно заморачиваться на иерархию. Вы просто знаете, что данные от принтера пойдут по USB, что в системе будет обязательно USB-драйвер, иначе она просто принтер не увидит и вообще USB-порт не обнаружит. Также со всем остальным, вы знаете, что в системе будет процессор и для него обязательно будет свой драйвер, к которому можно будет обратиться, что при этом будет делать процессор - гнать вам сигнал по южному или северному мосту - вас вообще не должно беспокоить - это задача драйвера процессора, вам же достаточно просто к нему обратиться, чтобы получить нужные данные. А вот для BIOS - это имеет значение. | |