Moxnox 1.0: NT-Like, POSIX-Compatible OS Running Atop Btrfs
j / k
|
Down or up a comment |
h / l
|
Previous or next link |
?
|
This help |
A 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.
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.
Windows didn't ship with a competent PDF reader for over a decade and some because of the DOJ: Any attempt by Microsoft to enter a market that already had a competition was seen as anticompetitive.
It's pretty trivial to get ValidationOS running, even down to RL1 where the kernel and NT execution environment are the only things you have: https://youtu.be/Zw5ysOJcY84?t=610
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.
Pop quiz: across all kinds of FDs (including block files, dirfds, sockets, signalfds, eventfds, lock descriptors, /proc files, tmpfs files, timerfds, and so on), which features of {select/epoll, io_uring, O_NOBLOCK, inotify/fanotify, etc.} are supported?
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.
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.
more seriously, it's called plan9.
That said: please do not become yet another abuser of the 'xterm' terminal type ('xterm-16color' in this case). Thomas Dickey has a lot to say on the subject of things that pretend to be XTerm and are not. Windows NT has first-class terminal types of its own, and has had for about 30 years at this point. Pick whether you're going to be cloning the old CSRSS or the new Microsoft Terminal, or even something else like the old POSIX subsystem or MS/PC/DR-DOS.
* https://invisible-island.net/ncurses/terminfo.src.html#tic-i...
* https://invisible-island.net/ncurses/terminfo.src.html#tic-m...
* https://invisible-island.net/ncurses/terminfo.src.html#tic-w...
* https://invisible-island.net/ncurses/terminfo.src.html#toc-_...
* https://invisible-island.net/ncurses/terminfo.src.html#toc-_...
* https://invisible-island.net/ncurses/terminfo.src.html#toc-_...
* https://invisible-island.net/ncurses/terminfo.src.html#toc-_...
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.
THIS, so much. One time (~1995 or so?) I bought a boxed SUSE Linux release. Pulled out the book, and practically on the 1st page, there was a copyright notice specifically allowing anyone to copy that book & pass it on. Whereas for practically every other book I'd had in my hands up to that point, copyright notices consisted of various "forbidden to do X, Y or Z" statements.
That right there convinced me I had something different, something special in my hands. Disclaimer: I had read about "open source" before, so I did know what I was looking at. But still it felt special.
Unsurprisingly: note the documentation linked to at the end of the article. They're ALL Amazon "buy this book" links. Over on the Linux/BSD side of the fence, such references are typically web pages, man pages, a free-download pdf or the like.
It's not the "free beer" aspect that got me over time. It's the "open", "sharing", "community project", versus "closed", "profit", "property of BigCorp Inc".
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.
That is impressive
> 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.
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.
So in those platforms you can also enjoy having private symbols by default, delayed loading on first call, and the joy of import files.
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.