|
|
|
|
|
by skissane
1298 days ago
|
|
> I think my point is clear enough though: if we consider the design and architecture, rather than compatibility Is there such a thing as a Unix “design and architecture” though? The architecture of Linux and XNU are quite different. Hurd even more so (as you say, if you count that). Later AIX versions moved to a much more standard architecture, but the original AIX (for the IBM RT-PC) ran on top of a microkernel (VRM) which was allegedly written in a PL/I dialect not C (the microkernel was shared between AIX and PICK OS, and you could run AIX and PICK simultaneously on the same machine, with the microkernel ensuring they didn’t step on each other’s toes). Historically, Unix was mostly about the APIs, not changeable details of how they are implemented internally. AT&T’s early 1980s port of Unix to IBM S/370 mainframes was essentially a compatibility layer running on top of IBM’s TSS/370 time-sharing operating system. That’s a very different architecture from most other Unixes, except maybe z/OS (although TSS and MVS were distinct IBM mainframe OS lines, the former now long discontinued), and Cray UNICOS’ ability to run as a guest under COS. Yet it is both a genetic Unix (based on the original code) and from AT&T themselves, so what sense does it make to say it isn’t “really” Unix? But if it counts, why not z/OS? |
|
I think so, absolutely yes.
Internals of kernel are largely irrelevant, I would submit. That's not visible to the user. Minix 3, Darwin atop XNU, HURD, doesn't matter: boot it in single-user mode and they all look much alike. Cryptic little terse commands, all in lower-case, with single-letter switches after `-` and these days often full-word ones after `--`. Lots of cryptic little plain-text config files, both in a global directory (usually in `/etc`) and in the user's home directory (usually under `/home`). No drive letters or indicators, one global filesystem, directories separated by `/`.
Then look at the things that are only pretending to be a Unix, from NT to OpenVMS to z/OS, and there's a totally different shell or set of shells, there are drive indentifiers and maybe directories, maybe not, with who-knows-what as the delimiter. NT has "real" internal identifiers mapped to Windows-like ones and to Unix like ones, these days via at least 3 entirely separate subsystems: the original POSIX subsystem, much enhanced; and WSL 1, with code from the Windows Android runtime emulating a Linux kernel; and WSL 2, using Hyper-V to run a real kernel in a special porous VM. (Talk about baroque!)
I think it's very clear which of these are UNIX-like designs, with a Unix-like filesystem and a Unix-like shell and so on, and other ones, where but it's a (maybe option) extra, it's not the real underlying OS and you can quite possibly ignore it and never see it, or even remove it, and you can't use the Unix-like personality to run and administer your machine.
Yes, I think it's a real and important distinction.
QNX, say, is Unix-like. VMS, say, is not. Even if one has better compatibility with the notional "real thing" than the other.