Hacker News new | ask | show | jobs
by TimTheTinker 17 days ago
Huh? An operating system, as defined by Andrew Tanenbaum[0], the author of both Minix and of the best operating textbook ever, is a combination of:

- an "extended machine": provide usable abstractions over the hardware to reduce complexity to a manageable level

- a "resource manager": provide for an orderly and controlled allocation of the processors, memories, and I/O devices among all the various programs wanting them.

By that definition, Linux is very much an operating system... unless by "Linux" you meant the kernel only without the additional tooling (systemd, libc, coreutils, shell, etc.) that distros ship with.

[0] https://en.wikipedia.org/wiki/Andrew_S._Tanenbaum

2 comments

I'd just like to interject for a moment. What you're refering to as Linux, is in fact, GNU/Linux, or as I've recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX.

Many computer users run a modified version of the GNU system every day, without realizing it. Through a peculiar turn of events, the version of GNU which is widely used today is often called Linux, and many of its users are not aware that it is basically the GNU system, developed by the GNU Project.

There really is a Linux, and these people are using it, but it is just a part of the system they use. Linux is the kernel: the program in the system that allocates the machine's resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. Linux is normally used in combination with the GNU operating system: the whole system is basically GNU with Linux added, or GNU/Linux. All the so-called Linux distributions are really distributions of GNU/Linux!

I know that, most technical people know it, but I refuse to call it "GNU/Linux" because that's a dumb name and Richard Stallman is so over the top pedantic to constantly insist on it.
Yeah, I also have a hard time saying that, but I also think it's kind of important, because what I actually like about my OS is that it's a GNU OS, I hardly ever need to tweak my kernel, and if I do need to change a setting, that would still be the same with another kernel. But I think it's not hard to use the term in writing.

Like, I'm glad for the solid kernel, but it's just not what I interface with on a daily basis. Same that I'm glad the car engine is running fine, but I care about the car, not the engine.

The difference is important, because there are examples of GNU without Linux (eg. GNU Hurd) and Linux without GNU (Android comes to mind).
The year of Linux on the desktop (and its broader adoption) is in part slowed by fragmentation across distros and weird names.

You wouldn't tell your mom about this great operating system she should use named "GNU/Linux". That's bad marketing.

Linux is the kernel.