LINUX.ORG.RU
ФорумTalks

Представлена реализация шины D-Bus, работающая на уровне Linux-ядра


0

0

Разработчики из компании Collabora представили проект kdbus, в рамках которого создан экспериментальный прототип шины для межпроцессного обмена сообщениями D-Bus, работающий на уровне Linux-ядра. Встраивание D-Bus в ядро позволило существенно повысить производительность за счет уменьшения числа копирования областей памяти и минимизации числа переключения контекста между ядром и процессом-демоном, работающим на прикладном уровне.

В kdbus для отправки сообщений реализован новый тип сокетов AF_DBUS, который напоминает Unix-сокеты и позволяет доставлять сообщения приложению-получателю напрямую, без задействования процесса-посредника (dbus-daemon). Изменения внутренней структуры организации обмена сообщениями не заметно для конечных приложений, так как они используют функции библиотеки libdbus, внешний API которой остался неизменен. Текущая реализация kdbus пока полностью не избавилась от необходимости запуска dbus-daemon, который используется для аутентификации и активации D-Bus, драйвер org.freedesktop.DBus также пока реализован только через dbus-daemon.

Измерение производительности утилитой dbus-ping-pong показало, что kdbus оказался быстрее реализации D-Bus на уровне пользователя в 1.8 раз для платформы i386 (тестовое окружение было запущено под управлением KVM) и в 3 раза для платформы ARM (использовался смартфон Nokia N900). При использовании другого тестового набора прирост производительности был на уровне 26%.

http://www.opennet.ru/opennews/art.shtml?num=27984

Сделайте кто-нибудь новость на главную.

ЗЫ Дискас!

Больше ядреных дырок, хороших и разных!

shimon ★★★★★ ()

А давайте ещё иксы в ядро воткнём.

Breton ()

Монолитным ядрам - быть!

Конечно скорее нужно включить d-bus в ядро! 26% ускорения на дороге не лежат!

Manhunt ★★★★★ ()

gut! ждем еще чтобы ядро выставляло свои интерфейсы на dbus, и /proc можно закапывать.

k0l0b0k ★★ ()

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

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

Всё вйадро!

З.Ы. По теме: довольно логично внести D-BUS в ядро как какой-то advanced IPC. Соб-сно IPC-то в ядре и место.

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

>а если вылезать?

Один тролль из сказочной страны лапландии обосновавшийся в стране победившей демократии, заявлял что стабильный API это нонсенс ;))

Freiheits-Sender ★★ ()

Когда уже сделают D-Bus over TCP/IP?

Yareg ★★★ ()
Ответ на: комментарий от Freiheits-Sender

> стабильный API это нонсенс

Что же, у его решения есть свои преимущества.

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

> А давайте ещё иксы в ядро воткнём.

А потом coreutils туда же. А потом будем втыкать ядро само в себя.

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

> А потом coreutils туда же.

Е еще bash и perl! Это должно значительно ускорить выполнение скриптов!

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

Один тролль из сказочной страны лапландии обосновавшийся в стране победившей демократии, заявлял что стабильный API это нонсенс ;))

У ядра стабильное, обратно-совместимое API в пространстве пользователя.

Deleted ()

Давайте уже Eclipse туда сразу и мощно, а то Emacs многим не нравится.

iZEN ★★★★★ ()
Ответ на: комментарий от Freiheits-Sender

> Один тролль из сказочной страны лапландии обосновавшийся в стране победившей демократии, заявлял что стабильный API это нонсенс ;))

Кроа-Хартман не из Лапландии.

tailgunner ★★★★★ ()

Всеми руками за.

AX ★★★★★ ()

Я - за!

там ему и место.

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

> erfea> а если вылезать?

куда?


не «куда?», а «где?». Опечатался он.

pv4 ★★ ()

Не нравится мне эта затея... Ох не нравится. Всё равно что HAL в ядро пихать.

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

Больше ядреных дырок, хороших и разных!

Можно подумать, что дырка в юзерспейном рутовом демоне чем-то лучше.

По теме - там ему и место, IPC - работа ядра, а DBUS - это уже де-факто стандарт для Linux IPC. Интересно, как Линус будет отмазываться и не пущать.

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

>«total and utter crap»

Вот так большая часть хороших идей и гибнет.

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

> Можно подумать, что дырка в юзерспейном рутовом демоне чем-то лучше.

А у вас в федоре он рутовый?

103 2983 0.0 0.0 2884 1064 ? Ss Sep12 0:59 /usr/bin/dbus-daemon --system

tailgunner ★★★★★ ()

побыстрей бы допилили

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

Эээ, ну может хоть как-то обмотивирует, скажет, как это можно сделать на существующих решениях хотя бы.

Кстати о дырках - рестарт D-BUS может привести к очень интересным последствиям уже сейчас, и тем не менее в дистрах все так же можно сделать /etc/init.d/dbus restart. По крайней мере в ядре этого сделать будет нельзя. Это конечно не совсем дырка, но админу надо знать.

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

> рестарт D-BUS может привести к очень интересным последствиям уже сейчас, и тем не менее в дистрах все так же можно сделать /etc/init.d/dbus restart

А ещё можно уронить иксы вместе со всеми иксовыми аппами рестартанув desktop manager. А ещё можно всё удалить командой rm -rf /

Нельзя запрещать юзеру делать тупые вещи, так как при этом можно запретить и умные.

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

А у вас в федоре он рутовый?

Гм, нет, прогнал, тоже dbus :-)

В любом случае дырка в дбас может помочь ломануть, например, полиси-кит:

root 1929 0.0 0.2 13768 4640 ? S 11:38 0:02 /usr/libexec/polkit-1/polkitd

Ну или upstart

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

> В любом случае дырка в дбас может помочь ломануть, например, полиси-кит:

А ошибка в ядерном DBUS, даже не эксплуатируемая, может свалить тачку. И это ради 26% производительности? Нах.

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

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

Fixed.

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

A 23% - это плюс к работе на батарейке. Linux - он уже давно не только на серверах.

vga ★★ ()

>Встраивание D-Bus в ядро позволило существенно повысить производительность

Им нехватает производительности шины сообщений? Они что, фильмы по ней гоняют?

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

>> А ошибка в ядерном IPC, даже не эксплуатируемая, может свалить тачку. Нах

Fixed.

Капитан, что вы хотели сказать?

A 23% - это плюс к работе на батарейке.

facepalm.mkv.bz2 (4.7G)

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

Капитан, что вы хотели сказать?

Да поправил коллегу-капитана, а то он че-то только про дбас, а про остальной IPC, который _уже_ в ядре - забыл.

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

>> Капитан, что вы хотели сказать?

Да поправил коллегу-капитана

Ненене, коллега же задал вопрос: и это ради 26% производительности?

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

Не только, еще безопасность, некоторые вещи невозможно сделать полностью безопасными в юзеспейсе, рестарт одна из них, выше писал.

Да и потом - в андроиде что-то есть свое для IPC, а чем нокия хуже? Не примут в ядро - останется в дереве мииго, да и все. Может кто еще заинтересуется.

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

vga ★★ ()

Сделайте кто-нибудь новость на главную.

fixed.

uju ★★ ()

А что тут обсуждать? Понабежит школоты, которая считает что на 26% ускорятся все их приложения, а не всего-лишь обмен сообщениями и будет кричать «нужно!», «в ведро!».

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