Alex Ionescu wrote:
If you really want to argue using Ockam's Razor
(note for others:
Ockam's razor basically says that the simplest assumption is usually
the correct one), then I'm afraid I'm the one winning this argument.
oh, FFS (note for others: "For Fuck's Sake"), just grow up already
Emanuele: let's discuss your CSRSS.EXE fetishism this time. You know
what's my position about subsystems, let's let the others know too. To
keep it simple, I'll use a bullet list:
- the concept of "subsystem server" just complicates the taxonomy of
Windows processes unnecessarily. I'd like to think to ReactOS only
having two kinds of processes: services and non-services (three: the
SCM, in a category on its own). All of the other ad-hoc semantics
(start-up sequence, user session lifetime, connection to the display,
etc.) can be implemented either with service semantics or with a custom
logic specific to a certain service. Keyword: SIMPLICITY
- personalities as services? meh. Personalities should be the closest
possible to utility libraries, you should be allowed to mix them (mixing
Win32 and POSIX is very necessary to implement a BeOS personality, for
instance, and POSIX itself needs to at least be aware of Win32 if we
want it to be actually useful), and please let's stop the insanity:
POSIX was designed to be implemented in kernel mode, and there's nothing
shocking or horrific about running POSIX in a kernel (I mean, lots of
systems do, none has crashed and burned. Even QNX - signals and the
lowest-level forms of IPC are implemented in the microkernel). Keyword:
FLEXIBILITY
- Win32 consoles. Yuck. Let's see: I/O and signaling in user mode, user
interface in a system process, could it be any more wrong than this? why
yes, it _is_: in Win32 its handles share a namespace with NT handles,
despite having perversely differing semantics. What a disaster. Keyword:
ORTHOGONALITY