Nevertheless, it's not exactly how it was pitched. This Microkernel thing always had a "Linux is doing it wrong, we're doing it better" story behind it. They wanted to be a replacement for a general-purpose OS. That cetainly hasn't happened.
Nevertheless, it's not exactly how it was pitched. This Microkernel thing always had a "Linux is doing it wrong, we're doing it better" story behind it. They wanted to be a replacement for a general-purpose OS. That cetainly hasn't happened.
https://en.wikipedia.org/wiki/OSF/1
The only still living variant is AIX. Some of the code is in the XNU kernel, although that is a monolithic kernel rather than a microkernel. Apple converted it to a monolithic design for performance reasons.
That said, this article suggests that AIX is not using a microkernel either:
https://tedium.co/2019/02/28/ibm-workplace-os-taligent-histo...
This is incorrect.
The thing you have to understand about “AIX” is that historically it was not a single codebase, it was just a common brand for multiple unrelated IBM Unix offerings. (DB2 is the same story.) One of those offerings was AIX/ESA for IBM mainframes - and that was indeed based on the OSF/1 microkernel. But AIX/ESA died in the early 1990s-it was replaced by turning MVS aka OS/390 into a certified Unix, a role carried on by z/OS today, and later on by z/Linux as well. Whereas, the only AIX that survives to this day is the RS/6000 branch which isn’t based on OSF/1, and has a classic monolithic kernel design. Its distant ancestor, AIX version 1 for the RT PC, did use a microkernel (VRM), but that microkernel was very different from Mach and OSF/1 (it was written in a PL/I dialect, PL.8, that’s how alien it was)
https://www.ibm.com/docs/en/aix/7.3?topic=formats-xcoff-obje...
Having its version of dependency files, export files in Aix speak,
https://learn.microsoft.com/en-us/troubleshoot/windows-clien...
https://www.ibm.com/docs/en/xl-c-aix/13.1.3?topic=library-co...
https://download.boulder.ibm.com/ibmdl/pub/software/dw/aix/e...
Just like with VC++, lazy loading of libraries on symbol first use, done by the compiler.
https://learn.microsoft.com/en-us/cpp/build/reference/linker...
https://www.ibm.com/docs/en/aix/7.3?topic=memory-shared-libr...
I had some fun with Aix 5 back in the 2000's.
As for AIX, I used it on an RT around 1990 and then POWER based RS/6000 machines in the 1990's. It was a monolithic kernel.
Your own link mentions the failed Mach based Workplace OS and all the different "personalities."
From your link:
Internal discussion at IBM focused on AIX. Finally, at Comdex in 1993, IBM Chairman Louis Gerstner announced that the microkernel would not replace AIX. IBM realized that many AIX users would not accept performance penalties associated with microkernel systems. IBM was also concerned with the microkernel presenting a competitive impediment against high performance HP or Sun Unix systems than ran directly on the hardware. Instead, Gerstner told AIX customers that they would be able to migrate to Workplace OS, later if they were interested.
https://en.wikipedia.org/wiki/IBM_AIX#IBM_mainframes
> With the introduction of the ESA/390 architecture, AIX/370 was replaced by AIX/ESA[28] in 1991, which was based on OSF/1, and also ran on the System/390 platform.
I think another way to look at it is that "AIX" is a larger term for a family of operating systems. The one that I used and probably the most popular was the monolithic kernel based on System V Unix that ran on the RT and POWER architectures.
The AIX version that would run on Mach for workstations was never commercially released. The AIX version for mainframes was based on Mach but AIX/ESA. You can see other versions like AIX/386
The wikipedia page has a link to this Intel Paragon supercomputer which specifically says OSF/1 and Mach 3.0 microkernel.
https://archive.org/details/bitsavers_intelsupergonXPSXPEBro...
But especially when compiling code that was written in C for "modern BSD" (Net/Free/Open) you can easily hit the part where userland etc. is OSF/1 branched off BSD 4.3/4.4 and simply does not include things people "assume" are present on BSD (like the more advanced linked list and tree macros)