The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Intel Labs работает над системой, которая сможет создавать драйверы без участия человека

10.06.2011 15:35

Издание The Register опубликовало интервью с Аруном Рагхунатом (Arun Raghunath), одним из разработчиков Intel Labs, который занимается созданием системы для автоматической генерации исходного кода драйверов устройств и их адаптации для различных операционных систем. В ходе беседы Арун пояснил принцип работы системы, рассказал о текущем состоянии разработки и требованиях, которые она предъявляет к производителям устройств.

Центральная идея технологии, получившей имя Termite, состоит в том, чтобы автоматизировать труд программистов, пишущих драйверы устройств, и избежать возможных ошибок в коде за счет автоматизации их работы с помощью алгоритмов, используемых при создании систем искусственного интеллекта. Программа-генератор получает в качестве входных данных спецификации устройства и интерфейса драйверов операционной системы и генерирует код, способный связать их вместе и реагировать на события и потребности друг-друга.

В отличие от других подобных проектов, алгоритм работы Termite основан на методах Теории Игр. Как говорит Арун, процесс общения драйвера с устройством можно представить в виде типичной игровой ситуации, в которой драйвер - это один игрок, а все остальное окружение, к которому можно причислить ОС и устройство - другой. "Когда драйвер делает ход, окружение изменяет свое состояние. Выигрышная стратегия заключается в том, чтобы делать ходы по игровому полю так, чтобы не ввести окружение в противоречивое или тупиковое состояние". Во время "игры" генератор запоминает выигрышные ходы и строит драйвер на основе этих знаний. Сильная сторона такого подхода в его универсальности: при необходимости перенести сгенерированный драйвер в другую операционную систему, не понадобится ничего кроме корректных спецификаций интерфейса драйверов для этой ОС.

Впервые технология Termite была представлена сотрудниками австралийского исследовательского центра NICTA, Open Kernel Labs и исследователями из университета Нового Южного Уэльса на симпозиуме SOSP ("Symposium on Operating Systems Principles"). В представленном на симпозиуме докладе приведено подробное описание технологии, формата файлов-спецификаций и продемонстрирован процесс генерации кода драйверов для контроллера SD-карт Ricoh R5C822 и адаптера USB-Ethernet ASIX AX88772 для операционных систем Linux и FreeBSD.

  1. Главная ссылка к новости (http://ertos.nicta.com.au/rese...)
Автор новости: Evgeny Zobnin
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/30839-driver
Ключевые слова: driver, intel, ai
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (54) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, strah4 (?), 16:23, 10/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +15 +/
    Предвижу сообщение при подключении. Система генерирует драйвер для нового устройства.
     
     
  • 2.6, анонимно (?), 16:27, 10/06/2011 [^] [^^] [^^^] [ответить]  
  • +9 +/
    когда железка будет отдавать свою спецификацию при подключении, так и будет, это неизбежно )
     
     
  • 3.14, brother anon (?), 16:43, 10/06/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Спецификацию можно "нагуглить" автоматически по device id (или как он там называется)
     
     
  • 4.34, filosofem (ok), 21:47, 10/06/2011 [^] [^^] [^^^] [ответить]  
  • +16 +/
    user@host:~#Termite --make-all --install
    building driver for network card...
    googling specification for network card...
    Can't find Internet connection.
    FAIL!
     
  • 4.56, pavlinux (ok), 15:53, 11/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >Спецификацию можно "нагуглить" автоматически

    нагугли плиз

    14e4:5820 (rev 10)

     
  • 2.8, pro100master (ok), 16:28, 10/06/2011 [^] [^^] [^^^] [ответить]  
  • –11 +/
    Это уже частично есть - Plug aNd Play
     

  • 1.4, XVilka (ok), 16:25, 10/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Это надо чтобы все производители устройств проедоставляли спецификации в едином, машиночитаемом формате. Без всяких PDF и NDA
     
     
  • 2.50, Аноним (-), 08:41, 11/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    особенно желательно чтобы таковыми были verilog/vhdl сорцы сразу :)
     

  • 1.9, grayich (ok), 16:32, 10/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    дык, спецификации всё равно нужны
     
     
  • 2.16, burdakovd (?), 16:51, 10/06/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну так спецификацию написать один раз, а драйвер можно будет сгенерить для всех ОС.

    То есть если есть n моделей устройств, и m ОС.
    То раньше нужно было писать n * m драйверов.
    А теперь n + m спецификаций.

     
     
  • 3.25, grayich (ok), 17:59, 10/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    былиб спеки, народ сам под свои оси напишет дрова, я не против автоматизации подобной, но сама по себе она ничего не даёт без спеков, которые производители всё ещё жмодят.
     
     
  • 4.48, арсен (?), 06:56, 11/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    "Народ сам напишет" - это миф. Спросите у реальных опенсурсных мегакодеров
     
     
  • 5.51, Аноним (-), 08:42, 11/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > "Народ сам напишет" - это миф. Спросите у реальных опенсурсных мегакодеров

    А тем не менее, пишут же. Опенсорсные мегакодеры.

     
  • 4.52, Piter_Ring (ok), 13:10, 11/06/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > былиб спеки, народ сам под свои оси напишет дрова, я не против
    > автоматизации подобной, но сама по себе она ничего не даёт без
    > спеков, которые производители всё ещё жмодят.

    Спеки на АТИ карточки давненько уже открыли - и где драйвера ?
    в Опе!.

     
     
  • 5.54, grayich (ok), 13:47, 11/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    где открыты? насколько я помню главное то как раз и не раскрыто.
     
  • 2.44, Michael Shigorin (ok), 03:28, 11/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не "всё равно", и не просто "машиночитаемые", а не подлежащие трактовке ("шоб даже железяке сразу понятно было").  До такой степени пригодности к корректному обобщению продукция китайцев в обозримом будущем вряд ли доберётся, а в интеле, похоже, так и не сделали выводы из разработки ACPI в пределах существенно шире отдельно взятого Гровера.
     

  • 1.10, xxx (??), 16:37, 10/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Здорово конечно, однако и с участием человека нормальные драйвера написать никто не может, а тут такое. И ещё кто работал с железом знают, что там вечно встречаются всякие подводные камни, глюки, хаки и прочее, поэтому спецификации постоянно не соответствуют реальности.
     
     
  • 2.11, XVilka (ok), 16:39, 10/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это скорее применимо для создания "заготовки" драйвера, для доработки напильником. Но тогда спецификации должны быть, например в XML и содержать максимум информации. Тот же интел, кучу информации просто опускает в своих спеках.
     
     
  • 3.13, _yurkis_ (?), 16:43, 10/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Это скорее применимо для создания "заготовки" драйвера, для доработки напильником. Но тогда
    > спецификации должны быть, например в XML и содержать максимум информации. Тот
    > же интел, кучу информации просто опускает в своих спеках.

    Или стандартизировать классы девайсов и заставлят этим стандрартам следовать. (Как в usb, например). Но это тоже не гарантия, конечно.

     
     
  • 4.27, Alatar (??), 18:20, 10/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Или стандартизировать классы девайсов и заставлят этим стандрартам следовать. (Как в usb, например)

    Угу... ставил Линуху на комп. В комп воткнуты два USB-ных беспроводных комплекта разных производителей (клава+мышь и клава+трекбол). И то и другое класс USB HID. Один заработал, другой нет. Вот вам и стандартизация классов. =)

     
     
  • 5.39, Lain_13 (?), 00:08, 11/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Это ещё что. У меня есть беспроводная клава с мышью. До Убунту 10.10 линукс при виде мыши переставал видеть клавиатуру. После 10.10 они наконец заработали, но (!) во всех играх с хоть какой-то графикой клавиатура ведёт себя так, будто клавиши влево и вверх вечно зажаты. Играть невозможно в принципе.
     
  • 2.12, _yurkis_ (?), 16:41, 10/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Впринципе USB девайсы, например, в болшинстве случае работают везде. Там почти такая же система основаная на класе девайса. Правда проверяют их почти всегда только на винде, и делают иногда кривовато, что иногда чревато.
     
  • 2.15, Aquarius (ok), 16:45, 10/06/2011 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Здорово конечно, однако и с участием человека нормальные драйвера написать никто не
    > может, а тут такое. И ещё кто работал с железом знают,
    > что там вечно встречаются всякие подводные камни, глюки, хаки и прочее,
    > поэтому спецификации постоянно не соответствуют реальности.

    только теперь придется не драйвер допиливать, а железку, чтобы она соответствовала собственным спецификациям, по крайней мере, я очень надеюсь, что механизмы рынка "приведут" производителей к такой линии поведения

     
  • 2.23, Atterratio (?), 17:32, 10/06/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Дак в том то и смысл, что бы были полные спецификации, а не хаки, подводные камни и т.д.
     
  • 2.30, Аноним (-), 20:24, 10/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Здорово конечно, однако и с участием человека нормальные драйвера написать никто не может

    Там встречается пачка развеселых errata. У интела их кстати навалом, как признаных ими так и отловленных добровольцами и заворкэраундеными. Далеко ходить не надо - они в sandy bridge довольно хорошо пролошились.

     

  • 1.18, RaY (??), 17:06, 10/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +12 +/
    и при установке устройства будут новые ошибки: драйвер проиграл, начать новую партию? :)
     
     
  • 2.41, Ytch (?), 01:18, 11/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > драйвер проиграл, начать новую партию? :)

    драйвер проиграл, отправьте sms на короткий номер, чтобы начать новую партию.

    P.S. Можно еще тотализатор. "Ставки на новый девайс от logitech 3 к 1 в первом забеге" или "Темная лошадка" noname победила техническим нокаутом во втором раунде.

     

  • 1.19, winrar777 (ok), 17:11, 10/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Что-то мне подсказывает, что создание подобной машиночитаемой спецификации будет гораздо сложнее написания драйвера под windows и этим заморачиваться не будут. Ведь в ней нужно учитывать кроссплатформенность. Это будет что-то подобное байт-коду, только для драйверов.
     
     
  • 2.20, _yurkis_ (?), 17:15, 10/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Если устройство будет попадать в один из предопределенных классов, то не фатально сложно сделать спецификацию исключительно на описательном языке.

    А если приспичит использовать код, можно было бы llvm байткод использовать. но это уже изврат.

     

  • 1.21, Аноним (-), 17:28, 10/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не поверите(да и не надо), два года назад у меня была эта же мысль, т.е.с помощью ИИ создавать драйвера, только вот такие унылые критики как большинство отписавшихся только и вечно тормозят прогресс своим скепсисом. Рад, что дело идет и идет как я это себе представлял!
     
     
  • 2.45, Michael Shigorin (ok), 03:30, 11/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > только и вечно тормозят прогресс своим скепсисом

    http://bash.altlinux.org/2048


     

  • 1.22, Аноним (-), 17:29, 10/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Фактически создание такой спецификации - это и есть разработка драйвера, но более высокоуровневом языке, независимом от железа и системных интерфейсов.
     
  • 1.24, Аноним (-), 17:48, 10/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Может наконец появится нормальный драйвер для встроенного видео Intel без tearing?
     
  • 1.26, Аноним (-), 18:14, 10/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А в это время винда требует обязательной сертификации драйверов...
     
  • 1.28, eugenyn (ok), 18:23, 10/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Моя мышка отказалась стрелять в афроамериканца в кооперативной игре, мотивируя это тем, что мой цвет кожи - белый, и что она против выбора целей по дискриминационным мотивам.

    На счастье клавиатура не согласилась с ее оценкой в 48% и выдала только 21% вероятности этого, в результате чего я смог нажать на <1> и ножичком почикать противника.

    К сожалению видеокарта не согласилась с моим выбором на счет <1> и отключила шейдеры, чтобы я не смог увидеть результат.

    Хм...

     
  • 1.32, Пробегавший (?), 21:00, 10/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну напишет ИИ неглючный драйвер, а скорость?
     
     
  • 2.57, Аноним (-), 22:48, 11/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Ну скомпилирует программа машинный код, а скорость?
     

  • 1.37, Онаним (?), 23:14, 10/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Сразу вспоминается отмазка, обязательная во всех спеках: "производитель оставляет за собой право вносить изменения без специального уведомления"
     
     
  • 2.55, Клыкастый (ok), 15:42, 11/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    В корень!
     

  • 1.38, СуперАноним (?), 23:15, 10/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересно, а сама система генерации исходного кода драйверов будет с открытыми исходниками? Если проприетарная, то тогда придётся ещё верифицировать полученный код на отсутствие закладок вручную или с помощью инструмента, к которому есть доверие.
     
  • 1.40, Аноним (-), 00:56, 11/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Выглядит фантастично. Будет круто, если они смогут это довести до production уровня. Скольким программистам придётся тогда переквалифицироваться.
     
     
  • 2.42, anonymous (??), 01:40, 11/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Будет круто, если они смогут это довести до production уровня.

    не смогут. по многим причинам, которые мне расписывать очень лень.

     
     
  • 3.46, Michael Shigorin (ok), 03:33, 11/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >> Будет круто, если они смогут это довести до production уровня.
    > не смогут. по многим причинам, которые мне расписывать очень лень.

    Начиная с недоверия браминам? ;-)
    (заинтриговали в части возможной степени совпадения причин)

     

  • 1.43, Funt (?), 01:46, 11/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    побыстрее уже, это последняя надежда завести мой канон))))
     
     
  • 2.47, Ytch (?), 05:26, 11/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > побыстрее уже, это последняя надежда завести мой канон))))

    Ну почему же? Всегда есть, как минимум, еще один способ, который, кстати, может вообще попробовать каждый. Если взять рандомное количество рандомных байтов, то существует отличная от нуля вероятность того, что это и будет искомый драйвер. )))

     
  • 2.53, Piter_Ring (ok), 13:18, 11/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > побыстрее уже, это последняя надежда завести мой канон))))

    А что с твоим каконом ?

     

  • 1.49, axe (??), 08:36, 11/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Скайнет наступает?
    Программирование драйверов в случае успеха перейдет от императивного программирования на декларативный, только и всего. Человек никуда не денется.
     
     
  • 2.58, Аноним (-), 22:50, 11/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Тебе ж посчитали: писать придётся вместо n * m драйверов n + m спецификаций.
     

  • 1.59, arturpub (ok), 10:15, 14/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Чем всякой хренью эвристической заниматься, лучше бы пролоббировали в каком-нить ANSI стандарт на дрова и их с кернелом взаимный интерфейс, хотя бы в общих чертах. А то C99 есть, POSIX есть, а в дровах бардак. Так и будем до скончания лет прыгать с бубном вокруг *.drv, *.sys, *.dll, *.ko, *.ppd...
     
     
  • 2.60, anonymous (??), 10:21, 14/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    а ещё надо не забыть Самую Правильную ОС. а остальные запретить.
     
  • 2.61, belkin (ok), 12:40, 14/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Так было уже такое. Называлось I2O. Драйвер состоял из двух частей: зависимое от устройства (писали разработчики устройства) и зависимое от ОС (писали разработчики ОС). Почему не пошло не знаю.
    http://en.wikipedia.org/wiki/I2O
     

  • 1.62, lucentcode (ok), 00:35, 15/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Новость - просто супер! Во первых процесс внедрения технологии приведёт к открытию спецификаций, что есть гуд. Ну и для разработчиков устройств экономия, не нужно писать дрова. Нет издержек на дрова, можно и цену на устройства немного понизить. А это опять профит потребителю:)
     
     
  • 2.63, anonymous (??), 05:57, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Во первых процесс внедрения технологии приведёт к открытию спецификаций

    с какого испугу? O_O

     
  • 2.64, B.O.B.A.H. (??), 16:42, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Нет издержек на дрова, можно и цену на
    > устройства немного понизить.

    ну на ЭТО рассчитывать не приходится :)

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру