Submitted by TriggerTough t3_10kdpgl in newjersey
SursumCorda-NJ t1_j5r46rs wrote
Reply to comment by imMakingA-UnityGame in Pictured is the router which sent the 1st internet connection from NYC to Tokyo. These were sold out of a basement office of a home in Rahway NJ. It's signed by everyone who worked for Cisco Systems in 1989. It was given to my dad when he retired in 1999 for his work in establishing the internet. by TriggerTough
> UNIX operating system (still at the core of most machines running today, even new ones)
What runs on Unix in modern machines? If you have a Windows computer I thought Windows is what the computer used.
I'm very computer engineering ignorant.
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.
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?
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.
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.
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.
Mysticpoisen t1_j5r5yue wrote
That's true. Though new versions of Windows have a Linux subsystems(WSL) that does use Unix. Linux, Android, and MacOS are all unix based, so pretty much everything aside from windows.
nadeemon t1_j5r98gq wrote
Essentially all servers run in unix, mac os is unix, and Android phones are unix.
SursumCorda-NJ t1_j5rk1cg wrote
Thank you and /u/Mysticpoisen
RafeDangerous t1_j5tbiwj wrote
> Essentially all servers run in unix, mac os is unix, and Android phones are unix.
Not quite. MacOS is a certified UNIX system, but Android is Linux which is a UNIX derivative clone. At this point, in sheer numbers there are more Linux servers than there are UNIX ones.
Linux was built to be a UNIX clone by Linus Torvolds and a host of open-source developers, and has no direct links to UNIX, which was developed originally by AT&T. Linux is a fully open-source OS, while UNIX is a mix (BSD is partially open-source, but as far as I know none of the others are).
Edit: Okay, this isn't a debatable point. Only systems certified by The Open Group are UNIX. Others can be similar to UNIX, or clones of UNIX, but they are not UNIX. Linux has never been certified as UNIX, and even if they requested certification they would not pass the requirements because while Linux is very similar to UNIX, it doesn't meet the benchmark requirements. Downvoting me doesn't change reality.
craywolf t1_j5uqr4p wrote
To further drive your point home, Linux is technically just the kernel which is pretty useless by itself, because there's no built-in way to interact with it.
The standard set of tools for interacting with the Linux kernel are the GNU utilities.
GNU stands for "GNU is Not Unix."
imMakingA-UnityGame t1_j5tgyqv wrote
Linux is UNIX based and uses POSIX, it’s essentially a. GUI extension ontop of UNIX. We wouldn’t have it without UNIX. *NIX machines perhaps is more accurate than UNIX, but that’s just semantics. At its core LINUX is UNIX on crack. Obviously it’s come leaps and bounds away from UNIX in this age but it’s built ontop of it.
RafeDangerous t1_j5tiei1 wrote
It's really not though. It shares no actual code from proprietary UNIX, and UNIX is an actual certification which Linux doesn't have. If anything, calling Linux UNIX takes away from all the work that Linus and the others did; they didn't simply repackage UNIX code, they wrote it from scratch and did an amazing job.
imMakingA-UnityGame t1_j5tgq1m wrote
Yeah, so it’s either MS-DOS based systems or UNIX based. If it’s not a windows machine its 99% likely its UNIX based. This would lead you to think the vast majority of computing things are windows as it’s the most popular OS, however you need to consider ALL computers. Not just Laptops/PCs.
Think phones, tablets, smart watches, cars, “smart” anything’s, TVs, rockets, servers, anything running Linux, basically anything running a computer chip which is….a lot of shit now.
That being said, even windows has been in the last few year implementing more and more of the UNIX/POSIX type shit for developers.
SursumCorda-NJ t1_j5vhbvd wrote
Very cool. Thanks. What computer language does UNIX use?
imMakingA-UnityGame t1_j65qdvb wrote
The C programming language was created to facilitate the creation of UNIX, im sure it has assembly code all over the place too.
Viewing a single comment thread. View all comments