> Also, the NT kernel is criminally underrated, and pretty much unknown to hobbyists. It had features that Linux took years and years to come up with its own design for...
A person after my own heart. NT was actually designed, versus being a reimplementation of an existing thing.
Too bad for all the horrible misfeatures that got designed in and that we still have to live with, like the entire I/O Manager/Object Manager/filters/driver stack mess, with no caching anywhere above the drivers.
It does, and for reason I'm assuming many already know why. But if you weren't joking and hadn't lived under a rock. Look up the guy, Dave Cutler, who were mostly responsible putting together both.
https://en.wikipedia.org/wiki/Dave_Cutler
Youtube has many of his interviews. The Computer History Museum (CHM) two part is perhaps most extensive. Links below to these.
I was curious about this a couple of years ago and ended up digging into the history of the NT design, comparing it to contemporary Unix systems, and writing this: https://jmmv.dev/2024/09/windows-nt-vs-unix-design.html . Pretty enlightening exercise.
Great article… but no mention of one of NT’s best features: completion ports! It ties together all the best features of the NT kernel and makes writing performant multi-threaded I/O applications (especially socket servers) a delight. The thread pool APIs introduced in Vista (which use completion ports under the hood) were also a sublime addition. https://pyparallel.org was possible to hack into existence over the course of about 3 months thanks to all these powerful primitives.
Far too many features required 3rd party tooling to access, or were buried within menus of menus. Then were slowly either duplicated or replaced with half baked solutions.
Microsoft never built the cheap, CLI-only version of NT that would have given Linux a run for its money. It would have helped preserve some of the hacker mindshare they once had with DOS.
I'm fairly vague about post-1990s Microsoft products, but wasn't Windows 2008 exactly that?
No GUI, with admin through Powershell, remote MMC snap-ins, or the SCUM/SCOM automation stuff. The managed hosting company I worked for around 2010 used it fairly heavily, and it didn't seem much worse to admin than the CFEngine / Puppet type tooling we had for Linux at the time.
Server Core is sort of that. The GUI is still there. You can run full Win32 GUI programs if you bring over the dependencies. There's less bots there but it's not analogous to a lightweight Linux distro that has no windowing environment.
Doing that would open them to the possibility of a competing stack that could push out the default Windows one, similar to a different Linux distro. Also, they wouldn't be able to be kings of the system and force whatever they want onto you, because you could then switch away to a different NT-based distro. They just wanted the hackers to go away, it's simpler for them.
The closest they ever got to a 'nothing' NT was something like Windows Core or Factory/Validation OS. They still ship with some windowing capabilities, but they could strip them out if they wanted to, because there is a barebones text-only mode in Windows. Of course, all these editions are or were tightly regulated and only issued to big businesses who are supposed to have them, it's nothing that a Linux user would want.
> NT was actually designed, versus being a reimplementation of an existing thing.
Well, yes, it was designed and it also was a reimplementation of an existing thing, this being VMS. Since it was designed by the designer of VMS (Dave Cutler) it would be comparable to the fictional ThoRix which would be a new OS designed by Thomson and Ritchie after they did Unix.
> Well, yes, it was designed and it also was a reimplementation of an existing thing, this being VMS.
My nitpick with the "reimplementation of VMS" statement would be that it didn't target source portability of VMS applications like Linux (and the GNU C library running on top of it) does with Unix/POSIX applications. I see it as Cutler and his team taking lessons learned from VMS and building something new incorporating those lessons in a different requirements framework.
IMHO this is one of the OSes with the weirdest decisions I've seen on here. I do agree with using PE instead of ELF, as the dynamic linking situation of the latter (and Unix-likes in general) is, to put it bluntly, a horrid mess.
The POSIX functions are split over ucrtbase, iphlpapi, and ws2_32, as on Windows, with anything that Windows doesn't implement put in mnposix.
LOL. POSIX in ucrtbase! Those are words that I never expected to see together.
I used AI to help with the mechanical parts of porting
I feel like it won't be long before someone comes up with a crazy chimera of an OS that can run DOS, Windows, Linux, BSD, and macOS binaries. It doesn't look like AI is replacing software developers, but rather boosting them quite significantly; there seems to be a lot of activity and new projects I've seen recently from many who aren't even using AI themselves, but must be somehow being inspired by others to do more.
> it won't be long before someone comes up with a crazy chimera of an OS that can run DOS, Windows, Linux, BSD, and macOS binaries
TBF, the only missing part of this is that Darling isn't developed enough to run many Darwin programs; otherwise you can have that today by installing WINE+DOSBox+Darling on Linux or your pick of *BSD or illumos. (Well, running *BSD programs on other systems is a weak point, but otherwise.)
As historical note, not all UNIXes use ELF, not only that came later in UNIX and related clones evolution, some of them like z/UNIX and Aix have gone for a PE like format, COFF.
So in those platforms you can also enjoy having private symbols by default, delayed loading on first call, and the joy of import files.
> The contract is that the syscalls and low-level interfaces match those of NT, but not the daemons or how the kernel itself is structured. This is in contrast to what ReactOS aims to do, which is an exact recreation of Windows.
However Windows NT originally was already POSIXy, what it lacked all these years was Microsoft being serious about POSIX subsystem, had that been the case, probably Linux would never taken off among PC, the same experience as OS X would be there in 1993.
The acquisition of OpenNT / Interix / Services for Unix (SFU) gave MSFT a really solid POSIX compatibility offering but it was too late-- Linux was already ascendant by that time. The no cost nature of Linux, as compared to the per-client client licensing for server versions of NT, can't be understated, though.
Indeed, Linux only became interesting to me on 1995's Summer, because getting that Linux Unleashed book with Slackware 2.0 CD was the route to easier homework assignments.
I had no way to do proper POSIX development at home with the Windows NT limitations, and access to the university labs running a mix of DG/UX and Solaris servers was rather limited.
29 comments
[ 0.22 ms ] story [ 4.6 ms ] threadA person after my own heart. NT was actually designed, versus being a reimplementation of an existing thing.
Windows and Linux: A Tale of Two Kernels - Tech-Ed 2004
https://youtube.com/watch?v=HdV9QuvgS_w
Far too many features required 3rd party tooling to access, or were buried within menus of menus. Then were slowly either duplicated or replaced with half baked solutions.
No GUI, with admin through Powershell, remote MMC snap-ins, or the SCUM/SCOM automation stuff. The managed hosting company I worked for around 2010 used it fairly heavily, and it didn't seem much worse to admin than the CFEngine / Puppet type tooling we had for Linux at the time.
The closest they ever got to a 'nothing' NT was something like Windows Core or Factory/Validation OS. They still ship with some windowing capabilities, but they could strip them out if they wanted to, because there is a barebones text-only mode in Windows. Of course, all these editions are or were tightly regulated and only issued to big businesses who are supposed to have them, it's nothing that a Linux user would want.
Well, yes, it was designed and it also was a reimplementation of an existing thing, this being VMS. Since it was designed by the designer of VMS (Dave Cutler) it would be comparable to the fictional ThoRix which would be a new OS designed by Thomson and Ritchie after they did Unix.
more seriously, it's called plan9.
My nitpick with the "reimplementation of VMS" statement would be that it didn't target source portability of VMS applications like Linux (and the GNU C library running on top of it) does with Unix/POSIX applications. I see it as Cutler and his team taking lessons learned from VMS and building something new incorporating those lessons in a different requirements framework.
The POSIX functions are split over ucrtbase, iphlpapi, and ws2_32, as on Windows, with anything that Windows doesn't implement put in mnposix.
LOL. POSIX in ucrtbase! Those are words that I never expected to see together.
I used AI to help with the mechanical parts of porting
I feel like it won't be long before someone comes up with a crazy chimera of an OS that can run DOS, Windows, Linux, BSD, and macOS binaries. It doesn't look like AI is replacing software developers, but rather boosting them quite significantly; there seems to be a lot of activity and new projects I've seen recently from many who aren't even using AI themselves, but must be somehow being inspired by others to do more.
TBF, the only missing part of this is that Darling isn't developed enough to run many Darwin programs; otherwise you can have that today by installing WINE+DOSBox+Darling on Linux or your pick of *BSD or illumos. (Well, running *BSD programs on other systems is a weak point, but otherwise.)
There's nothing in Moxnox ucrtbase that's not also in Windows ucrtbase. open(), read(), and write() are all POSIX functions in ucrtbase.
So in those platforms you can also enjoy having private symbols by default, delayed loading on first call, and the joy of import files.
> The contract is that the syscalls and low-level interfaces match those of NT, but not the daemons or how the kernel itself is structured. This is in contrast to what ReactOS aims to do, which is an exact recreation of Windows.
However Windows NT originally was already POSIXy, what it lacked all these years was Microsoft being serious about POSIX subsystem, had that been the case, probably Linux would never taken off among PC, the same experience as OS X would be there in 1993.
I had no way to do proper POSIX development at home with the Windows NT limitations, and access to the university labs running a mix of DG/UX and Solaris servers was rather limited.
I can see the 70s motivation for it, but it is a terrible burden in modern times.
Hopefully is is not implemented here.