IBM shifts remaining US-based AIX dev jobs to India – source
theregister.com
theregister.com
Its proprietary systems were riding high in the 90s (even if market-share wasn't the absolute largest, their "Big Iron" had a good reputation amongst 'serious' IT folks), but were superseded by linux and commodity hardware at some point in the 00s. They sold off the thinkpad business as non-core, and they sold off their commodity server business (x-series) at some point too.
Both hardware and software solutions have been de-emphasised in favour of 'services', and while that's fine in a business sense, it's so sad from the perspective of all that big blue has done for our industry over the years.
Yes, they now own RedHat, but large acquisitions are part of this story. Each one stems the decline for a while, but cost-cutting and streamlining inside big blue eventually manages the new addition into a shadow of its former self. Maybe this one will be different ... I hope so.
In a sane world, they would be spun-off and let prosper as their own entities.
> Both hardware and software solutions have been de-emphasised in favour of 'services', and while that's fine in a business sense, it's so sad from the perspective of all that big blue has done for our industry over the years.
It looks like MBA philosophy screwing up everything by optimizing 'numbers' as if those numbers have no connection to real life. Very optimal in the short run, but catastophic irrelevancy in the long run. But hey - at least IBM shareholders got maximum returns for some time, and that's all that matters right...
Looking forward to see preempt_rt merged. This will certainly put a lot of pressure on QNX and VxWorks in the future.
OpenSolaris just came too late, was released too slowly and used an organisation which was too complex and made little sense to the community.
Sun demised is actually a brilliant case study of what a good engineering company shouldn't do. Great products all around, aweful commercial strategy and corporate leadership.
It would help them a lot if their products did not commoditize their own products as well.
It's simple and cheap to get started with Linux and as a result there are lots of people who know about it, so it's very easy to hire people with Linux skills.
In comparison, getting started with Solaris/HPUX/AIX can be expensive, you might need a physical workstation, getting patches without paying might be tricky etc.
Mainframes have the same problem. I tried to learn more about mainframe security back in the early 2000's and it was really difficult to get any access to a mainframe to practice/look at things, despite working for a large bank which had multiple mainframes.
The killer with the commercial Unixes is that the documentation was orders of magnitude better. That is true today still as well. Most Linux knowledge I have to sift through today is obtained from dubious quality manpages, partially incomplete or out of date documentation and random blog posts.
Also, even if that works for individual hobbyists, it doesn't scale to things like University courses. There having Linux means it's easy and cheap to teach unix-like setups. Whilst top-end universities might be able to kit out labs with Unix workstations, it's been much cheaper to setup labs with PCs and Linux for a long time.
So Universities will churn out thousands of people familiar with Linux tooling every year, leading to easier hiring leading to more companies adopting Linux.
Then with Linux, you could have what could run on any big server, for free, as a teen in your bedroom. You could poke at everything, look at the source code, ask around how you do this or that, since knowing how to do X wasn't some well-guarded secret to have an advantage over the competition, but something fun to share. Eventually those teens would get older and look for jobs or go to university, while at the same time Linux keeps on maturing, and now if you as a company want to build some system from the ground up, or just replace something ancient, you can pick that expensive well-established system from IBM, requiring expensive experts to maintain them, and program for them, expensive software, ... or go with that free OS that a lot of people know their way around with and ask for a much lower salary.
Of course, this didn't happen over night, especially the "it's free but there is nobody to yell it if it breaks" aspect of open source was very strange to $BIGCORP and seen as an unacceptable risk, but there was a steady shift towards that, also in large parts because it was pioneered by all those late 90s/early 2000s tech startups that were exactly created by those "Linux teens". Because that's what you tinkered with in college, not some proprietary OS that you couldn't even afford, or get updates for, or ask anyone for help if you got stuck.
It took a long time to get there, though. Prior to the mid-to-late 1990s Linux was seen as a toy, and the upstart competitor to big proprietary Unix was Windows NT.
Some of us who belonged to Unix User Groups were fortunate to have dialup access to many of those proprietary Unix varieties and their respective dev tools, but access to the OS source code was not at all common or expected. It was a great time for testing ANSI C on disparate platforms.
No need to mess about for hours with a half-baked FOSS mess when all you need is an academic email for a license. Which then keeps the mess, well, a mess, due to lack of the network effects.
I think the the real reason why Linux supplanted commercial Unix(tm) lies in the hardware market, around the time when Linux got good enough to compete directly with commercial Unix on stability we also saw the x86_64 systems getting good enough to complete with Power/Sparc/Itanium based systems on most workloads.
And as the Hardware vendors challenging the commercial Unix market with cheaper Linux boxen, were often the same vendors who sold commercial Unix Boxen, the transition was often managed more then fought.
The hardware is another factor too of course, the cheap X64 server being "good enough" inevitably moved people in that direction.
I also wonder about mainframes and why IBM hasn't come out with some sort of "emulation layer" for X86 machines. Yes mainframes are expensive, but wouldn't you want to do everything you can to get mainframe software that people can learn with into as many hands as possible?
The ''real'' Solaris OS as well as HP-UX, AIX, IRIX, OSF/1, etc. were written and developed for the proprietary hardware platforms of Sun, HP, IBM, Silicon Graphics, DEC, respectively. The cost of those hardware devices kept them out of the home hacker's reach until used or EOL units started popping up many years later.
One thing that Linux is doing, albeit only in makeshift, uncoordinated fashion, is making userspace μkernel-like implementation possible for things that used to be exclusive to the kernel. Combine this with full "containerization"/namespacing of all kernel interfaces, live snapshotting and migration of containerized workloads, maybe distributed shared memory allowing for even multiple threads of a single process to be run seamlessly on the same or different nodes with full location independence. This gives you pretty much everything that network-distributed OS's were designed to do in the 1990s, and allows Linux to extend seamlessly from small embedded to datacenter-scale workloads that used to be exclusive to proprietary OS's.
by 2004 HPUX was actually pulling off an successful migration from PA-Risc to Itanium and it lived on profitable for over a decade after that until HPE finally published an Roadmap for when they were going to end HPUX development which is currently scheduled to happen around 2025/26 with the last new itanium systems sold around 2018.
Irix was killed off by windows around the time the pc industry up with SGI's graphics capabilities. And i cant recall what happened to digital's true64(but it never really survived the merger of DEC into first Compaq and then HP).
Oracle took the cluster tech and added it to oracle.
For the server market, completely agree. But for the workstation/desktop, not so much, with macOS being the last viable alternative, which is still being developed.
Sun's open-sourcing of Solaris probably extended its lifespan but Oracle isn't what turned it into a niche platform.
Linux is ‘good enough’ for a lot of people, but it’s interface is inconsistent (something a lot of OSes suffer from). A set of tools were all of the commands used the same argument structure in the same order would be hugely beneficial.
This is just my opinion.
This means AIX, or at least the AIX ABIs as supported by IBM i, has to be kept alive for as long as IBM i is alive. So either this bodes badly for IBM i or they consider the amount of ongoing maintenance that PASE needs to be so small it can be handled on an ongoing basis by the i or the new skeleton AIX team. I suspect the latter rather than them canning IBM i though.
AIX 5L was released in 2001 and the ‘L’ stood for Linux.
So the writing has been on the wall for a very long time.
I wonder. Is there any enterprise that looks to shift work into non Linux, non windows, in 2023?
Does Serverless (FaaS/CaaS/WASM) count?
There might be organisations looking to move some workloads to *BSD (for instance storage or networking - famously Netflix run FreeBSD for their networking).
With regards to Windows, is there anyone switching workloads to Windows? I was under the impression that doesn't really happen anymore, Windows Server being kind of a legacy product (MS retired the slimest deployment, Nano, and features in new releases are nothing special), Azure supporting Linux well and .NET Core supporting Linux well.
There is some niche's in the network space where xBSD plus custom asic's plays a role, due to licensing concerns but more and more vendors are finding a way to do something similar with linux.
And as FaaS/CaaS in practice depends on a set of Linux kernel API's those deployments are still Linux clusters underneath all of the obfuscating complexity layers that 90% of people don't actually need, nor benefit from.
Does Serverless (FaaS/CaaS/WASM) count?
I'm not sure it does, because the servers that "serverless" programs run on are overwhelmingly Linux.I was thinking more about the lower level though; that is, the OS of the bare metal.
Yeah maybe now it's ok to move to Linux. But hey, sure, you do you
There was a strict requirement not to change the disk image the boxes were generated from.
Our most popular integration method is a cross platform golang binary. Unfortunately, we used some key dependencies that would not compile for AIX so we had to abandon that route.
We ended up extending our shell scripting integration to use the OpenSSL http client instead of the usual curl. It meant that when sending requests we literally have to prepare and concatenate all the headers, but it works, and we are monitoring all the background jobs on the very old machines, giving the team a way to address operational problems without waiting for reports from their customer.
Also, a few years ago they announced that the XL series of compilers were being rebased on LLVM/clang. Of course they claimed it was to enable innovation or some similar PR mumbo-jumbo and not cost-cutting, but, well..
Ideally yes, but has anybody seen any indication that this is actually happening in this case? Until we see such a thing, I think people have reason to be skeptical.
> Reproducing LLVM requires some crazy motivation?
Oh, absolutely. While a LLVM monopoly isn't desirable either, unless you have some different vision of how to architect a compiler, reinventing the LLVM wheel probably isn't particularly useful.
Was this a thing even a decade ago? AIX felt like it was in maintenance mode for much longer to me. From my limited perspective, it looked like the vast majority moved to just using Linux, maybe FreeBSD, and buying some batteries-included appliance for anything you couldn't easily self-host and maintain.
It's one of those things where nostalgic old Unix admins who's not really ready to embrace the anarchy of the Linux ecosystem is kind of pretending some clean old fashioned alternative exist, and cling to the myth that FreeBSD is more of an Unix(tm) Successor then Linux.
And yes i have also not really heard of greenfield Unix(tm) deployments since maybe 2008 and even then Linux was clearly where most people went when their old custom minicomputer(think DEC PDP 20, AS400 and HP3000) systems had to be replaced by something a bit more standardized.
SQLite has DO-178b certification that neither Oracle nor Db2 will ever obtain.
You can trust SQLite in avionics, not so with the others.
Avionics certification is an incredible milestone for FOSS in general.
I have no idea what IBM is doing though. I know when Microsoft moved SFU/SUA (the legacy pre-WSL Unix compatibility subsystem) development to India, the product quality went massively downhill-probably because they didn’t budget enough to hire and retain enough sufficiently skilled developers.
That’s the big risk with moving stuff to a low-cost country - if you do it “on the cheap”, it will be a disaster. But since the whole idea was to cut costs and pursue “cheapness”, the temptation to do that is there
Utilities exist, but they tend to be different.
There’s also oddities like the compiler (xlC) emitting code that is able to dereference null pointers, with the zero page. It’s a valid but odd choice of undefined behavior. [1]
Now, nearly three decades later, we have even more automated and integrated mechanism 'systemd' and I think that there would be still features worth adopting from AIX. Not the first time i have such thoughts with an OS slowly vanishing.
The first version of AIX, for the IBM RT PC, actually ran on top of a microkernel written in PL/I, called VRM - how’s that for alien.
Subsequent versions moved closer to the Unix mainstream by dropping the PL/I microkernel.
As for standard Unix tools - or rather "Linux" or OSS tools these days - they are not that difficult to find and are for the most part readily available. IBM used to supply a lot of that directly, but these can be found elsewhere and for myself I work on AIX more or less as I would on Linux.
When that's said, if you don't actually need the AIX-specific features you can as well run Linux. But if what that site indicates is correct then I'm a bit surprised - IBM seems to have invested a lot in those "differences" the last couple of decades and it's strange if they're abandoning that, or planning to - yes, you can run Linux on IBM hardware, but then.. why? Sounds to me they'll lose HW sales if they abandon AIX. Their strategy has been to make the system more and more Linux-like in many ways (compiler has gcc-compatible options, as one example), but at the same time add large-scale features which Linux doesn't have. Which is clearly why AIX has survived while none of the others have (IRIX, Solaris, Tru64..) - those Unix systems didn't really bring anything more than a Linux system could. AIX does.
Don't know if this counts, but you get much memory with fewer cores. For software where licensing is coupled to cores this quickly gets cheaper.
And for what I see in production the hardware is more reliable in comparison to two large x86 vendors. This is of course based on a small number of systems (n~100)
AIX was a steaming pile of shite for a Linux or Free BSD power user.
So you also get shared libraries with private by default and import libraries for example.
It also supports lazy loading of dynamic libraries, where the OS implicitly loads dynamic libraries when it hits an import stub.
Hit this really weird bug - on AIX, errno is not thread-safe by default!
Solution is simple: add -D_THREAD_SAFE or -D_THREAD_SAFE_ERRNO to CFLAGS. Took me a few hours of scratching my head before I worked it out though.
Isn't that a conforming implementation?
(IIRC[1], errno is thread-local, not necessarily race-safe. i.e. it's visible to interrupts, which could change it)
[1] No doubt someone will correct me if that is wrong.
When the Linux glibc 2.x/NPTL ABI was taken into use, it was clear that threads were not a passing fad and stuff was made multi-thread (to the extent the API can enable that, of course) by default, so there was no need for carrying around both a single-thread ABI and a multi-thread ABI.
On AIX, errno is not thread-local by default, it is a global variable shared by all threads. Only if you set one of those two defines, does it become a thread-local variable. On every other platform I’ve ever written code for, errno is thread-local by default and no special define is needed to make it so. Hence, when you port to AIX, if you don’t know about those defines, you can get all these weird race condition bugs related to error handling, because suddenly errno isn’t thread-local any more
I wonder what the idle power consumption of a p520 is, but I guess he doesn't have to pay for it...
American tech workers are demanding full time remote positions at rates 4x-6x what some Indian workers are willing to work for. They’re educated, professional, and showing up with a good work ethic.
If a company is going through the hassle of remote workers, they might as well optimize your labor costs.