v.g.a. писал(а):
Но единообразный доступ может потребоваться при обращении к устройствам одного класса.
Например, физический диск может быть и SATA диском, подключенным к AHCI контроллеру, и флешкой.
Это не устройства одного класса, это устройства разных классов, причём совершенно разных. Устройствами одного класса могут быть тома файловой системы, причём только если файловая система одинакова (скажем, FAT32). Но эти устройства на самом деле построены над другими устройствами более низкого уровня -- разделами физического диска, например. Те, в свою очередь, тоже являются не настоящими устройствами, а надстройками -- над SATA- и флэш-диском в Вашем примере.
Цитата:
В операционной системе будет API для работы с дисками, которому подробности физического подключения устройства не требуются.
Ну так разумней внутри системы оперировать адресами управляющих блоков: без них всё равно обойтись не удастся (как, скажем, узнать, на каком разделе находится данный том файловой системы, и на каком физическом диске находится этот раздел?).
Цитата:
Логические имена в виде строки - названия файлов (unix) удобны для пользователя. Компьютеры работают с числами.
Ага, только перед тем, как начать работать "с числами", нужно как-то сообщить системе, с чем программа собирается работать, и без логических имён или ещё чего-то в этом роде обойтись не удастся (хотя бы потому, что работа часто ведётся с файлами, а они именно именуются). Так что, выдавая запрос на открытие, придётся выдавать и текстовую строку, ну а что тот запрос вернёт -- уже дело системы. Как правило, возвращается некое абстрактное (с точки зрения программы, но не системы) число. Но это не может быть "адрес" устройства как таковой -- хотя б потому, что часто открываются файлы на устройствах, а не сами устройства, а также потому что в общем случае нужно различать обращения к одному и тому же устройству со стороны разных программ.
Цитата:
Уникальный адрес устройства нужен для работы системы сообщений. Сообщения представляют собой запросы к устройству (драйверу). Передача сообщений осуществляется асинхронно. Единая адресация упростит реализацию.
Зачем выдумывать фиктивные адреса устройств, если в любом случае имеются адреса блоков управления устройствами, с которыми работают соответствующие драйверы?