Ко мне пришла мысль о мультиплатформенных дровах. Почему бы не разработать такой device стандарт, с которым бы любая ось могла работать зная только этот самый стандарт? Т.е. не просто запихиваем в одну "коробку" дрова для всех систем, а именно один единственный драйвер для одного устройства. Эта идея радилась вполне естественно, ее корень в ОС на асме Если бы такой стандарт был и, скажем, 70% производителей железа его поддерживали, то: 1. Уменьшение издержек на производство драйверов. Пишем Один вместо множества. 2. Огромная, просто гигансткая экономия человеко\часов. 3. Самопальные ОС на асме стали бы расти настолько быстро, что уже давно были бы впереди планеты всей. Понятно, что это сложно, но ведь возможно!
EvilsInterrupt, размер кода будет меньше, это понятно. NoName, а вот о функция ты не по думал, дело не в формате, а в функциях предостовляемых ОС(winapi/int)? как быть с ними?
Я рад что хоть кто-то понял задумку. Многие функции в операционных системах идентичны, но, конечно, некоторые имеет полное право не быть таковыми. Например они могут функционировать основываясь на совершенно разных принципах и инженерных решениях. Это если смотреть с точки зрения их совместимости. Стоит задача "сопоставления" методов работы, т.е. нужно решить задачу так, чтобы функции ОС работали через некоторый MultiDriver интерфейс, для того чтобы обеспечить оптимально стабильный канал общения ОС и MultiDriver. Далее MD. Если быстренько набрасать схемку проектирования реальной системы, то она(схема) будет состоять из следующих пунктов: 1. Общее проектирование. 1.1 Начальный этап. Составляется база функций систем (W&U), которые нужно совместить для охвата здачи. 1.2 Проектирование теоретических возможностей. На этом этапе решаются наиболее общие св-ва будущей MD исходя из методов, которые будут созданы для теор. совместимости. Появляется общий план действий. 2. Составление функций, которые MD сможет предоставить каждой из ОС. 3. Подбираются ходы для создания MD Interface. 4. Все пересчитывается на максимальную совместимость и скорость работы. ... Сумбурно. Нужно чтобы сказали свое слово специалисты. Задача создания такого драйвера очень сложная, это понятно всем. также нужно отметить, что стандарт должен содержать в себе пункты которые будут описывать зарезервированные возможности для расширения системы.
NoName Что касается производителей устройств, то им никакого стандарта не нужно - он уже есть: большинство устройств принимают или передают данные когда процессор обращается к памяти или к портам ввода-вывода, а на шине присутствует адрес порта принадлежащего устройству. Эта часть драйвера от ОС совсем не зависит. Но для работы драйвера также нужны ресурсы, которыми управляет ОС(память, процессорное время, механизм оповещения о прерывании) и сделать единый стандарт на эту часть практически не реально. У различных систем совершенно разный взгляд на то, сколько времени может обрабатываться прерывание, какой формат запросов к драйверу, кто очищает стек, в реальном или защищенном режиме должен работать процессор и тому подобное. При появлении же единого стандарта многие системные программисты остануться без работы: зачем писать 5 драйверов если достаточно одного?
Black_mirror Если все сложно со строны программного обеспечения, как ты утверждаешь, то почему бы не выпускать компы с MD на чипсете? Да так выпускать, чтобы потом можно было перепрошивать новыми версиями на лету. BIOS же можно перепрошить из под винды!
NoName, по тому что это некаму ненужно, так уж сложилось. Может ещё пердложешь использовать всем 1 ос? тогда не каких стандартов не понадобится.
Капитализм, чтоб его. Где здравый смысл? Скажите что я неправ, что это все бред и неправильно, что так недолжно быть, мне станет легче.
Между прочим такой проект существует уже несколько лет. И зачинщик его не кто-нибудь, а великий и могучий Intel. Называется UDI - Uniform Driver Interface: http:/www.projectudi.org/ Цель была именно такая - писать драйверы один раз. Увы, пару лет назад этот проект резко разкритиковал и увидел там "происки буржуев" предводитель FSF и GNU - Столлмен. Типа: "несвободные ОС смогут использовать свободные дрова, а что получат свободные ОС?". Возможно именно поэтому проект не получил поддержку среди его последователей. Количество готовых драйверов невелико. Хотя имеющиеся могут помочь тем, кто "начинает писать ось". Очень жаль, что Ричард не догадался, что свободных ОС не одна и не две, и не все они POSIX-совместимые...
captain cobalt Спасибо за линк, я незнал об этом проекте ничего. Судя по дизайну, бабла туда мало вкладывали. http://www.projectudi.org/f-specs-1.01.html Список интересных документов UDI: UDI Core Specification, Version 1.01, Volume I [~1.8MB Acrobat 3.0 PDF] UDI Core Specification, Version 1.01, Volume II [~1.5MB Acrobat 3.0 PDF] UDI Physical I/O Specification, Version 1.01 [~935KB Acrobat 3.0 PDF] UDI PCI Bus Binding Specification, Version 1.01 [~125KB Acrobat 3.0 PDF] UDI System Bus Binding Specification, Version 1.01 [~112KB Acrobat 3.0 PDF] UDI Network Driver Specification, Version 1.01 [~639KB Acrobat 3.0 PDF] UDI SCSI Driver Specification, Version 1.01 [~536KB Acrobat 3.0 PDF] UDI IA-32/IA-64 ABI Binding Specification, Version 1.01 [~161KB Acrobat 3.0 PDF] Доки датированы 2001 годом, проект начал работу еще раньше. Беглый просомтр документов дает понять что проект был прилично развит в теоретическом плане. Правда исходники с intel.com убрали. Я думаю, стоит изучить это поподробнее. Нужно поднять эту тему на таком уровне снова. Еще интересна страничка с сылочками на rfc. http://www.projectudi.org/f-rfcs.html