> 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.
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.
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.
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 were living 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.
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 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.
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.
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.
> 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.)
> 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.
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.
I have heard that the 2nd edition of Inside Windows NT is much more informative than the 1st.
Great read. It reminded me of a talk I attended in Amsterdam by Mark Russinovich.
Windows and Linux: A Tale of Two Kernels - Tech-Ed 2004
https://youtube.com/watch?v=HdV9QuvgS_w
NT was criminally underrated by Microsoft.
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.
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 sure looks a lot like VMS to me...
It does, and for reason I'm assuming many already know why. But if you weren't joking and were living under a rock. Look up the guy, Dave Cutler, who were mostly responsible putting together both.
Youtube has many of his interviews. The Computer History Museum (CHM) two part is perhaps most extensive. Links below to these.Hard file locking makes Windows Update into agony.
I can see the 70s motivation for it, but it is a terrible burden in modern times.
Hopefully is is not implemented here.
Kudos for not being another UNIX clone.
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 was looking for that line:
> 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.
So.. Why NT? Is it fast? Is it secure? Does it allow modern features? Is it hackable? Or why?
> None of the substantive code was written by AI.
That is impressive
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.
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.
> 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.)
>LOL. POSIX in ucrtbase! Those are words that I never expected to see together.
There's nothing in Moxnox ucrtbase that's not also in Windows ucrtbase. open(), read(), and write() are all POSIX functions in ucrtbase.