Re: 2.7 thoughts: common well-architected object model

Kenn Humborg
2003-10-11T19:01:10Z

On Sat, Oct 11, 2003 at 11:34:05AM -0700, asdfd esadd wrote:
> There is a connex, fork() might be a bad example,
>
> it's simple - yes but 20 years have passed as Solaris
> is finding:
>
> pid_t fork(void); vs.
>
> the next step in the evolution CreateProcess

CreateProcess() did _not_ evolve from fork(). There is no fork()
equivalent in the Windows world. If anything it came more from
$CREPRC in VMS.

> BOOL CreateProcess(
> LPCTSTR lpApplicationName,
> LPTSTR lpCommandLine,
> LPSECURITY_ATTRIBUTES lpProcessAttributes,
> LPSECURITY_ATTRIBUTES lpThreadAttributes,
> BOOL bInheritHandles,
> DWORD dwCreationFlags,
> LPVOID lpEnvironment,
> LPCTSTR lpCurrentDirectory,
> LPSTARTUPINFO lpStartupInfo,
> LPPROCESS_INFORMATION lpProcessInformation
>
> evolved to .Net Process Class

"evolved to" is the wrong term - "wrapped by" is more accurate

> System.Object
> System.MarshalByRefObject
> System.ComponentModel.Component
> System.Diagnostics.Process

... which is a _user-land_ wrapper around CreateProcess.

> So let me restate the need again for a:
>
> * unified well architected core component model
> which is extensible from OS services to application
> objects

Which is a job for userland, in my opinion.

> * the object model should be defined from the kernel
> layer for process/events/devices etc. up and not
> started at the application layer

I still don't see why this needs to be in the kernel.
Give a concrete example of something that cannot be done
with the existing syscall interface and user-mode wrappers.
Or something significant that can be done easier with what
you are asking for.

Of course, your name "asdfd esadd" does look a bit troll-like...

Later,
Kenn