Linked by Hadrien Grasland on Sun 29th May 2011 09:42 UTC
OSNews, Generic OSes It's funny how trying to have a consistent system design makes you constantly jump from one area of the designed OS to another. I initially just tried to implement interrupt handling, and now I'm cleaning up the design of an RPC-based daemon model, which will be used to implement interrupt handlers, along with most other system services. Anyway, now that I get to something I'm personally satisfied with, I wanted to ask everyone who's interested to check that design and tell me if anything in it sounds like a bad idea to them in the short or long run. That's because this is a core part of this OS' design, and I'm really not interested in core design mistakes emerging in a few years if I can fix them now. Many thanks in advance.
Thread beginning with comment 474926
To read all comments associated with this story, please click here.
Comment by Kaj-de-Vos
by Kaj-de-Vos on Sun 29th May 2011 13:20 UTC
Kaj-de-Vos
Member since:
2010-06-09

I'm not really interested in spending a lot of time discussing this, sorry. You asked for warnings, and this is mine. We could argue endlessly about the details, but it boils down to this: the abstraction level of declarative messaging is higher than RPC. Leaking of implementation details is detrimental to interfacing with other hardware architectures, binding with other languages, and interfacing with historical versions of interfaces on the same language and hardware architecture. Therefore, a higher abstraction level is desirable.

Reply Score: 1

RE: Comment by Kaj-de-Vos
by Alfman on Sun 29th May 2011 19:17 in reply to "Comment by Kaj-de-Vos"
Alfman Member since:
2011-01-28

Kaj-de-Vos,

"Leaking of implementation details is detrimental to interfacing with other hardware architectures"

I understand all your initial criticisms, however I'm curious how an RPC interface leads to leaking of implementation details?

Corba interfaces are completely portable across many languages/platforms, including scripting languages.

Heck, just using corba itself would provide instant RPC compatibility with almost all serious languages out there.

If corba is too heavy weight to use in the OS, one could still provide an OS binding for it - that might even be a novel feature for the OS.

Reply Parent Score: 2

RE[2]: Comment by Kaj-de-Vos
by Neolander on Sun 29th May 2011 19:33 in reply to "RE: Comment by Kaj-de-Vos"
Neolander Member since:
2010-03-08

If you understood his criticism, could you please answer my questions ? Or at least some of them ? I still don't get what his problem is myself, and it seems that he isn't interested in answering...

Edited 2011-05-29 19:37 UTC

Reply Parent Score: 1

RE[2]: Comment by Kaj-de-Vos
by Kaj-de-Vos on Sun 29th May 2011 19:38 in reply to "RE: Comment by Kaj-de-Vos"
Kaj-de-Vos Member since:
2010-06-09

In RPC, you assume that the remote end has a procedure you can call. That's a big assumption. To make it work, you assume that the remote procedure is written in the same programming language. That's a huge implementation "detail".

Remote objects are just an object oriented extension of the RPC concept. They were en vogue in the nineties, when everybody switched to remote architectures. This was when CORBA and other such methods were found to be too cumbersome.

Messaging has a long history, really. These lessons were already learned in AmigaOS, BeOS, Syllable and new messaging systems such as 0MQ. You can also ask yourself what the most successful remote protocol does. Is HTTP/HTML RPC based?

Reply Parent Score: 1