Viewing a single comment thread. View all comments

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

SursumCorda-NJ t1_j5vj1wu wrote

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

Haha Nope but it was a fascinating read and really broke it down to make it easy to understand. Even though I don't know shit about computer engineering I still find this sorta stuff fascinating, the history of early computing that is. Is there a universal language that works for Unix derived systems or does each derivative system use their own special language?

2

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

playdohplaydate t1_j5s7gmj wrote

The greatest part of the UNIX story is it’s development being fostered by the Space Travel game Ken Thompson tirelessly developed.

1

SemiEmployedTree t1_j5uogw2 wrote

The one part of the OS saga you left out is the role played by Dave Cutler. Cutler was a key guy at DEC responsible for RSX-11M and then VMS. He left DEC and joined Microsoft where he led the NT team. The whole NT architecture has his fingerprints all over it and in some ways was a VMS clone.

Never met the guy but I hear he had a real low opinion of UNIX.

1