[ros-dev] RE: [weiden] 13459: moved smdll to rosrtl. We just
_can't_have separate dlls for everything internal,
that's what static libraries are for. Unless we want a dll
hell evenworse than necessary...
ionucu at videotron.ca
Mon Feb 7 19:12:25 CET 2005
> Thomas Weidenmueller wrote:
>> Ge van Geldorp wrote:
>>> I think you are acting unbelievably rude here. Please revert your
>>> change and
>>> discuss this on the mailinglist first.
>> You're right, I apologize for moving it without permission. If anyone
>> or if the majority thinks this change was right, someone may do it
>> again, I'm not going to anymore. Same applies for epsapi and expat.
> I am sorry that little library caused so much noise. I hope a long
> explanation won't hurt you. I could not decide if it should be a
> static, or a dynamic library (I should have sent it as static to
> Alex), or even something else, but a few days ago I recalled what Alex
> himself quoted about LPC - "Security through obscurity" - and I
> decided to make it dynamic. It is ridiculously small, but it is the
> client side library for clients of the Session Manager subsystem server.
I would make it static if I were you, but only when it's complete.
Dynamic libraries are much easier to debug, but if it's not in the "Real
Thing" then it should be static..it's also faster ;)
> It is wat kernel32 is for the W32 subsystem. This is a new concept, or
> an implicit one in the NT architecture. Possibly, it is the obscurity
> brought by the implicit idea of having environment servers running as
> clients of the session manager, that has prevented, up to present
> days, anyone developing new subsystems. MS made it a static library, I
> suppose, but I guess not because it is that small.
I'll look into this... my work on LPC has been indefintely delayed due
to some other projects, but I've done a lot of research on csrss. I have
the full APIs/Structures used and I'm making a document out of it
(Slowly)..it won't be much use to ROS since we supposedly don't want to
clone NT so much (and I agree, this is ultra internal stuff that doesn't
need to be cloned..nobody should know how to talk to crsrss (but maybe
they all will start making programs after I publish the docs :P). But
I've never looked at smss much... there is however a document from MS
that shows how to create your own subsystem... I'll look into it and see
what I can find out for you.
> Examples of really small components are csrss.exe (6144 bytes, in
Dumb loader which loads the csr dlls.
> and csrsrv.dll (32768 bytes, in XPSP2IT: this one is the server #0
> that csrss hosts and was removed in NT 4.0, but was reborn in NT 5.x).
> As csrsrv.dll shows up again since NT 5.0, I deduced I had not to put
> smdll code in ntdll.
Right, a very confusing concept of CSRSS, the externel CSR Server
> I actually don't know what is the right place for this code, because
> it does not exist in a visible library in The Real Thing, but I chose
> that place for coherence with other subsystems.
> At present, code is unfinished and off main line also in smss,
> therefore, moving it to a proper place is to you.
I would leave it as you created it, but make it static later on... but
I'm pretty sure MS has this in a dyn dll somewhere.
More information about the Ros-dev