I couldn't care less about linux, moreover - improving it, I've chosen to POSIX my (mostly non-existent yet) OS just for one reason, and it's practical - to attract possible future (or rather futuristic
) users. to let them run those frigging console things. On ARM SBC landscape, they all are used to this environment (there is nothing except linux and its lame brother from the Corporation of Goodness), so providing them a basic set of familiar utilities and programs, would be good for the OS. And it's impossible to implement all that by a single person or even small group. So porting existing implementations comes to mind. Because of this combination, POSIX has been chosen to implement. Mostly because there are tons of prgrams openly available, written to POSSIX. But of course, it has danger of distracting interested people from targetting the main API. It's a tradeoff. Anyway, where are those "interested people"?
My OS is going to have environmental subsystems (ESSs) - API implementations, providing the environments for programs written for them. It's an NT concept. I want to create a minimalistic WinAPI-like subsystem (the main one), - I have no illusion to implement all that cosmos, just a basic set and POSIX subsystem. Binary or at least source code compatibility for the former would be so kewl, but it's infeasible. Binary compatibility is even irrelevant, because I target MIPS!
NT begun on MIPS, but it was not today. Maybe for some silly simple WinAPI programs, it could be possible to port them over, but mostly I am left here with the need of writing my own stuff. So I have a broad field for my own API design desicions, creativity shortly speaking. for POSIX on the other hand, I'll try to keep the standard to easen porting (compiling) its programs to the OS. No X stuff though (I know it's not POSIX). just no no no. Every graphical need should be satisfied through the main WinAPI ESS. Graphical subsystem is considered an (important) extension of the base API. From this, we see, that it's possible to have hybrid programs having bindings both to WinAPI an POSIX. How is that feasible - subject for farther work.
Every ESS may be extended by frameworks and similar stuff the way it's defined for that API set. Every ESS consists of:
1) possible kernel module dealing with ESS specifics (like fork() thing mentioned above), that can be efficiently resolved only in kernel. Anything non-specific should be taken from the main (always present) ESS - WinAPI-like.
2) support processes, creating all the needed runtime aspects of the particular ESS.
3) dynamic libraries implementing the API in question.
Except the main ESS, every other ESS should be installed (and could be deinstalled). Any ESS except the main one can and do depend on other ESSs (at least main one, that means - we try not to duplicate things hardly). In theory, it's possible to add as many new ESSs (or extend existing ones) as possible. In theory.
This is why I am looking at POSIX. I don't care too much of all uninspiring things in it, because I have a strong reason to still have it, that prevails over my reluctance to everything UNIX*. POSIX is the embodiment of UNIX literally.
* - except C.