halyavin
Андрей ты хотел конструктивных предложений? Ну, я попытаюсь не критиковать
1) Я не совсем согласен с концепцией - один драйвер файловой системы на каждый существующий раздел. Представь, насколько раздуется код? Пусть даже и подгружаемые драйвера.
Ты плохо представил ситуацию, на самом деле на каждый накопитель (на каждое IDE устройство) достаточно всего 1 копии драйвера определенной файловой системы, если она присутствует в структуре данных физического устройства. Ведь все равно на одном устройстве мы не можем параллельно обрабатывать 2 запроса, приходится разделять их по времени, причем перемещение головки займет больше времени, чем изменение стека дополнительных 100-1000 байт в которых, будут содержаться данные выбранного раздела.
Другой вопрос если обращение производиться к другому физическому устройству. Вот тут уж действительно нужен отдельный драйвер присутствующих файловых систем. Опять же по 1 копии на одно физическое устройство.
2) В твоей концепции есть один неучтенный момент - параллельная работа 2-х приложений возможна лишь при обращении к двум разным физическим устройствам (я уже не беру в расчет 3 и более приложений ломящихся на одно физическое устройство). Нету разделения по времени доступа. Конечно, ее нету и в существующей системе, поскольку изначально все разрабатывалось с учетом монопольной работы одного приложения. Остальные приложения вынуждены были ждать. Но это очень даже плохо, так как мы видим печальные последствия, например если запустить АС97 плеер и запустить Doom, то в результате либо не загрузиться игра, либо плеер станет нервно заикаться, а потом вообще отключиться.