3 ms·
Ok, admittedly, that's more than I expected. And hey, if they found some use cases in the embedded world, fine. Nevertheless, it's not exactly how it was pitch
by hannob 2y ago
Ok, admittedly, that's more than I expected. And hey, if they found some use cases in the embedded world, fine.
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.
- ryao 2y agoOSF/1 is the closest that microkernels ever came to being used in general purpose operating systems: https://en.wikipedia.org/wiki/OSF/1 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-history/ https://tedium.co/2019/02/28/ibm-workplace-os-taligent-histo...
- Zamiel_Snawley 2y agoGenode is an actively developed, general purpose desktop operating system that works today, and can use seL4, among other kernels.
- skissane 2y ago> The only still living variant is AIX. 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)
- ryao 2y agoThanks for the clarification.
- pjmlp 2y agoAdditionally it is the only UNIX that follows a Windows like approach to shared libraries, which might confuse folks coming from POSIX land.
- skissane 2y agoWhat specifically makes AIX's approach to shared libraries "Windows like"?
- pjmlp 2y agoUsing COFF instead of ELF, nowadays XCOFF. https://www.ibm.com/docs/en/aix/7.3?topic=formats-xcoff-object-file-format 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-client/setup-upgrade-and-drivers/dynamic-link-library#export-dll-functions https://learn.microsoft.com/en-us/troubleshoot/windows-clien... https://www.ibm.com/docs/en/xl-c-aix/13.1.3?topic=library-compiling-shared 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/es-aix_ll.pdf 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-support-for-delay-loaded-dlls?view=msvc-170 https://learn.microsoft.com/en-us/cpp/build/reference/linker... https://www.ibm.com/docs/en/aix/7.3?topic=memory-shared-libraries-lazy-loading 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.
- p_l 2y agoThe last surviving OSF/1 based OS is macOS, not AIX
- ryao 2y agoI thought OSF/1 was more of a kernel organ donor to macOS rather than the basis for it.
- p_l 2y agoThe entire "unix" part was updated with OSF/1 source code, with patches here and there of Free and NetBSD codebase. 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)
- lizknope 2y agoYour OSF/1 link makes a lot of references to Mach 2.5 which still required the Unix portions to be in kernel memory space so it was still a monolithic kernel. This was the same as NeXTSTEP which is the basis for the current Mac OS X. It looks like OSF/1 did move to Mach 3.0 which was a microkernel but I'm not sure if the Digital Unix / Tru64 moved to that or not. 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 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
- ryao 2y agoOSF/1 1.3 switched to Mach 3.0.
- lizknope 2y agoYou are right. I didn't realize that OSF/1 was used by anyone other than DEC which rebranded their version as Digital Unix and then Tru64 Unix. 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_intelsupergonXPSXPEBrochureOct93_4860969/page/n3/mode/1up https://archive.org/details/bitsavers_intelsupergonXPSXPEBro...