LINUX.ORG.RU

Lua в ядре NetBSD

 ,


1

6

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

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

>>> Доклад

★★★★★

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

Эммм...

... Сперва, на первой странице, я подумал что внезапно наступило 01.04. Но теперь я точно понял — пятница! :))) Спасибо. Настроение подняли. :)

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

Основные примитивы, существующие во всех ядрах (пусть даже во всех *nix) вполне можно внести на уровень языка. Скажем, порты, прерывания. А выше - пусть каждое ядро создаёт своё расширение базового языка. Они и так по факту это делают на уровне API.

Да даже взять более мощный язык - и то шаг вперёд. От сколького уберёг бы один RAII.

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

Вполне даже мультиплатформенный. Виндовс ведь не считают платформой, равно как и ДОС.

Тем более если дотнет называли кроссплатформенным ПО (несмотря на то что он виндовс-онли), то питону таковым называться сам бог велел.

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

s/части системы//

Такие дела.

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

Учитывая, что это правда, у тебя некислый такой йогурт :}

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

Мы пойдём другим путём. Напишем ЯП на XML и используем его в ядре.

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

Ну, тогда прошу прощения...

... за «наезд» с моей стороны. Чего-то совсем заработался до почти полной потери юмора. Да и новость такая что хоть стой, хоть падай. :)))

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

Путаешь теплое с длинным. .NET - это не язык программирования, в отличие от питона, который портирован на Windows, но использовать его там нормально нельзя. Интересно почему?

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

А выше - пусть каждое ядро создаёт своё расширение базового языка

Получится С, только в профиль.

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

А как ты отразишь указатели на структуры ядра, которые описаны в .h файлах, примитивы синхронизации и много еще чего на самом низком уровне, в котором можно использовать только С. Начнем с указателей, без которых программировать драйвер вообще невозможно?

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

Ну как почему. Потому что виндовс не нужен. Кто в своем уме будет никсовую прогу переносить на венду? Это ж какой геморрой с зависимостями - все либы, которые в никсах можно поставить из репозитория или из портов, в венду нужно поставлять вместе с прогой, и собирать вместе с нею же. Кто таким геморроем будет заниматься, и зачем? Чтобы поддерживать морально устаревшую ось?

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

Кто в своем уме будет никсовую прогу переносить на венду? Это ж какой геморрой с зависимостями - все либы, которые в никсах можно поставить из репозитория или из портов, в венду нужно поставлять вместе с прогой, и собирать вместе с нею же. Кто таким геморроем будет заниматься, и зачем? Чтобы поддерживать морально устаревшую ось?

Потому что у линукса пока ~1%. А широкой аудитории юзверей опенсорсным разработчикам тоже хочется, вот и хавают кактус, собирают все зависимости руками :)

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

Касательно Lua: язык довольно простой, быстрый, очень маленький и довольно легко встраиваемый. При небольшом размере имеет и свои regexp-ы, правда не совместимые со стандартными, но с довольно неплохой функциональностью. Если сравнивать по размерам исходников в несколько, а то и в десяток раз, меньше того-же guile.

Касательно списков в FreeBSD есть довольно удобная реализация списков и очередей для C на макросах живущая в /usr/include/sys/queue.h (в NetBSD есть немного отличающийся вариант) - как мне показалось гораздо более удобная, чем та, которая находится в ядре Linux.

Хотя, конечно, в общем - зачем Lua в ядре я так и не понял.

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

Я не о линуксе говорю а о любых POSIX-capable системах. БСД, линукс, соляра и прочие. 99% серваков, все не-х86 девайсы (планшеты, нетбуки, телефоны - либо ведроид, либо иос), предположим даже один процент десктопов. Плюс маки (там OS X). И доля венды в таком разнообразии устройств и осей - капля в море, у кого еще один процент получается ;).

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

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

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

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

Ага, динамическое выделение памяти в самый неподходящий момент....

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

Касательно списков в FreeBSD есть довольно удобная реализация списков и очередей для C на макросах живущая в /usr/include/sys/queue.h - как мне показалось гораздо более удобная, чем та, которая находится в ядре Linux.

А что, между ними есть заметные отличия?

sv75 ★★★★★
()

Странно, в рассылке я этого не видел (возможно просто плохо просматривал). Интересно, а как они решили особенности писания драйверов под нетку для луа?

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

чтобы было?

вон в юзерспейсе оно уже давно, а ничего толком на lua-то и не сделали.

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

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

пойди погугли, что такое паттерн матчинг

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

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

Ага, динамическое выделение памяти в самый неподходящий момент....

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

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

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

райнтайм будет жрать заранее сотню метров? )

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

Ой, а можно на Ваше объяснение полюбоваться...

... а я пока в танчики поиграю? Я уроки сделал... Честное пионерское... :)))

anonymous
()

Звучит комично. Хотел человек драйвер написать, смотрит, а там надо на С программировать. Да ну его к черту, подумалось ему, пойду дальше на html верстать.

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

Как мне показалось - в FreeBSD просто более удобно выстроено и оформлено. Плюс ко всему содержит так-же реализацию очередей. Вся работа идёт через макросы.

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

Ну давайте...

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

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

Эх, если бы я знал, когда покупал билет... Вот пингвины там в экспозиции у входа прикольные. Я минут 20 точно наблюдал как они в бесконечном цикле выстраиваются в стек, а потом первый прыгает в воду, проплывает на другую сторону платформы, и добавляется в конец очереди. Так и не понял, это их так тренируют, или они по собственному желанию... Может Linux виноват?

anonymous
()

Kernel mode crysis

anonymous
()

А смысл скртптовый язык в ядре размещать? Для настройки Lua вполне подходит. А вот драйвера писать или системные модули на ней не получится. В общем, получается что скрипты на Lua будут вместо конфигов?

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

если будут биндинги к системным сервисам, то почему бы и нет?

x4DA ★★★★★
()

Почему бы тогда не использовать Pawn, если есть привязанность к Си и необходимости в скриптовом языке?

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

А на эту мысль тебя что навело?

А какие есть альтернативы борьбы с писателями произвольного кода на яву без явного kmalloc, кроме как «выделить заранее» и «жрать в неподходящий момент»?

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

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

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

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

Ух, вот это вещества были в те времена! Не то, что теперь...

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