Robert Köpferl wrote:
Ey, rather interesting all this.
Leads directly to questions: Why is it needed to maintain
compatibility with NT. Either API and Semantics are used just and only
in ROS. OK, some never seen sub systems exist, but will they ever run
on ROS or wil new ROS-ss ever run on NT?
1) The SRM, in the executive, uses LPC to talk to the LSA, which runs in
user mode. Therefore the security model in NT is LPC dependent. You
could find an alternative IPC mechanism, but you won't bet some subtle
behaviour does not depend on LPC.
2) RPC is totally based on LPC, if the remote process is located on the
same node of the calling process. And OLE/COM is based on RPC. Again
some subtle behaviours may depend on LPC.
3) A side effect of having the LPC APIs and semantics compatible with
NT's is that subsystems developed for ROS will run in Windows NT,
Windows 2000, Windows XP, and in Windows Server 2003.
4) Another advantage is that you can pick up the smss.exe from an XP box
and try running it under ROS. Or the csrss.exe, which is the Win32
emulation process: there are some subtle details of the Win32 APIs that
can not be explained it you don't go down to the LPC level. As LPC is
still not fully documented, it may help understanding its internals,
just like running real Windows programs helps Wine coders understand
where their Win32 APIs implementation will need tuning.
5) Having a compatible LPC implementation could even help MS (OK, stop
bragging!)
Emanuele