3 ms·
SAs have their own likes/dislikes. From an end-user dev point of view AIX is pretty harsh. XCOFF binaries mean almost no tooling works with them. It’s 2020 and
by apaprocki 6y ago
SAs have their own likes/dislikes. From an end-user dev point of view AIX is pretty harsh. XCOFF binaries mean almost no tooling works with them. It’s 2020 and IBM finally came around to adopting LLVM/Clang to the platform. There’s lots of strange deployment warts like no $ORIGIN support, everything is shared/PIC but you have none of the ELF naming support, shared libraries stay in a system-wide library cache even after the processes exit (i.e. updating the file on disk and starting a new process will not guarantee it is used), and the list goes on and on. It takes a huge amount of effort to keep all the usual open-source packages running there.
You have to do the open-source work, though, because the vendor side is as close to abandonware as you can come. The OS is basically not touched unless they have to. For example, they gave up trying to actually fix their system headers to have C++ include guards, so they just hacked the compiler to extern C all system headers —- a terrible hack that GCC actually adopted as well to stay compatible. There’s no versioning of user-space library additions or changes, so you can’t easily make code forwards/backwards compat in the preprocessor. They gave up trying to follow modern C++ and pulled in a Clang front-end. User binaries remained broken for years until anyone complained about them. There are people there doing the bare minimum to add support for some new POSIX interface that comes out, but the headers are not “clean” in the same way that the Solaris ones are. Solaris headers and man pages are some of the best I’ve ever seen. They could constantly improve the system, but they don’t. They do what customers ask for and no more.
It might be great at taking some Fortran simulation and cranking the nodes up, but it’s not great at coming anywhere close to competing with Linux for general computing use.
- saagarjha 6y agoSounds a lot like macOS.
- NCommander 6y agoAIX at least has LLVM, and IBM had unofficial GCC ports for years. If you want a dumpster fire for development work, I'd highly recommend HP-UX. HP-UX's stdio wasn't very std back in 1990s. What I remember is a bunch of syscalls seemingly existing but not actually working despite being OK with the same code on Solaris and Linux. Somewhere around 2003-4, it appears all development basically consists of security patches and new Itanium hardware enablement, and aCC barely supported anything C++ related; its more like trying to use Borland C++, and GCC was really iffy, although it had the advantage that post PA-RISC, HP did adopt ELF.
- apaprocki 6y agoYeah, I've used HP-UX as well. All the fun of an OS and compiler no one uses, with the added bonus of all the quirks of a CPU that really no one uses. I wonder if the soldiers 1000s of libraries deep in the Oracle link line read HN and have some fun IA-64 porting tales.
- calvin_ 6y agoAs someone with lots of experience porting stuff to AIX, this is fairly accurate. AIX takes a malicious compliance stance to POSIX. The worst part is that the AIX compatibility layer IBM created for i is closer to Unix normalcy than AIX itself.