[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...

Alex Ionescu ionucu at videotron.ca
Mon Feb 7 19:12:25 CET 2005

ea wrote:

> 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 
> XPSP2IT), 

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 
"Server" DLL.

> 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.

Best regards,
Alex Ionescu

More information about the Ros-dev mailing list