Remix.run Logo
aleph_minus_one a day ago

> Is there value in having a "working ReactOS" as of 2026 _for workstations_?

The ideas behind the NT kernels are much deeper than what many Linux fans think of it. Just to give some examples:

- the NT kernel is build around supporting multiple subsystems, even though currently only "1.5" are in active use: the Windows subsystem and WSL1 (the latter has for many purposes been replaced by WSL2)

- the NT kernel is not built around "everything is a file" (a very leaky and very incompletely implemented abstraction that is used in GNU/Linux); instead the central concept is the handle

- the I/O in NT kernel is built around the idea that the API is "completion-oriented" instead of being "readiness-oriented" as in Linux. This manifests in concepts like I/O Completion Ports (IOCPs), Overlapped I/O, ... Since this is a deeply technical topic, I refer to https://speakerdeck.com/trent/parallelism-and-concurrency-wi... (the most important information is in the backup slides (slides 43-54)).

mghackerlady a day ago | parent | next [-]

For a better implementation of everything being a file, Plan 9 and inferno come pretty close to literally everything being a file.

MisterTea a day ago | parent | prev [-]

- the NT kernel is not built around "everything is a file" ... instead the central concept is the handle

File descriptor, handle. Potayto, potahto.

aleph_minus_one a day ago | parent [-]

> File descriptor, handle. Potayto, potahto.

Under Windows, a lot more concepts are handles than just files, directories, symbolic links, pipes, mail slots, ..., e.g.

- processes, threads

- synchronization objects (mutex, semaphore)

- events (CreateEventEx)

- I/O Completion Ports

- Sections (ZwCreateSection) and Partitions (https://www.geoffchappell.com/studies/windows/km/ntoskrnl/ap... ) for memory

- waitable timers

- GUI components (HWND)

nineteen999 13 hours ago | parent | next [-]

And you can also argue that that's overengineered (the original NT design docs were posted on here a while ago), that the UNIX model (while much more primitive and simplified) has proven more successful in the real world, and that the original "clean, overengineered" NT design has been buried under a progressively bigger truckload of crap year upon year and is no longer as clean as it once was.

aleph_minus_one 13 hours ago | parent [-]

> the original "clean, overengineered" NT design has been buried under a progressively bigger truckload of crap year upon year and is no longer as clean as it once was.

The original UNIX model has (considering the current state of GNU/Linux) similarly buried under a progressively bigger truckload of crap year upon year and is no longer as clean as it once was.

A central difference is: the NT kernel stayed rather clean (the crapload rather happened in the Windows subsystem).

MisterTea a day ago | parent | prev | next [-]

I should have mentioned that I am speaking from a Plan 9 point of view where some of the common mechanisms are provided via the kernel file servers such as /proc.

remexre a day ago | parent | prev [-]

pidfd, eventfd, AF_NETLINK, epoll, memfd, timerfd?