Hacker News new | ask | show | jobs
by rhacker 1243 days ago
pretty much anything you purchase at a store goes through ibm
2 comments

IBM sold their retail technology division to Toshiba a few years ago.

Most of their cash register controllers can run on x86, so, it's not dependent on their hardware for the backend.

Their cash registers can run the 4690 OS or Windows/Linux/whatever, but, most choose to run the 4690 Operating System due to its security features.

I worked at IBM in their retail marketing side in the early 2000's, so, it's possible that everything I've typed here is 20+ years out of date.

> Their cash registers can run the 4690 OS or Windows/Linux/whatever, but, most choose to run the 4690 Operating System due to its security features.

> I worked at IBM in their retail marketing side in the early 2000's, so, it's possible that everything I've typed here is 20+ years out of date.

4690 is pretty close to dead. Maybe not entirely dead, but closer to that status than it has ever been before. From what I understand, even before IBM sold it to Toshiba, the plan already was to discontinue 4690 and replace it with Linux. At the time of the sale, IBM was in the progress of replacing it with "IRES" (IBM Retail Environment for SUSE); Toshiba has instead chosen as the replacement its own Linux distribution, "TCx Sky", which is a customised version of Wind River Linux.

The terminal release of the 4690 OS was V6R5, released 7 years ago. The latest security update was CSD 2010, released in January 2020. There are probably still some people using it even today, but it is very much a legacy system, with zero plans for any further enhancements; it isn't even clear if there will be any further security updates in the future, or if the January 2020 update was the last one. (I guess it may depend on how many people are still using it, what further security bugs might be discovered, how much those people are willing to pay to fix them, etc).

Banks love IBM mainframes/midranges. They might not be blistering fast, but they're a joy to work with if you have the budget.
I find them really interesting because they are a whole other world, the "road not taken". They are very different from Unix/POSIX/Linux/*BSD/macOS/etc, even moreso than Windows is. Windows is not a Unix, but it has borrowed a lot of ideas from Unix–and is arguably growing more Unix-like as time goes by, borrowing more and more ideas from Unix-land–Windows is a lot closer to Unix than most mainframe operating systems are–even MS-DOS is a lot closer to Unix than most mainframe operating systems (indeed, if you read the source code and design docs for MS-DOS 2, they repeatedly mention the influence upon it of Microsoft's Unix, Xenix.)

Consider some ideas which exist in z/OS but not in Unix or Windows:

- record-oriented file system: the filesystem is aware of the record-boundaries of files, whether they contain fixed length or variable length records, etc – and enforces them

- indexed files: key-value type files are built in to the filesystem, not some add-on library

- the catalog: a database mapping file paths (dataset names) to the volumes they are stored on: so you can move a file to another disk volume (or even to tape) without changing its filesystem path. You can kind of approximate this using mount points, symbolic links, etc – but it is a lot messier

- partitioned data sets (PDS/PDSE): like ZIP/TAR files, but again, built-in to the filesystem

- block-oriented terminals: you send/receive data to terminals as a screenful at a time, not a character at a time

- DDnames: your program inherits (the moral equivalent of) file descriptors, but instead of just having numbers, they have names (instead of fd 0, you have a DD called "SYSIN")

You can argue about whether the above features are sensible – the designers of Unix were well-aware of them, but decided they were examples of unnecessary complexity – but sensible or not, they are interesting.

> I find them really interesting because they are a whole other world, the "road not taken".

This is so interesting, having witnessed the commoditization of PCs, the Cloud, and now virtual desktops on the cloud. We're basically reinventing the multiuser mainframe after discovering it actually had good proposals.

The problem is, it's being reinvented with a monstrous degree of complexity and fragility. It's retaking the road not taken, but carrying the other road with as well.

And language environments, which keep oldie programms running on modern hardware without recompilation.

Something that neither UNIX nor Windows have fully embraced to the extent of mainframes/micros.

All the deployments from Java and .NET workloads end up with some kind of compromise to classical UNIX/Windows development.

> And language environments, which keep oldie programms running on modern hardware without recompilation.

I think we've had this discussion before. The Language Environment (LE) on z/OS doesn't do that. The Integrated Language Environment (ILE) on OS/400 [0] does do that. But while one part of ILE (the CEE runtime and its API) is common code between z/OS and OS/400 (and also VM, VSE, TPF and OS/2) – that bit doesn't do any of the "keep oldie programs running by recompilation" stuff. Whereas, the parts of ILE which does do that (the OMI to NMI translator, and the NMI to POWER translator), is 100% OS/400 specific, and has no equivalent on any other IBM platform (z/OS included). You seem to be getting led astray by the fact that "Language Environment" means a lot more in OS/400 than it does in MVS – it is a mistake to assume that just because the later uses the same phrase, that it uses it to mean anywhere near the same thing. LE on MVS is just one (relatively small) part of the capabilities provided by ILE on OS/400.

(Also, this "platform independence" doesn't really have anything to do with anything "Language Environment", since it pre-exists ILE entirely – EPM and OPM before it had the same ability. You are associating "Language Environment" with something which was never actually the selling point of ILE, since it was something OPM and EPM already could do, at least in principle. The real selling point of ILE is that it could support recursive/stack-based HLLs such as C and Pascal more efficiently than EPM, and support mixing code from multiple languages much more easily than OPM and EPM allowed. Plus, a lot of its implementation was shared with z/OS and AIX, which was a bonus for IBM – not just the CEE runtime, but also the compiler backend–the later is not considered part of LE on z/OS, rather part of the compiler products)

[0] Yes, IBM i, I know – but I hate that name, it is confusing. IBM should have just stuck with OS/400, it was far more memorable and distinctive.

Can you expand on why they are joy to work with?
Tried to edit my original comment because two people asked the same, but it didn't update, so I'll resume it here:

- No devops, you have real sysadmins whose priority is security and system administration, not development.

- Not relearning to invent the wheel every six months. The technology changes incrementally. If you get out of the field for a few years, read the "what's new" sections of the new manuals to catch up.

- Documentation. IBM docs are great, remind me of NASA docs. They have everything you need, you can go days without googling a problem.

- Backwards compatibility. Decades old sources can be compiled, decades old binaries can be run. Architecture changes are handled transparently.

- Simplicity. The interfaces might seem primitive compared to PC OSs, but there's also less complexity, and less attack surface.

- Uptime. Almost everything, including CPUs, is hot-swappable. This doesn't add to the joy, but it's remarkable.

Very interesting. Having worked at AWS in the past, the company had very similar features/principles to what you have mentioned except for simplicity.

I think it's things like these which makes me thing AWS will remain the top cloud provider for the next few decades.

You're spot on about simplicity, and it's the reason AWS may not remain the top cloud provider for much longer. There is no effort to implement any sort of consistency across their famed two-pizza teams -- that wouldn't be "Day one". So each service has its own IAM quirks, making basic security at scale a nightmare, and in some cases impossible.

Azure policies are comparatively a breeze, making it the smart and increasingly obvious choice for any regulated (read: large) corporation.

You don’t need to wrestle AWS, Docker, Kubernetes, Terraform, Spark, Aurora, etc… to run a batch job. The kinds of tasks that take integrating multiple different providers and software packages to do in cloud architecture are OS-level features on mainframe. It’s less flexible and more expensive, but an order less accidental complexity.
How is that different from a bare metal Linux server?
It isn’t. It is significantly worse.

IBM is a dinosaur company that exists because of embedded connections in government, banking, and defense. They charge 100x the going rate for ancient tech that’s insecure and an absolute nightmare to develop for.

The sooner everyone drops anything associated with IBM or Oracle, the better for everyone. Absolute cancers.

You can run Kubernetes on mainframes as well as Linux, so developing for mainframes has become easier these last 20 or so years.
> The sooner everyone drops anything associated with IBM or Oracle, the better for everyone. Absolute cancers.

If the only alternative is "AWS, Docker, Kubernetes, Terraform, Spark, Aurora, etc…" I might have to think long and hard about it...

Bad news for you, the mainframe business in 2022 actually increased sales, contrary to the regular PC market.
A free orders of magnitude in performance?
Joy to work with... for whom?
IBM, presumably? /s