AidanAmerica

AidanAmerica t1_j5x6ex7 wrote

I’ve always been interested in this type of thing as a type of modern day history. It’s fascinating to see how people solved all kinds of little problems to put together the modern world. The history of Unix has as much engineering effort for multiple moon landings, along with b-plots of intense business pressures, a weirdly large amount of government influence, and intense interpersonal political intrigue.

The closest thing to a universal language for Unix would be the Single Unix Specification. I’m not familiar enough to say if there’s some programming language that can be turned into a compatible app for any Unix-derived system, but the practical answer is more political than technical. That specification came about because there were multiple similar, but different and incompatible versions of Unix on the market. The US government adopted a regulation that they would only buy software that met this new standard, so anyone who wanted to go for a lucrative DoD contract needed to meet that standard. (In a surprise twist, though, Microsoft talked the government into buying their software that was a totally different breed from anything that would meet the standard). That standard still exists, though, and it’s regularly updated. A consortium that acquired the legal rights to Unix from AT&T is responsible for maintaining that standard, and they certify operating systems as compliant. If an OS is derived from the Unix lineage, but not compliant with the SUS[^sus], then they can’t use the Unix name since it’s copyrighted. Those are usually described as Unix-Like, because for some reason that’s legally distinct enough. A few years ago, Apple made a few changes macOS so it could get Unix certification. I assume they also had to pay for that.

Working developers likely know a few popular programming languages. If they want to write software for an OS, they need to find a “compiler,” an application which takes the code, written in the language of the programmer’s choice, and outputs a finished, functional application.[^I don’t code, so if there’s any place I’m getting a small detail wrong, it’s here. ] If you want that application to run on an iPhone, for example, you need to follow Apple’s rules and go through their approval and certification process. Apple made the iPhone’s operating system by building it on top of a Unix-derived free operating system, but they’re allowed and able to put their non-free licenses and terms on top of that free foundation.

A totally free operating system — for example, Debian Linux — isn’t made by a group that uses their legal rights to keep their software locked down in that way. What’s interesting about projects like those is that they’re equally, if not more, innovative in their legal and social philosophy as they are in their technical design. These are projects run by volunteers online who vote democratically to decide how the project should be run. It’s guided by a constitution and social contract that outline, among other things, the process to propose and approve changes to the OS, a stipulation that the OS will always be free, that they’ll always make both the source code (the kit with parts and instructions) and the final product openly and freely available, and that it won’t come with any software that doesn’t abide by those same open and free terms. These Unix-derivative projects compete more on licensing terms, philosophy, and what to prioritize as their focus than on technical differences. People debate these things online in their free time like software rabbis. There wouldn’t be room to debate those types of questions if the most important technical questions hadn’t largely been answered by AT&T (and all the other contributors) over the last few decades. If someone doesn’t like the way the Debian project is answering the philosophical questions, they can go look at some other group’s Unix-like OS, or even take the source code and make their own.

So, to answer your question: there are many standard and well-known languages that can be used to write software that is technically capable of being run on any Unix-derived operating system, but whether or not it does run is more a question of whether or not the people who make the operating system decide they want to let it run.

And, again, Windows is its own lineage. A developer who knows one of those common programming languages can find a compiler to make a working app for Windows just as they could for any other OS, but that’s because Microsoft puts its significant resources behind making it easy to make software for Windows, and easy for users to get a computer that runs Windows. Apple does the same for their operating systems. Microsoft (like Apple or any company in a similarly market-dominant position) has a sales staff that convinces companies to buy their software because those companies know it’ll be warrantied by Microsoft, a big name they trust. If you’re the one tasked with buying new software for the whole company, are you going to have the company spend a few thousand dollars to buy Microsoft’s offering, or are you going to gamble your career on the free option? If that turns out to be a dud, even if only because the new software looks scary and different, you’re to blame. That’s essentially why Windows still exists as a distinct breed: Microsoft is the only company uniquely positioned so that it’s cheaper and less risky for them to stick with their own thing than to build off of what’s long been freely available.

Oops, I wrote a blog post again.

2

AidanAmerica t1_j5rmorr wrote

Windows is the 800 lb gorilla exception, but the vast majority of operating systems are derived from Unix. Here’s the short explanation:

AT&T’s Bell Labs invented Unix in the late 60s. They funded research related to all kinds of communication projects. Because of an antitrust decree, AT&T wasn’t allowed to sell computers or computer software until after 1982, when the Supreme Court broke them up.

So, during the 70s, AT&T had this great OS, but they couldn’t sell it. They could, however, license it as a trade secret. So universities and companies bought a license, and they’d get the UNIX source code — think an Ikea chair that’s sold disassembled, but which comes with instructions on how to turn those parts into a working chair.

During that time when AT&T was licensing out those instructions, people studied them and learned how the system works. Returning to the chair analogy: after you assemble it, you could study it and figure out how it distributes the force through the chair to support a person. Then, after you learn how that chair works, you could use that knowledge to go build your own chair from scratch.

After AT&T was split up in 1982, they could start selling the OS as a finished product, but it didn’t matter as much anymore: the secret was out. People could build their own chairs. BSD and Linux* are two examples of UNIX-like operating systems that came about that way.

Modern day UNIX derivatives contain none of that original AT&T- authored code, but they are based off of a clone of AT&T UNIX.

So, because AT&T did all the hard work 40 years ago, and now you can reap the benefits for free, most people and organizations that need an operating system just use one of those free UNIX-derived clones. Apple’s operating systems, Android, FreeBSD (Netflix’s OS of choice for their server infrastructure) all come from that gene pool.

The one major exception is Windows, because Microsoft built their own OS from scratch back when it made a little more sense to do so, and now if they tear it up and start from scratch, they’ll break 37 years of third party software. It’s possible to put together a fix, but then they’d end up in an even more precarious situation of trying to support decades of software plus this new variable. Microsoft has always been hesitant to do that type of thing. Apple, by contrast, is willing to just break old things in the interest of progress and tell their users to suck it up.

Hey, that didn’t end up being short at all.

6

AidanAmerica t1_j27ecgr wrote

That app is a real win-some-lose-some situation. When I last commuted, at peak times out of Penn Station, they would sometimes not even bother to take tickets. If I were planning on using a paper ticket, then I got a free ride and kept the ticket for next time. But if I activated the e-ticket in the app, (which I would sometimes do because it wouldn’t load until we were out of the tunnel) then I weaseled myself out of my own money.

5

AidanAmerica t1_j27dkea wrote

Some federal sites are pretty good. IRS.gov is decent enough. The federal marketplace.gov healthcare exchange site was good, but when NJ took that over, they replaced it with a site with a UI (and UX) that is 10x worse.

There are some deep corners of the MVC website that look like they haven’t been updated since the Clinton administration

4

AidanAmerica t1_ix1tr8t wrote

That explains why they had multiple live TV services that competed with each other for a while there. It’s got to be something more complicated than just being too big. When AT&T (the old AT&T that went defunct in 2006) was at its biggest and most monopolistic, it also ran one of the country’s most innovative R&D laboratories, but they kept that technology tightly in their grip except when government regulators forced them to loosen it.

The smartest regulations that the government imposed on them are the ones that forced AT&T to stay primarily as a telephone operator and not get into new industries, because that allowed competitors to come into existence and not be squashed out of existence immediately. For example, a court order that disallowed AT&T from entering the computer business made it so that AT&T could only profit off of UNIX by licensing the source code out to others as a trade secret, allowing computer scientists to learn from and build off of the development that AT&T funded. Then those people built their own UNIX-compatible operating systems, and that’s how we got FreeBSD and Linux, which are used as the basis for every mainstream operating system today (except windows). So because of smart regulation in the 70s, businesses today can reuse that free code, rather than starting from scratch, making modern businesses more efficient. That turned out to be more meaningful than even the breakup of the Bell System

35