Linux-реализация дверей Solaris - PullRequest
3 голосов
/ 28 июня 2010

Я портирую некоторый код Solaris на Linux.Этот код использует специфичные для Solaris дверные функции.

Есть ли эквивалент в Linux?Я нашел пару примеров, но они, кажется, не обновлялись много лет.

http://www.rampant.org/doors

http://sourceforge.net/projects/ldoor

Ответы [ 4 ]

1 голос
/ 02 июля 2010

Двери Solaris - это ублюдок скорости.Например, вызов двери другого процесса использует тот же временной интервал, что и планировщик процесса вызывающей стороны.Я действительно сомневаюсь, что вы можете получить это с Corba, и если двери в вашем приложении используются из-за его скорости, вы можете столкнуться с проблемами производительности.Я бы посоветовал вам использовать другой unix IPC (уже упоминавшуюся общую память, ...), но это, конечно, зависит от вашего приложения.

1 голос
/ 28 июня 2010

В Linux нет дверей , как вы уже знаете. Двери - это своего рода механизм RPC. Вам в значительной степени придется перекодировать, используя общую память. Или используйте API.

Существует API, который активно не поддерживается:

http://www.rampant.org/doors/

0 голосов
/ 06 октября 2013

Интересно, что у дверей Solaris много общего с Android Binder: http://elinux.org/Android_Binder

0 голосов
/ 28 июня 2010

Вики говорят, что это RPC и Solaris. В Linux для RPC вы можете использовать Corba для этой цели. Поиск в Google «Linux Corba» показывает много хитов.

Поскольку переносимость, очевидно, становится проблемой, во-первых, перед фактическим переносом, преобразование приложения для использования некоторой переносимой платформы RPC (Corba, вероятно, самая переносимая) имеет большой смысл. Если переносимость не имеет значения, то D-Bus , похоже, стал стандартом де-факто для IPC в Linux.

В статье о двери в Википедии также упоминается, что механизм также позволяет передавать список файловых дескрипторов туда и обратно. В Linux проверьте man 7 unix для SCM_RIGHTS.

...