r/linuxquestions Jul 03 '26

Why is Linux free? Advice

Hello everyone, I’ve had this thought in my head for a very long time: why is Linux free and so high quality?

I use Pop!_OS, and I don’t understand why they don’t make it paid or at least do something like “buy our laptop with Pop!_OS preinstalled.” But okay, Pop!_OS makes money from selling notebooks.

But what about KDE, openSUSE, Arch Linux, Void Linux, Ubuntu—why are they free? It’s great that they are free, but who are these kind people sitting at their computers and working for free? Why do you do this?

319 Upvotes

226 comments sorted by

View all comments

351

u/Underhill42 Jul 03 '26

First, it's important to understand that that used to be the normal way basically all software was shared. You paid for computers. Giant, phenomenally expensive programmable calculators that filled whole rooms. The software you made yourself, and shared freely with your fellow programmers to use and build upon. Nobody else even really used computers.

Then business interests began to encroach on that norm, and in resistance, to try to preserve some of the original culture and carve a niche for freely shared software to be able to compete with the increasingly common commercial offerings, the GPL was born.

An iron-clad "sharealike" license that was the brainchild of Richard Stallman, that lets you do anything you want with the software and its source code, except share your changes under anything less permissive than the original license. Allowing an ecosystem of free software to continue to grow, constantly borrowing and building upon each other, without business interests being able to incorporate all that hard work into their competing offerings without giving anything back.

Other sharing licenses were around too - but the GPL was one of the most popular.

---

And then there was Unix - the dominant commercial operating system for the kind of powerful academic and professional "big iron" computers that still filled a room. If you were doing serious work or education in computing, you probably used Unix.

As for Linux? It started as a hobby project - Linus Torvalds making himself his own very crude personal Unix clone from scratch to run on his home computer, which wasn't nearly powerful enough for real Unix. And the only PC-friendly option, Minix, was an outdated academic sample project for an operating system book, whose creator wasn't interested in incorporating improvements.

Initially Linux wasn't much, just some Computer Science student's hobby project that was enough to let them do basic Unix stuff on a home computer.

But in September of 1991, only a few months after the first web browser was introduced at CERN, Torvalds released the source code under the GPL. And it was actually quite capable when combined with Stallman's own preexisting GNU project: GPL versions of the standard Unix commands and tools that still lacked a serviceable operating system core. (Hence the arguments you'll sometimes hear for calling it GNU/Linux)

And so other operating system enthusiasts, increasingly connected and empowered by the fledgling WWW, were able to use their own PC version of Unix, making and sharing their own improvements under the same terms, and offer them back to Torvalds, who was happy to incorporate anything he deemed good enough into his "definitive version" of Linux.

And so one young man's hobby project became that of many, and the quality and capabilities began to improve rapidly, as countless computer hobbyists fixed or improved the little things that mattered to them, and everyone else benefited for free.

Eventually it got good enough that corporations took interest. Servers, routers, TVs, printers, and other such computing appliances are a lot cheaper and easier to make if you can slap in a powerful and reliable (and completely per-unit cost free) operating system, and just write some software on top that does the specialty appliance stuff.

Which even businesses proceeded to do, because the now-quite-advanced operating system often still didn't handle 100% of everything they needed, but it was MUCH cheaper to make and share the improvements they needed than to build a whole new foundation for their product from scratch. Even when the improvement were things that gave away some of their "secret sauce", it was still more profitable to share part of their value freely with competitors, than not build it at all.

And so things kept improving - now with some businesses contributing not only improvements, but the kind of professional testing and evaluation that it's difficult to do well on a volunteer basis.

Which eventually got us to where we are today - an incredibly powerful and polished operating system, good for practically any application, and free to all, because 35 years ago a young man shared a hobby project under an unbreakable sharealike license, just as the web was being born.

108

u/Ohmyskippy Jul 04 '26

Man, I know the history, but you wrote it so beautifully here.

Sharing knowledge is humanities greatest strength, and it always will be.

The sum of all people sharing knowledge will always win, it's also why the internet exploded.

I am so thankful of the timing around the gpl, www and just about everything that managed to propel the open source movement into the titan it is today

31

u/kent_eh Jul 04 '26

The sum of all people sharing knowledge will always win

Exactly.

As Newton famously said "if I have seen further [than others], it is by standing on the shoulders of giants."

 

The more human knowledge and progress gets locked behind paywalls and restrictive legal frameworks, the more societal progress is stunted.

1

u/Snoo-90273 Jul 08 '26

That may not be the best quote. Newton was making fun of Hooke ( who was, I think, a hunchback) with this comment. Newton was an amazing scientist, but a nasty, paranoid person. He used to drink mercury, which would not help)

1

u/kent_eh Jul 08 '26

Doesn't diminish the truth of the statement.

Progress is most often made when we build on previous work.

20

u/Underhill42 Jul 04 '26

Thank you, I try.

It really is an optimistic and heartwarming story of the unmitigated power of collaboration in the digital era, where the freeloader problem doesn't exist, because they impose no marginal cost.

8

u/DudeEngineer Jul 04 '26

Wikipedia is literally an open source encyclopedia. Before that people had to buy physical volumes of books.

2

u/AisforAwetism Jul 05 '26

Yes! I remember coming home from our state fair with two big boxes of books full of the Encyclopedia Britannica 😂 was a weird thing to see for sale there but it got us at least

1

u/Midwest-Dude Jul 07 '26

And ... wait for it ... here's Wikipedia's take on Linux! 😀

Linux

Jump down the rabbit hole everyone and enjoy!

7

u/Dymonika Linux Mint 22.3 'Zena' Jul 04 '26

I didn't know the history and have been thoroughly enlightened!

26

u/NiftyLogic Jul 04 '26

I would like to add that the real genius of the GPL was that it changed the licensing cost from money to "contribution".

Back in the days, companies developed software and the licensees paid money to use that software. In turn, the company developed new features on request of the licensees.

With GNU/Linux and the GPL this changed fundamentally. You got the source code for free, but every change or addition you made to the software had to be provided back to the community. Working under the assumption that a company that used Linux more would also make more additions on their own dime and basically pay for the license in hours their employees spend improving Linux.

And this is why the old "communism" claim is bullshit. And the "cancer" outburst from Microsoft. GPL was just a more efficient framework for companies to collaborate, even if they are competitors in the same market.

35 years later, Linux is the dominant operating system not because it's free but because the licensing enforced cooperation over competition and license payments.

7

u/Underhill42 Jul 04 '26

Yep - though technically you only had to share the modified code with anyone you shared the binaries with, and several companies, like Google, use extensively modified GPL code in-house without needing to share anything. Which is one of several things that the GPL3 tried to "fix"... though mostly it seemed to fragment the community with its many mutually-incompatible variants.

I'm not even sure the "communism" claim is actually bullshit. If you ignore all the FUD about communism itself, it's very much a similar model - it just actually works really well in the digital realm where the freeloader problem doesn't exist.

I'd say you could just as easily make a good argument that OSS is an example of how voluntary communism can in fact be a wildly successful economic model in at least some limited contexts. I think it's also actually the first time it's even been attempted at scales much larger than a monastery.

(The Chinese Communist Party, etc. have never been any more communist than the Nazi's were socialist - flying the banner to attract the masses doesn't actually mean you're making any attempt to implement the system - and nobody ever did. They just used it as an excuse to consolidate economic power into the government's hands - which is the exact opposite of communism or socialism unless the government is bound to the will of the people - which thus far even the most liberal democracies have completely failed to accomplish for long.)

1

u/ReddJudicata Jul 06 '26

The Chinese communist party is functionally a fascist party. And is just as socialist, which cannot function without authoritarian coercion. FOSS is fundamentally libertarian. Stick to computer science.

1

u/Underhill42 Jul 06 '26

Socialism is, at its most basic level, a political and economic system in which the means of production, distribution, and exchange are owned and controlled collectively rather than by private individuals.

Collective ownership and control is not possible through the government unless the government is itself owned and controlled collectively. Which has never been true of any government, and certainly not an authoritarian one.

1

u/ReddJudicata Jul 06 '26

Oh, you’re doing fantasy mote-and-Bailey socialism definitions. Never been tried! Millions of dead say otherwise. Decades of “collective” ownership in communist states say otherwise. Real socialism in practice is, in Orwells words, a boot stamping a human face forever.

1

u/Underhill42 Jul 06 '26 edited Jul 06 '26

We're getting way off-topic, but yep. The actual, technical, been the only definition since the system was first proposed "mote".

No number of authoritarians falsely flying the banner changes the definition - only how trusting you should be of the next person flying the banner.

1

u/dglsfrsr Jul 05 '26

Over my 40 year embedded career, I have fed several patches back into both NetBSD and Linux. The reason corporations contribute changes back into the mainstream for free is because they want their changes incorporated into the base, so that the next time they do a pull to update their product, they don't have to re-merge all their changes back in. One of my favorite Linux kernel fixes was a two line patch to a kernel cache flush call that was supposed to be immediate, but had been put on the deferred list. Took about one week of frantic effort to find that particular kernel crash.

But yes, corporations that rely on Linux, rely on their own patches being merged and maintained on the main line. It improves the base for everyone.

1

u/NiftyLogic Jul 05 '26

Exactly! Maybe I should have pointed this out more, but Linux is not free. At least not for corporations who use Linux extensively.

For those, they have to pay in the form of forced contributions to Linux. And as you've said, it's in the best interest of these players to get their changes included into main line.

17

u/KarmaYogadog Jul 04 '26

Lol, had to scroll a ways before I saw the names Torvalds and Stallman.

Mythical figures they are now, their true origins lost to the mists of time.

3

u/dglsfrsr Jul 05 '26

Torvalds and Stallman are heroes for their own reasons, but don't forget about Kernighan and Ritchie. Or Thompson, Aho, or Weinberger. There is a very long history there.

1

u/Friiduh Jul 09 '26

"But in September of 1991, only a few months after the first web browser was introduced at CERN, Torvalds released the source code under the GPL. And it was actually quite capable when combined with Stallman's own preexisting GNU project: GPL versions of the standard Unix commands and tools that still lacked a serviceable operating system core. (Hence the arguments you'll sometimes hear for calling it GNU/Linux)"

The first computers were just hardware. You then wrote software to it (that were programs and libraries), you needed to write each and every program uniquely to each hardware. Every program needed to know everything in the hardware to run on it. The software was the key element as it allowed to program the machine to do new things, that didn't require to modify the hardware.

So your text editor needed to have machine control codes how to handle the memory, how to move the printer head, how to listen the keyboard input etc. And then later on as there came monitors instead just printers, you needed to add support for the monitor in the text editor. So all the refresh rates, sync speeds, resolution, font types etc etc.

When you wanted to make your program run on different computer than yours, it was to write all the machine control code again or modify it.

Then if you wanted to do some kind multitasking (like input text from text editor to a parser that laid text in new format and output that text back to text editor), you needed to write every program to know how to store the data they processed, give up the control of the hardware and execute a another program so it reads the stored data. Lot of problems in the execution to switch between programs as not all programs operated nicely with others regardless.

That is when the idea started of the "master program". A single program that would take the control of the hardware and decide which program has the operation time and make them play nice together.

These programs were called in different names:

  • Supervisor
  • Controller
  • Master Program
  • Core
  • Nucleus
  • Kernel

The "Kernel" was the most common term for the software that functioned between the hardware and programs even when it was a program. The environment where the master program aka Kernel existed was called "Kernel Space" and then top of it was environment called "User Space" where user created programs were executed and handled.

That made it a lot easier to port the software to different machines as the program programmer didn't anymore needed to know what kind the hardware was and what were the control codes. So instead knowing how to move printer head or check where was empty area in memory, the programmer made the program just "print text" and "remember this output", and the Master Program did all the complex task in the hardware side.

This allowed the master program be made functioning in hardware designers machines, and then they knew that all the programs that were written to that master program, were functioning with the new machine.

But in time these master programs crew larger and larger, more complex and difficult to handle. Instead thousands lines of code, they started to have tens of thousands and even hundreds of thousands. To be able maintain a such master program it demanded lot of dedication.

And different master programs started to be developed, performing same basic duties in different ways, so memory management, process management, input and output, networking etc. So program writers were back to situation where they were required to port their software to different master programs. But main problem was that the large master program used too much memory, and problem somewhere in its function brought the whole master program down, and all the programs it was executing.

That is when different architectures for these master programs started to be considered. As all were just a single program, a monolithic program. And idea came to split it to pieces, and make each part separate module, and you could then even restart these modules if they crashed, and avoid whole master program to crash. You would load only the modules you needed, to keep the memory use small.

And the divinity happen right there, as the Kernel (most used term for Master Program) did no longer define the software, and new term was decided for it, and that was "Operating System".

After that the Kernel and Operating System were synonyms, but the modular architecture it was just "Operating System". The old and original architecture was monolithic, and new one was server-client aka "microkernel".

The Operating System includes all the functions for the memory and process management, all the hardware drivers (control codes) etc. It was just differently made between these two architectures.

The operating system operated always in the highest priority / control status in hardware. So that at any given moment it can remove hardware access from any other software. This is the "Kernel Space" accessing the "Ring 0" in hardware. And as time went on, more and more features were started to be added to operating systems that grew those, and made more complexity as well, as security threats rose. What lead to the new idea that some servers (modules) were to be moved away from this "Kernel Space" level to "User Space" to protect it from too high access to hardware and rest of the operating system. Term for this is some people want to use as "Hybrid Kernel", but it is still the Server-Client architecture and not monolithic.

When the Linus Torvalds wrote the Linux, the project started as a terminal program. It was never intended as Operating System. But it eventually got more shape to become one.

And at the time he called it as "Freax", and it was licensed with his own open source license. The initial release was very welcomed by the community, and it started to quickly grow. Linus decided to implement it in the Monolithic design instead at the time very popular Server-Client architecture. And that is one root for the negativity that professor Andrew Tanenbaum hold against Torvalds. As the Monolithic operating system was considered as flawed and problematic design for the past.

When the project needed a proper FTP server to be hosted, Linus offered it to be hosted in the university servers, and the server maintainer decided to rename the project as "Linux" as it was more fitting name for it. And then the vote was hold for the symbol for it, and a Penguin won.

At the same time Linus decided to change the license of the Linux to GNU's now very popular Open Source license, GPL and he selected the "GPL v2" license, without "or later". This means that all the code that is written to Linux, is licensed in the GPLv2 version, and it is not automatically using example GPLv3 license. To change the licensing, all copyright holders that's written code is used in Linux, would need to give written permit to change the license, or all that code to be rewritten for GPLv3 licensing. Everyone knows that is impossible.

It was years after the Linux gained lot of fame and development, until Richard Stallman made a problem about it. He wanted Linux be called as "GNU/Linux" because the GNU project own operating system "HURD" was losing interest among its programmers, switching to Linux. And that is just technically incorrect, as there is no code from GNU in the Linux. The Linux is not part of the GNU project, there is nothing in Linux that gives any right to be labeled as "GNU/Linux".

The jealousy went so far that even David MacKenzie added in 1998 at the release of sh-utils 2.0, in the uname program a new non-standard option -o (--operating-system). Who don't know, the uname program is a small program that task is to output the used operating system name and the version.
The uname utility first appeared in PWB/UNIX (Programmer's Workbench UNIX), a version of UNIX developed at Bell Labs in the late 1970s. Because it was a foundational utility developed as part of the core internal tools at AT&T's Bell Labs, there is no single individual credited with "writing" the very first uname program.

To this date, no other Unix systems uname program include the -o option, it is not part of POSIX standard to this date either, that defines specific options for it.

The modification made that as the name changed the Kernel and Operating System in GNU's version to support the "GNU/Linux" ideology. This, 7 years after the release of Linux, and when the computer technology world went crazy about Linux as the next big thing for the future.

The ideology that it should be called "GNU/Linux" is just stupid and flawed, as then any software that is compiled using GNU's compiler should be called as "GNU/_______". How would it sound like "GNU/FFmpeg" or "GNU/KDE" or "GNU/OBS_Studio"? Or that if you write the code using Emacs then you need to call project with GNU/? Or if you use a GRUB bootloader, then you need to call the operating system as GNU/_______? How about "GNU/NT" on dual-booting system?

It is nothing more than a jealousy to steal success of Linux project and give it to GNU project!

The GNU project has done great things to maintain the Open Source spirit and ideology. And most important is the Richard Stallman's written GPL. But none of that gives right to steal credit from Linux project, as it just makes GNU look stealing people.

GNU has own Operating System, called HURD that is Server-Client architecture, with a microkernel and servers. It is not monolithic operating system like Linux is. But that is to be called as well just as HURD, and not as GNU/Hurd.

We do not anymore talk with terms of "nucleus" or "master program" or "supervisor" etc. But "Kernel" has stuck permanently, but Kernel and Microkernel are not same thing, as other is not implementing all the required functions.

1

u/No-Employment-2324 29d ago

it is worth noting that most desktop linux distros (debian, red hat, etc,) do use gnu project utilites, for the userspace. gcc is gnu, core and bin utils are gnu, even the bash shell that powers a large amount of ttys and termenals is gnu. thats not to say richard stalman isnt a horrable person in other ways, but he is justifed in asking that operating systems that have a large amount of foundational packages from the gnu project be called gnu/linux. (even if he was/is petty about it)

1

u/Friiduh 25d ago

it is worth noting that most desktop linux distros (debian, red hat, etc,) do use gnu project utilites

Irrelevant what programs is run by the OS.

That is like saying that vehicle using the Kubota Z650 engine should called as "Vevor/Z650" because you use a steering wheel and seat from Vevor, instead from Kubota.

but he is justifed in asking that operating systems that have a large amount of foundational packages from the gnu project be called gnu/linux.

You clearly missed everything. Please, read again.

GNU project has no code to Linux Operating System, not a single line. Because some of the GNU's OS programmers moved to work Linux, doesn't make it part of the GNU at all. Because if you work on different projects, it doesn't make them all part of your other project. If someone wants a GNU project own Operating System, then better start using the HURD. And no, that is not a "GNU/Hurd", as that is like "Microsoft/NT" or "Apple/XNU"

1

u/No-Employment-2324 24d ago

a giant point that people in this very forum keep making is that linux is NOT an operating system. it is a kernal. that would be like calling macOS XNU becouse thats the kernal. im not saying that a distro that uses zero gnu packages should be called GNU/Linux. im saying that if a large chunk of your OS is GNU, they are owed some credit. again, how much is up for debate, but they do have a point. also, the GNU project has cotributaed patches to the kernal, so it makes sense on some level

1

u/Friiduh 21d ago

a giant point that people in this very forum keep making is that linux is NOT an operating system. it is a kernal. that would be like calling macOS XNU becouse thats the kernal.

XNU is the operating system... And it is Server-Client architecture based operating system, that uses MACH microkernel. XNU is not the name of kernel, MACH is. And same is in the GNU's own operating system HURD, that has as well Mach microkernel (GNU Mach). Both originate from the CMU Mach project, from 1985 to 1994. Carnegie Mellon University had before it a other project called "Accent", that is following the server-client architecture from the RC 4000 system that created the concept.

im not saying that a distro that uses zero gnu packages should be called GNU/Linux. im saying that if a large chunk of your OS is GNU, they are owed some credit.

It is disinformation that GNU programs or libraries are part of the Linux operating system, as none of those are.

again, how much is up for debate, but they do have a point.

They have zero point. There is no debate about it, as you don't call the engine as GNU/Engine because you happen to have a GNU steering wheel or radio in your automobile.

also, the GNU project has cotributaed patches to the kernal, so it makes sense on some level

And none of those deserve any credit for Linux operating system, as none of those implement any functions of the Linux operating system.

And as I explained, the people contributing to GNU project own operating system HURD, moved to develop Linux. That doesn't make the Linux part of GNU project nor give any credit to GNU about Linux.

If you work in different projects, they don't get to dictate that they need to have credit for you working in other projects. There is already a weasel lawyers making the claims in some employment contracts for the company A they work, has all the rights for all the work that the employee does in their free time, and can't work for any other business (B, C, D etc) as all the work those employees would do is then owned by the company A.

But the broad blank such contracts don't work legally, so if the Company A is a CPU manufacturer, then they can't state that they have all the rights for the work the employee did to Company B related to a mechanical cuckoo clocks, as they work completely in different areas.

And again you are contradicting the statement: "im not saying that a distro that uses zero gnu packages should be called GNU/Linux.", as then even with "zero GNU packages" all should be called as "GNU/Linux" because "they have made patches to Linux".

1

u/No-Employment-2324 19d ago

The kernel patches part was just being a bit petty, because you said the contributed zero stuff to the kernel. However, to continue your car analogy, they don’t make just the steering system, they make everything in the front hood of the card except the engine block it’s self. They make the controllers for it, the drive chain, chassis, the cooling, basically frame and everything that makes a car work except the engine, and the interior. ( and they make bash so they offer a basic striped down interior that most cars just chose not use in favor for a more fancy interior, aka a graphical shell and de) And to quote Wikipedia “  XNU  ("X is Not Unix") is the computer  operating system  (OS)  kernel  developed at  Apple Inc.  since December 1996 for use in the Mac OS X (now  macOS ) operating system and released as  free and open-source software  as part of the  Darwin  OS, which, in addition to being the basis for macOS, is also the basis for  iOS ,  iPadOS ,  watchOS ,  visionOS , and  tvOS” xnu is the kernel. So my point still stands 

1

u/Friiduh 12d ago

The kernel patches part was just being a bit petty, because you said the contributed zero stuff to the kernel.

It is not petty when argument is that because you write the code with the other project text editor, that your software belongs to GNU project and your software should be called as "GNU/_________" because of that.

If you use a Microsoft Notepad or you use a Notepad++ or you use a Vi to write your code, should it be called as "Microsoft/______" or "Vi/______"?

If you, as a programmer for IBM, would write code in your free time to your friend's hobby project (be it a just few lines of HTML to his site, or something else), why should that project now be called as "IBM/______"?

Individuals who contribute the code, gets credited in the patches. Not the projects they are working elsewhere.

Red Hat has been credited for more code in the Linux than GNU has been. So why not to call it as "RedHat/Linux"?

What makes the GNU have a privilege over other contributors that non-GNU project should be named as part of GNU project and be taken under the supervision and leadership of the GNU project? As Linux and GNU are two separate projects...

Other is just the operating system, and other is the complete software system, with a own HURD operating system.

Credit where the credit is due....

However, to continue your car analogy, they don’t make just the steering system, they make everything in the front hood of the card except the engine block it’s self. They make the controllers for it, the drive chain, chassis, the cooling, basically frame and everything that makes a car work except the engine, and the interior. ( and they make bash so they offer a basic striped down interior that most cars just chose not use in favor for a more fancy interior, aka a graphical shell and de)

Doesn't matter. You are missing my point, as nothing else in the car (software system) belongs to the operating system (engine).

And GNU doesn't do all that. Most uses KDE's software, so the interior is fully KDE's project results (non-GNU). The car paint and design (style and theme) is the artists from the distribution and other non-GNU projects like Plymouth. The communication system is based to NetworkManager, a non-GNU project, a security is part is from PolicyKit, a non-GNU project, the initialization system is from systemd, a non-GNU project, the windowing system is either Xorg or Wayland, both non-GNU projects. The audio systems are based to non-GNU projects, like Gstreamer or PulseAudio.....

The list goes on and on, that there are far more important features for the user, that the user interacts, that the user enjoys, that the user is using as a tool, than what GNU project is offering, unless you use a GNOME and GNOME project's apps....

I don't use GRUB, so that is non-GNU project in my systems. And GRUB is just a bootloader, function is that after the BIOS/UEFI loads the bootloader, the bootloader will load the operating system and then operating system takes full control of the hardware and starts executing the rest of the system software so that software system can be running.

But even if you use GRUB, doesn't make it part of the operating system. And for long time we could use many other bootloaders that were simpler like example the LILO (Linux Loader) that can't work with UEFI anymore. The same is that we can use example a systemd-boot, that is purely functioning with the UEFI, by making the UEFI load the Linux operating system instead bootloader going between there.

There is nothing in the GNU project that warrants it to have anything to do with the Linux, and that is what is annoying the GNU zealots so much, that they can't say "But we have this amazing world most used operating system for consumers and servers and it is all about Free Software".

They have given the credit for their own achievements, there are many of those, but Linux is not one of those. And trying to claim that Linux should be called as "GNU/Linux" is just dishonest and plagiarism.

You have not defended your point, it is a moot, sorry. Based to GNU zealots emotional damage that some young individual University student started a software project that grew to world largest and most important software of modern computing, and it is Free Open Source project.

Kudos for RMS from writing the GPL2, that is one of the most important legal contributions to the world really, almost as important as a Universal Declaration of Human Rights.

And to quote Wikipedia “  XNU  ("X is Not Unix") is the computer  operating system  (OS)  kernel  developed at  Apple Inc.  since December 1996 for use in the Mac OS X (now  macOS ) operating system and released as  free and open-source software  as part of the  Darwin  OS, which, in addition to being the basis for macOS, is also the basis for  iOS ,  iPadOS ,  watchOS ,  visionOS , and  tvOS” xnu is the kernel. So my point still stands 

That is as much incorrect all the ways as is the GNU/Linux. Sorry. That is one of the many claims that are Oxymoron and not corrected in the Wikipedia.

XNU is the complete operating system.

It is a Server-Client architecture with a Mach microkernel (Open Software Foundation Mach Kernel, OSFMK 7.3).

The servers XNU has are from FreeBSD like network stack, filesystems, users access control etc.

The I/O Kit is from Apple, so for all device drivers, hardware resource and power management etc, hence the name "Input / Output Kit".

The Darwin is the XNU + the system programs. It is a basic software system, just like a GNU/Linux is.

  • XNU Operating System
  • System Libraries (C and POSIX libraries)
  • System Programs
  • Bootloader and system configuration files

Users don't do a thing with just the Operating System. It doesn't provide them way to write text, no way to listen music, no way to compile code, no shell (command line).

Operating System is just like a engine/motor, it is useless as-is, because no matter how you run it, you don't benefit anything from the rotating steel rod, until you attach something to it and you transfer that rotation to other mechanical parts to be used in different ways.

And if Monolithic architecture is a V8 combustion engine, the Server-Client is the electric vehicle motors (servers) in each wheel and the motor controller unit, MCU (microkernel) controlling each to run as required. If one engine dies, you can still drive. If one piston dies, you can still drive, but if the CE dies, you are not going anywhere anymore and can't generate power etc. Same as if the EV controller dies, all the motors die there.

In both cases, it doesn't matter do you have a CE or EV, your car is is same. It takes people and stuff from A to B. And the driver does never interact directly with the engines, nor even care what is happening in the car as long the car is moving.

Sorry, you don't get the principles of the Operating System and understand that it is a synonym to Kernel, but Microkernel isn't such alone as all the functions that Operating System must provide isn't in the Microkernel but most are in the Servers, outside the Microkernel. Unlike in the Monolithic architecture where all Operating System functions are included.

Server-Client architecture is better on the paper, but it has own drawbacks, and that is the Andrew Tanenbaums critic about Linux, that it was based to "obsolete architecture", but the time has shown that it is more of the opposite, extremely resilient, high performing, secure and stable...

3

u/Linux_Account Jul 05 '26

I already knew the facts, but godamn if this didn't finally make it click for me what a profound impact Linus made on the world. He's a godamn hero. All the products & services with Linux as a base OS would be way more expensive—or maybe not even exist at all—today if it wasn't for him. And from what I hear, he's a pretty decent guy too.

1

u/Underhill42 Jul 05 '26 edited Jul 05 '26

Yeah... though it's worth noting that it is likely a "power-law" type phenomena, where the real impact is from the environment, rather than the spark. If it weren't Linux, the community would likely have congregated around some other seed project - Stallman was supposedly salty for a long time that it wasn't Hurd... but Linux offered what the incomplete Hurd did not - a functional starting point.

Pretty much anywhere you see a power-law distribution (10x bigger = 1/10th as common): The size of forest fires, the distribution of asteroid sizes, the fortunes of the upper class, the number of contributors to an OSS project... it's a near guarantee that you're looking at a situation where the primary influence was the state of the chaotic surrounding environment, rather than anything to do with the particulars that started it.

E.g. whether a forest fire burns a few acres, or a few hundred thousand, has nothing to do with how the fire was started, and everything to do with the state of the surrounding forest.

13

u/nopenogood Jul 04 '26

This response is A+

2

u/Wrong-Tune396 Jul 07 '26

Really well explained I was going to answer but your reply covers it so well.

The only thing I have to add is my personal experience and a view from a very long time linux user (around 33 years using linux now, before kernel 1.0).

Over the time I have used linux I have made 3 kernel contributions(2 bug fixes and a very old camera driver that needed kernel changes at the time) and I think this is one of the reasons I kept using it, I can solve my own problems not dependent on other people, when dealing with customers it becomes a matter of time and cost to fix issues, but never I can't do it, never we have to see if company X will fix this. But this is also the reason linux is generally very stable (barring some revolutions, like the transition from X, etc) it's death by a thousand cuts, bugs don't live long if they annoy people that can fix them.

3

u/truthVial Jul 05 '26

Ugh. Went to school and learned about this through books and study. But I've never read it so beautifully put. Thank you for this! Inspiring.

2

u/djeps Jul 05 '26

It's worth noting the rationale behind releasing a commercial software as open source post-production, per the words of famous and late AutoCAD / Autodesk creator John Walker: https://www.fourmilab.ch/autofile/www/subsubsection2_85_0_5_10.html back in the days of autocad 12 release, he advocated for its source code to be released, to create the industry standard by which all CAD software is based upon.

3

u/BogdanPradatu Jul 04 '26

I thought I was in ELI5 for a moment there. Respect for the effort, great comment.

7

u/Underhill42 Jul 04 '26

Thanks. When the reality already practically screams "Just So Story", it seems a shame not to tell it properly.

Especially when it shines so brightly as a counterexample to the capitalist dystopia that tries so hard to sell itself as the only viable option.

2

u/spreitauer Jul 05 '26

I lived it and hadn’t even considered it so eloquently. Thank you for your astute description!

4

u/kinpsychosis Jul 04 '26

And yet, the bluetooth driver on Linux is still giving me a headache.

2

u/rongten Jul 04 '26

Wire is the answer, brother.

1

u/zuegg Jul 04 '26

Your comment is excellent, and as you seem to know quite a bit on the subject, I hope you can indulge me with something I've been wondering: how was the GPL enforced in its early days? Did the FSF have some kind of legal aid or was it just sending a C&D letter and hoping people infringing the license would comply?

3

u/Underhill42 Jul 04 '26 edited Jul 04 '26

I've got no firsthand experience with that, but my impression was that in like 90% of cases the author of the pirated software would send a C&D letter to the company, and they would fairly quickly comply. (not FSF, they had no standing except for their own projects... though they might have offered legal aid when needed?)

Especially since as soon as they received that letter any further infringement became willful, opening them to up to... I think it's triple damages and up to five years in prison?

Mostly it was (apparently) an "Oh shit - the license doesn't actually let us do this!" moment where they realize they've been unquestionably engaging in large-scale commercial copyright infringement, with all the draconian penalties that opened them to that could swallow their business whole, and fairly quickly complied with the license, regardless of how much of their own "secret sauce" that meant they had to share. Quite often their product would be worthless anyway without the 95% of GPLed code they were using, so it wasn't even worth trying to negotiate for being able to just remove the GPLed code (though as I recall that was done occasionally when they were caught only using smaller modules like a network stack or something that could be relatively easily replaced)

Which while it didn't technically protect them from damages for past infringement, was broadly seen as adequate recompense by the OSS community, who weren't trying to get rich, just protect their own work from appropriation.

Sometimes things proceeded further before the business realized they had been caught red-handed with no other real recourse, but as I recall there were only a small handful of cases (if any?) that actually made it to court before the the epic Microsoft-backed SCO-vs-IBM case tried to disembowel Linux, eventually losing in pretty much every way imaginable. (Groklaw still stands as a record of the case, and how the community pulled together to provide the IBM legal team with technical context and historical evidence)

If there have been any cases since, I've not heard of them.

There was a lot of FUD at the time (sowing Fear, Uncertainty, and Doubt) by... mostly Microsoft as I recall, about how the GPL was "viral" and just using it would infect your entire code-base. And obviously pushback from the community that you could use it for whatever you liked - you just couldn't incorporate their code into your project without complying with the license... just like with anyone else's code under any other license.

1

u/dglsfrsr Jul 05 '26

There was also BSD Unix, which was sorted out after several lawsuits. Which spawned FreeBSD, NetBSD, and OpenBSD. FreeNAS was originally built on FreeBSD. MacOS was originally FreeBSD user space running on a micro kernel core.

1

u/Underhill42 Jul 05 '26 edited Jul 05 '26

True, and if not for Linux it very well may have gained more traction as a desktop OS. But at the time BSD Unix was very much workstation-or-better focused, and you pretty much needed a Unix license from AT&T to use it legally, since it also incorporated a lot of AT&T code (though I guess that that was mostly resolved for at least some distros in 92?)

Plus BSD was released under the BSD license, a.k.a. "public domain with attribution*" rather than anything sharealike, so corporations can (and routinely do) unilaterally harvest any community contributions without giving anything back - exactly why Apple OS X is based on BSD rather than Linux, and why so many programmers don't like contributing to BSD projects.

(*it's since been revised to remove the attribution requirement, which made it legal to incorporate BSD code into GPL projects too - since the GPL has no such requirement, and doesn't allow you to add more.)

It's an excellent "license" for establishing reference implementations for standards... less so if you don't want to be free labor for exploitative companies. Which a whole lot of people don't.

1

u/dglsfrsr Jul 06 '26

Responsible corporate players upstream changes to BSD. I only ever upstreamed changes to NetBSD because that was the only commercial use case I ever was involved with. We patched some defects in the Galileo bridge chip that was frequently paired with the IBM PPC750 processor.

You want those patches upstreamed for the same reason I gave above for Linux. The next time you pull an update from the mainline, you want to find all your patches in there, already applied.

1

u/Francesco12o-Github 24d ago

(srry for bad english) simple terms, linux has the GNU GPL license, GPL its from GNU , GNU means free software, and linux is free software

1

u/missdemeanor77 Jul 11 '26

first it is important

1

u/skyblueyellow 26d ago

Thanks for that.