[ros-kernel] Posix Subsystem for ReactOS
KJK::Hyperion
noog at libero.it
Sat Jul 10 00:50:30 CEST 2004
At 02.24 08/07/2004, you wrote:
>GPL'd, too -- it'd make for a huge head start for our Posix subsystem!
it sounds good in the beginning, but it's unremarkable, really. I've
studied it in depth. The only actually useful thing it does is implementing
signals, and even in that case the only "new" thing it does is using APCs
to switch threads - the rest, i.e. the real signaling logic, has been
implemented a lot better in other systems, like FreeBSD (I know, I have
compared them directly - I just couldn't extract any useful information
from WINNTPOSIX's endless maze of nested if blocks, double-underscore
identifiers, huge identical blocks of code copied and pasted around and
miscellaneous misspellings)
Apart from that, its POSIX threads library is awful (he's even proud his
spinlocks don't spin), it doesn't integrate as much as it *invades* (takes
over trap handlers - even *disabling SEH* for threads with POSIX signals
enabled, pretty much negating the whole "POSIX additions to Windows" idea -
and hooks several scheduling functions, breaking them on purpose - what do
you call a non-interruptable wait that gets interrupted? and his trick
won't work on ReactOS, BTW), it has some byzantine version sniffing and
deeply hooks ntdll in a desperate attempt to support forking of Win32 processes
The latter will never, ever work, and the fact that his perverse
reinitialization on forking of .data and .bss sections in kernel32.dll,
user32.dll and gdi32.dll works *today* means nothing - it could break any
day, and is just postponing the inevitable, i.e. writing a *full* POSIX
environment, with a simulated VFS, simulated POSIX-like virtual memory and
all the goodness we enjoy today with Cygwin and Interix. Signaling and
forking weren't meant to be implemented without the rest
My verdict is: waste of time. Get coLinux working, instead. It has much
more potential
More information about the Ros-kernel
mailing list