Stupid question, but what makes Linux, linux?

( ͜。 ͡ʖ ͜。)@lemmy.world to Linux@lemmy.ml – 88 points –

Apart from being open source what is Linux? Could I not create my own operating system that is different to windows or Macos and call it Steve, again there might be an awnser for this and sounds stupid but its more out of curiosity.

65

You can 100% create your own kernel for an operating system, and call it Steve

Hypothetically, could a guy called Linus create his own kernel and name it after himself?

No, that would be "too egotistical" (in Linus' own words). But he can have his friend who runs an FTP server completely ignore his wishes to have it named "Freax" and name the directory "linux" instead.

Linux actually stands for "Linux is not Unix." Recursive acronyms were a bit of a geek inside joke at the time.

You can 100% create your own kernel for an operating system, and call it Steve

But would it be in honor of Steve Jobs, Steve Ballmer, or Steve Seagal?

Linux is the kernel; that is, the core of the operating system, which handles memory, hardware, inputs... Every OS has one. Windows' is called NT, macOS' is called Darwin.

You don't use the kernel, you use the OS. Linux is special because there several operating systems based on Linux; they are called distributions, and they are what you want to use.

You can create your own Linux distribution, by bundling various software packages with the kernel, in a way that caters to specific needs or follows a philosophy (for example, Linux Mint is a distribution focused on ease of use, Archlinux on minimalism..). This is not possible with Windows because their kernel is not licensed under terms which would allow this. It is with Darwin, but unusual.

You can also create your own kernel but this is extremely hard. Getting the computer to boot is easy enough (relatively speaking), but getting programs to run and things to display is much harder. Getting your custom kernel to a usable state is orders of magnitude harder, as it needs to work on and communicate with modern hardware and networks. Linux took more than 30 years of development by thousands of developers (some of them highly talented in a very narrow field of computing) to get to the level it's at.

You piqued my interest with Darwin. What unusual cases are there?

It isn't quite correct. Darwin is actually an open source operating system at the heart of macOS which is based mostly on a bunch of BSD and nextstep stuff. The actual kernel is XNU, based on the Mach kernel.

"Linux" has two meanings. One of them is the kernel itself; another is a collection of operating systems, that Stallman would call "GNU plus Linux" instead.

The later involves two factors. A "hard" one is the presence of the Linux kernel; but there's also two softer and fuzzier ones:

  • the operating system behaves like other OSes that the user calls "Linux". For example you're expected to have a /home/username, you can install a different DE/WM if you want, this kind of stuff.
  • the OS is open in letter and in spirit. This is ideological but ideology is damn important when dealing with Linux.

A good example of both is ChromeOS: people don't usually call it "Linux", even if it uses the Linux kernel. It's simply too atypical in behaviour, and ideologically too distant from the open source movement.

Just a little addition: the majority of things that people associate with Linux as per your first item are actually shared by many/most Unix-like OS and are defined via the various POSIX standards.

That's not to say that Linux doesn't have it's own peculiarities, but they are fewer than many people think.

They do - and in some cases you can fit both items to a T, without fitting the "hard" requirement (Linux kernel); that was the case with Debian/kFreeBSD for example. (And even "vanilla" *BSDs feel right at home for most Linux users, I think.)

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!

Linux is technically just the kernel, which is essentially device drivers. The rest of the OS that talks to the kemel and runs the UI and services is other software, most of which is from the GNU Project of Richard Stallman.

It would be a mammoth task to create another OS but there's no legal reason why you couldn't as long as you don't copy verbatim from other OS's

Also, Linux/GNU Linux is alot more than just open source. It's core foundation is Freedom: the freedom of the human being to have the code, read it, use it, modify it and share it. As long as you give back to the original source any improvements you make.

This freedom is what sets it apart from all other OS', even other open source one's.

The open source licences of Linux and the BSDs allow verbatim copying. That's kind of the point of OSS.

In fact, Mac OS is a verbatim copy of a BSD.

I'll give them a little credit: OS X is not quite built on a verbatim copy, it's cobbled from a few open source and licensed parts, and a not-insignificant amount of in-house development some of which is contributed back upstream.

NextStep started out as more or less the 4.3BSD userland hosted on the Mach 2.5 kernel instead of the monolithic traditional Unix style kernel the BSDs are built on, with a DisplayPostScript based UI (large parts licensed from Adobe) layered on top.

After Apple bought Next (or Next bought Apple with Apple's money, because Apple's management at the time was staggeringly dysfunctional and almost all the management after the dust settled ended up being Next people), they made major changes. NextStep/OpenStep tended to perform not-that-well because of additional overhead passing things in and out of the microkernel, a problem many microkernel based Unix-likes had, so they updated to the OSFMK 7.3 Mach variant, the BSD code to versions from FreeBSD, then hybridized it by pushing some pieces that traditional Microkernels ran in user space into kernel space for performance reasons, resulting in the XNU kernel that essentially every modern Apple product runs.

They also completely replaced the GUI layer with something custom and proprietary - the original plan for what became OS X was to use the Display Post Script system + a hosted classic environment, but 1. Many third party developers revolted against needing to make a ground-up new port of their software in a totally different environment and 2. the Adobe licensing costs were higher than the price of a normal PC, which was kind of OK for Next competing in the workstation market, but not OK for Apple selling consumer machines.

Apple publishes the open-source parts including most of the kernel (lately an increasing portion of drivers and platform support stuff are distributed as object files not under the open license) on a regular basis, formerly under the name "Darwin" which could be built as a pretty typical BSD-like OS, but in a way that's sufficiently community hostile to prevent anyone from really building successful derivative projects or contributing back to it. I think the most recent attempt was called "PureDarwin" and last I checked they've been stalled for about 2 years.

The engineer in charge of kernel stuff for the NeXTStep/OpenStep/Rhapsody/OS X family from inception in the late 80s to 2006 was Avie Tevanian, one of the original developers of Mach.

One who does use a lot of FreeBSD parts where it's not entirely clear how much they contribute back is Sony. The CellOS and OrbisOS that the PS3 and PS4 used are close relatives of FreeBSD, and it's possible they hid their contributions via contractors or consultants to not expose internal plans...or they just leeched, it's not really clear.

But in pretty sure you can just verbatim copy, call it LinusOS and distribute it as such? Don't you have to make some improvements and changes if you rename it as another OS?

The name Linux is trademarked, so you cannot use it without permission, yes: https://www.linuxfoundation.org/legal/trademark-usage

But other than renaming it for trademark reasons, there are no real requirements for making improvements or whatever.

Really? Wow. I'm surprised that an OEM hasn't done that and then renamed it to their own OS to compete with the likes of Apple and Windows or at least Chromebook. Eg Lenovo, HP etc

Forking Linux would involve taking on a huge maintenance burden, so everyone just uses it, though often basing on an older version and/or with some custom patches. That is typically how healthy open source stuff works.

Companies DO put brand names on systems built on top of Linux (or a BSD) all the time though, often ones that don't make it obvious that's what it is. ChromeOS and Android are both Linux based, but Android doesn't ship most of the UNIX-y parts that are typically layered on top, and instead uses their own (also largely open source) components. ChromeOS is actually a fairly close relative of Gentoo with a few custom pieces.

Google has their own internal project for a kernel called Fuchsia, and it's really interesting modern OS development that they've assembled a bunch of experts to work on... But it's increasingly unclear if they plan to deploy it on customer facing products.

A ton of appliance type devices are basically very tiny custom Linux systems, often assembled with tools like Yocto. A lot if the vendors who sell components to go into said devices contribute code and/or money to Linux and Yocto, in order to make their products more attractive to device builders and avoid having to make and maintain their own tooling.

Most consumer routers are basically Linux (usually with a minimal userland like BusyBox), often essentially shitty old customized versions of OpenWRT. Sony alpha cameras? Customized Linux. Off on the BSD side, CellOS and OrbisOS that the PS3 and PS4 run, respectively are modified FreeBSD. Open Source OSes and tooling are everywhere because making, maintaining, and building tooling and developer support for an OS that runs on especially relatively large modern computers is a big, hard project, so very few entities try to do it themselves.

As I see it their options are:

  1. Copy it without meaningfully changing anything, i.e. just redistributing Debian or Ubuntu with some logos and desktop backgrounds - there is no reason to install this on your own and no one will care. This is effectively the same thing as customized Windows installs that they ship.

  2. Creating a custom Linux distribution. This is feasible and has already been done (System76 created Pop_OS! based on Ubuntu; Android and ChomeOS are essentially new Linux distributions built from the ground up, taking only the kernel and ignoring the existing ecosystem), but requires serious maintenance work to be any good and offer real advantages over existing distros.

  3. Forking a kernel like Apple did. This has fairly limited purpose from the perspective of laptop and workstation OEMs that use regular off-the-shelf parts. This is usually done to provide support for custom hardware (Apple) or for proprietary software that requires deep integration with the kernel (VMware).

No one will think of option 1 as a serious competitor in the OS market, option 2 requires a ton of work and motivation, and option 3 is useless for these OEMs. Software just isn't their business and a cheap copy offers no real advantages over shipping an existing thing.

this doesn't really matter, I just find it interesting but Android was initially based on Gentoo, not entirely from the ground up. unsure about ChromeOS, I'm sure they did a lot more leg work having more financial backing at this point.

Great reply! Thanks man. Yeah I get your point now. Makes sense m

Late to the party, but I remembered this talk about maintaining a FreeBSD fork. If you want to get a more detailed description of what maintaining a customized OS entails, I encourage you to watch it: https://youtu.be/xddAX6L3iWc

Linux is a combination of the Linux kernel (some really low level software that tells the OS how to communicate with your hardware, not something most users should worry about) and software from GNU (some Linux users call it GNU/Linux for this reason). This is then used as the base for distros, which are basically just that plus a package manager (how you install apps) and usually a desktop environment and default apps as well.

Theoretically yes, you could create an operating system and name it Steve, but it wouldn't be Linux unless it had the Linux kernel and GNU software.

Edit: as others have pointed out, yes, you can technically have linux distros without GNU, but GNU-based Linux distros are by far the most popular option, so you're highly unlikely to find a distro without GNU unless you're hunting for one.

Is Alpine not Linux then?

Linux is still Linux without GNU software on it.

But what should i use an operating system for, if not to start GNU Emacs?

You're wrong you can still have linux without GNU

The kernel. It's why the BSD distros for example, while very similar to Linux, aren't "Linux".

Linux kernel + everything else you need to make a function os + a mostly free and open approach to software = Linux

Strictly speaking, Linux is a free, open-source OS kernel originally developed by Linus Torvalds in 1991. (Linus Torvalds still oversees the kernel's development, but many people now contribute to it.) The Linux kernel needs to be combined with other software to make a working operating system, and that's what Linux distributions (distros) are. Some of the core software with which the Linux kernel is combined comes from the GNU project, which started before the Linux kernel existed, and had the goal of developing a complete free Unix-like operating system. GNU can be used with other kernels but in practice it is almost always used with the Linux kernel.

What we commonly call Linux is the Linux kernel + GNU + other bundled software to make a complete usable operating system. Importantly, this usually includes a package manager to help with installing, updating and removing software, and it often also includes a windowing system and desktop (though it doesn't have to). There are many, many ways of putting this package together, hence there are many Linux distros.

Many Linux distros prioritize free, open-source software (FOSS). Some include only FOSS while others include non-free software too.

Linux is a platform that allows you the freedom to acquire the perfect OS for your needs; Linux Mint for your elderly mother, ChimeraOS for the Steam Deck of your son, Debian for your server, Ubuntu on your laptop you use for work and we can't forget your fully customized Arch/Gentoo on your self-built PC that has been optimized to perfection for your workflow. Whatever problem/use-case/need you might have for your device, Linux offers solutions that are quite possibly the best there is; your mileage may vary depending on your knowledge and experience*.

Linus.

That's actually more true than most people are aware of. Torvalds has been controlling what goes into the Linux kernel for the past 30 years and he's been mainly motivated by what is best for the user base as a whole rather than how to extract the most profit. This is what sets Linux apart from pretty much any other OS on the planet. He may be an ass personality wise, but we all owe this guy a massive debt.

2 more...
2 more...

There are other OSes that aren’t mac, windows, or linux. Look at TempleOS for an example

and Haiku!

And solus!

--edit i meant solaris by Sun systems thanks for commenting

I thought Solus was Linux?

It is. The other person is confusing it with Solaris, which is a Unix derivative based on a mix of System V Unix and BSD.

That makes sense! Thanks!!

Linux is a Unix, but Unix is not Linux. Solus is a Unix, as is MacOS (a really bad one), and BSD.

I'm pretty sure Solus is a Linux based OS, at least according to Wikipedia:

Solus (previously known as Evolve OS) is an independently developed operating system for the x86-64 architecture based on the Linux kernel and a choice of Budgie, GNOME, MATE or KDE Plasma as the desktop environment.

Solus is a Linux distro. You're thinking of Solaris.

linux is often called a unix but it is only unix-like. It's not officially unix cerrified the way macos, hp-ux, and others are.

The most important part of Linux is the distribution that provides a boot loader and wraps the Linux kernel in tools & tool management.

What makes Linux particularly special is you can create Steve from a derivative of the Linux kernel. So get cracking!

"Linux" is the name of the OS kernel — the component that manages hardware drivers, schedules processes, provides basic networking operations, and so on. The project that builds that particular kernel was started in 1991 by Linus Torvalds.

However, that kernel is almost always used with an assortment of libraries, utilities, and user-interfaces (such as the bash shell) which are often expected to be part of a "Linux system". Many of these come from the GNU project, which began separately from the Linux kernel as an effort to make a free Unix clone.

When the libraries etc. are the ones from the GNU project — e.g. the C library glibc — we can call the system "GNU/Linux" which is a term used by Debian and some other software distributions.

Mr. Stallman would be angry if you didn't define it as the Linux kernel plus the GNU stuff that you need to do things with the kernel.

Kernel + environment = OS

The GNU+Linux thing is dumb. First, the GNU userspace programs aren't the only things added to the kernel to make a working OS. A more fitting name would be systemd+Xorg+PipeWire+Linux. Second, not all Linux distributions use GNU's programs. Some use Busybox, such as Android. Some don't even use GNU's libc, but musl. On an entirely headless system running completely unattended, you could probably not have any userspace at all. Finally, the GNU programs aren't used at all by the average Joe who only uses their computer for Web browsing, emails and games.

You don't need any GNU stuff for a Linux distro though. It's just very common to use GNU tools.

Nah. Defining Linux as 'the Linux kernel plus the GNU stuff' is what makes him angry. Defining 'Linux' as 'just the Linux kernel' and sticking to that narrow use would make his day.

Kernel = OS. Tools is what makes the OS actually useful, but strictly speaking they're not needed.

Nobody would call linux to android (or vice versa), despite having the same kernel.
At least if we speak colloquially, the environment/ecosystem is really enough to define the OS.