LINUX.ORG.RU

Lua в ядре NetBSD

 ,


1

6

Согласно докладу Марка Балмера (Marc Balmer, разработчик NetBSD) на FOSDEM'13, прошедшего 2 и 3 февраля, в ядро NetBSD-current добавлен скриптовый язык lua. Работы в данном направлении ведутся уже, как минимум, с 2010-го года.

Использование языка lua в ядре позволяет ускорить разработку драйверов, изменения функционала ядра, а также его настройку. Более низкий порог вхождения по сравнению с языком C позволит в будущем упростить разработку и ускорить темпы развития проекта, а также увеличить интерес сообщества к проекту NetBSD и привлечь новых людей.

>>> Доклад

★★★★★

Проверено: mono ()
Последнее исправление: Binary (всего исправлений: 3)
Ответ на: комментарий от densss

Да я прочёл, но к моменту прочтения уже откомментировал. Не удаляться же теперь.

agentgoblin
()
Ответ на: комментарий от agentgoblin

Господи! Жги...

... здесь уже точно нечего спасать...

anonymous
()
Ответ на: комментарий от tailgunner

О Си++? Точно нет.

Наверно знает, ровно на 1 слово больше тебя но этого хватает чтобы сказать всё нужное.

Napilnik ★★★★★
()
Ответ на: комментарий от sv75

А какие есть альтернативы борьбы с писателями произвольного кода

Откуда появился «произвольный код»? На Си-обработчиках прерываний не пишут произвольного кода.

на яву без явного kmalloc,

Ну час от часу не легче. Кто сказал, что в языке высокого уровня не может быть операции выделения памяти?

кроме как «выделить заранее» и «жрать в неподходящий момент»?

Совсем недавно ты говорил о «выделить сотню метров», а сейчас уже о просто «выделить». Прогресс, однако.

tailgunner ★★★★★
()

Идея не нова, но попытка встроить не-С-подобный язык в инфраструктуру UNIX изначально обречена на провал. Это тот случай, когда синтаксис важнее всего остального.

Ну привлекут они сотню lua-шников. А какова мотивация сишных прогеров выучить lua хотя бы до уровня «могу прочитать»?

u42
()

Бейсик еще в CMOS верните, да.

anonymous
()
Ответ на: комментарий от anonymous

Как только будет вшит один скриптовый рантайм, подменить его на другой будет задачей тривиальной.

anonymous
()
Ответ на: комментарий от tailgunner

> Я драйверов не писал, зачем там высокоуровневый язык?

Ровно затем же, что и везде.

Чтобы писать драйвера могли даже те, кто только год назад с трудом изучил один высокоуровневый язык? Или чтобы увеличить скорость кодирования за счёт уменьшения скорости выполнения?

pv4 ★★
()
Ответ на: комментарий от pv4

Чтобы писать драйвера могли даже те, кто только год назад с трудом изучил один высокоуровневый язык?

Нет.

Или чтобы увеличить скорость кодирования за счёт уменьшения скорости выполнения?

Снова нет.

Попробуй подумать еще.

tailgunner ★★★★★
()
Ответ на: комментарий от PolarFox

В инфраструктуре уникс уже плотно засел как минимум башик.

Ну еще можно и make вспомнить тогда или cron. Это не более чем сценарии выплнения настоящих программ.

u42
()

Драйверы на lua! Офигенно! Но лучше бы python встроили.

Quasar ★★★★★
()
Ответ на: комментарий от tailgunner

> Чтобы писать драйвера могли даже те, кто только год назад с трудом изучил один высокоуровневый язык?
>
Нет.

4.2.

Из доклада: «Modifying software written in C is hard for users ... Let users explore the system in an easy way»

> Или чтобы увеличить скорость кодирования за счёт уменьшения скорости выполнения?

Снова нет.

4.2.

Из доклада: «Rapid Application Development” approach to driver/kernel development»

Попробуй подумать еще.

Зачем, если в презентации и так всё написано?

Хотел добавить про переносимость, но о ней в презентации ни слова.

pv4 ★★
()

ну что за критика... жалкие людишки не видят тут эволюции: на lua пишем интерпретатор python -> на питоне пишим интерпретатор js ->bash->java->ruby->html и вот чудо у нас будут дрова на html Попов - красава - научился проникать в сознание людей

anonymous
()
Ответ на: комментарий от pv4

Из доклада

Из доклада

С какой радости я должен отвечать за слова какого-то там доклада? Я сразу сказал, что Луа - говно, но для драйверов нужен язык уровнем выше Си. И не только для драйверов, конечно.

Зачем, если в презентации и так всё написано?

На заборе тоже написано.

tailgunner ★★★★★
()
Ответ на: комментарий от pv4

Чтобы писать драйвера могли даже те, кто только год назад с трудом изучил один высокоуровневый язык? Или чтобы увеличить скорость кодирования за счёт уменьшения скорости выполнения?

Учитывая, что Си часто дают как первый/второй язык во всяких там ВУЗах, количество криворуких идиотов, думающих, что они могу писать на Си, и главное пишущих, хвататет.

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

Waterlaz ★★★★★
()
Ответ на: Ну давайте... от anonymous

... Допустим, знаю. А не подскажете на кой пень Вам всенепременно и именно в ядре нужен паттерн-матчинг? Ну, пример задачи приведите? Более-менее реалистичной.

из этого я могу сделать вывод, что ты даже в википедию не заглянул про паттерн матчинг

Waterlaz ★★★★★
()
Ответ на: комментарий от Manhunt

Так и сделали, если ты про микроядра.

Винду

И в каком месте она микроядро? Там гибрид же.

P.S.: Интересно, сколько весит чисто ядро в QNX?

IPR ★★★★★
()
Ответ на: комментарий от Manhunt

Ооох, тред не читаю - сразу отвечаю.

IPR ★★★★★
()
Ответ на: комментарий от vasya_pupkin

Мне одному кажется что «более низкий порог вхождения» тут как раз вреден ?

Вреден для Linux или Windows. А для NetBSD с её полутора пользователями лучше иметь драйвер, написанный школьником, чем не иметь никакого.

pv4 ★★
()
Ответ на: комментарий от tailgunner

Я сразу сказал, что Луа - говно

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

maloi ★★★★★
()
Ответ на: комментарий от maloi

таки скорее всего там таки не ванильный луа

Луа говно прежде всего потому, что он динамически типизированный.

в него добавили как минимум целочисленную арифметику

Вечно забываю эту милую особенность Луа %)

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Луа говно прежде всего потому, что он динамически типизированный.

при должном использовании это не вызывает проблем.

maloi ★★★★★
()
Ответ на: комментарий от maloi

Луа говно прежде всего потому, что он динамически типизированный.

при должном использовании это не вызывает проблем.

При должном использовании ничего не вызывает проблем. Вопрос цены этой «должности».

tailgunner ★★★★★
()

в ядро NetBSD-current добавлен скриптовый язык lua.

Грандиозно! И кому теперь нужен этот ваш linux?

splinter ★★★★★
()
Ответ на: комментарий от splinter

Грандиозно! И кому теперь нужен этот ваш linux?

в linux есть systemd с встроенным http сервером и прочими ништяками :Р

wota ★★
()

Мда… Кранты netbsd. Каким идиотом надо быть, чтобы из нормальной системы мелкомягкую сингулярность пытаться сделать.

cache ★★
()
Ответ на: комментарий от Waterlaz

Нет. Простите...

... но так дело не пойдет.

Ваши выводы интересны разве что Вам, как и то, на чем они там основаны (какова была, если конечно была, логическая цепочка, к ним приведшая). Я, помнится, предложил Вам сформулировать конкретную задачу (внимательно перечитайте приведенную Вами же цитату). Либо Вы это можете сделать, либо нет. Все просто.

anonymous
()

Использование языка lua в ядре позволяет ускорить разработку драйверов

*фэйспалм.ави* 15 BD disks.

Ещё нехватало X Window на php и всё, можно идти сдаваться в психушку - ТАМ нормальных намного больше!!

matumba ★★★★★
()

я тут наткнулся чуть ли не в первом же примере: WARNING: this code is for Lua 5.0. To run it in Lua 5.1, you must change the five calls luaopen_*(L) to a single call to luaL_openlibs(L).

splinter ★★★★★
()

Lua в ядре NetBSD

Бздунам виднее.

gray ★★★★★
()

Сделан первый шаг к включению WoW в ядро NetBSD. «Of course it runs WoW NetBSD»!

gorgoroth
()
Ответ на: комментарий от vasily_pupkin

Да, clean - уже что-то (хотя недостаточно, как по мне). Но сколько я не видел кода - всегда ресурсами управляют вручную. Уж не Линус ли запрещает?

unsigned ★★★★
()
Ответ на: комментарий от Alex-Alex

А как ты отразишь указатели на структуры ядра, которые описаны в .h файлах, примитивы синхронизации

А какие проблемы?

много еще чего на самом низком уровне, в котором можно использовать только С

Нет такого уровня, на котором можно использовать только си.

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

Я там выше говорил, что работа с памятью - практически единственное, что действительно есть у си для драйвера в готовом виде.

unsigned ★★★★
()
Ответ на: комментарий от splinter

Нет такого уровня, на котором можно использовать только си.

Программирование ядра linux.

Ты путаешь «можно» в значении «принципиально возможно» и «можно» в значении «дозволено».

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

хы хы ... пол года назад я писал модуль для схемы в ядре линукс. Даже дровинку для камеры нарисовал. интересно, но не нужно.

anonymous
()
Ответ на: Да хорош уже жечь-то... от anonymous

скрипторылые

Ух, какой бугурт у бинарылых.

Зы. Чувствую, пора расширять свои знания в теме луа за пределами конфигов awesome. Авось где-нибудь ещё столь же внезапно встроят.

border-radius
()
Ответ на: комментарий от tailgunner

Кстати, а почему бы и нет?

... Почему бы Вам не написать свое ядро на том языке, который Вам больше нравится? Ну, что называется испечь ядрышко свое, родное, с бриджем и поэтессами? Вон, господина Waterlaz прихватите? У Вас совместно есть реальный шанс хорошенько протроллить Торвальдса, а Вы его упускаете... Я в Вас верю, т.к. Вы точно должны знать как именно делать не нужно. :)))

anonymous
()
Ответ на: комментарий от border-radius

Я даже могу сразу сказать где...

... По слухам в World of Warcraft. И в lighttpd. Там точно есть, но не в таком объеме как в W.o.W. Наконец-то будет хотябы какое-то оправдание скрипторылости. :))) Но на Вашем месте я бы не разменивался по пустякам, а сразу переходил к похапе или «языку 1С»...

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.