# Linux

Linux is a "[FOSS](foss.md)" [unix-like](unix_like.md) [operating system](operating_system.md) [kernel](kernel.md), probably the most successful and famous non-[proprietary](proprietary.md) kernel. Linux is NOT a whole operating system, only its basic part -- for a whole operating system more things need to be added, such as some kind of [user interface](ui.md) and actual user programs (so called [userland](userland.md)), and this is what [Linux distributions](linux_distro.md) do (there are dozens, maybe hundreds of these) -- Linux distributions, such as [Debian](debian.md), [Arch](arch.md) or [Ubuntu](ubuntu.md) are complete operating systems (but beware, most of them are not fully [FOSS](foss.md)). Linux is one of the biggest collaborative programming projects, as of now it has more than 15000 contributors.

Linux is written in the [C](c.md) language, specifically the old  C89 standard, as of 2022 (there seem to be plans to switch to a newer version). This is of course good.

Linux is typically combined with a lot of [GNU](gnu.md) software and the [GNU](gnu.md) project (whose goal is to create a [free](free_software.md) OS) uses Linux as its official kernel, so in the wild we usually encounter the term [GNU/Linux](gnu_linux.md). Some people just can't be bothered to acknowledge the work of GNU and just call GNU/Linux systems "Linux" (without GNU/). Fuck them. Of course people are like "it's just a name bruh, don't be so mad about it" -- normally this may be true, however let's realize that GNU mustn't be forgotten, it is one of the few projects based on ethics while "Linux" is a shitty fascist tranny software hugely leaning to the business/open-source side. For the sake of showing our preference between those sides we at LRS often choose to call the system just GNU, i.e. by its original name.

Linux is sometimes called [free as in freedom](free_software.md), however it is hardly deserving the label, it is more of an "[open-source](open_source.md)" or [FOSS](foss.md) project. **Linux is in many ways bad**, especially lately. Some reasons for this are:

- It actually includes [proprietary](proprietary.md) software in the form of [binary blobs](blob.md) ([drivers](drivers.md)). The [Linux-libre](linux_libre.md) project tries to fix this.
- It is [tranny software](tranny_software.md) and has a fascist [code of conduct](coc.md) (`linux/Documentation/process/code-of-conduct.rst`). Recently it started to even incorporate [Rust](rust.md).
- Its development practices are [sus](sus.md), it is involved with many unethical corporations (through the [linux foundation](linux_foundation.md)) including [Microsoft](microsoft.md) (one of the greatest enemies of free software) who is trying to take control over it ([EEE](eee.md)), [Google](google.md), [Intel](intel.md), [IBM](ibm.md) and others. Such forces will inevitably shape it towards corporate interests.
- It is a monolithic kernel which goes against the [KISS](kiss.md) philosophy.
- It is [bloat](bloat.md) and [bloat monopoly](bloat_monopoly.md) and in some ways [capitalist software](capitalist_software.md) (just try to fork Linux, maintain it and add/modify actual features).
- It uses a restrictive [GPL](gpl.md) license as opposed to a permissive one. Also it doesn't really enforce its license legally -- we're not advocating legal battles, but the fact that they entertain a license and then don't use it indicates it may be there just for good image.

Nevertheless, despite its mistakes, GNU/Linux offers a relatively comfy, powerful and (still) safe [Unix](unix.md)/[POSIX](posix.md) environment which means it can be drop-in replaced with another unix-like system without this causing you much trouble, so using GNU/Linux is at this point considered OK (until Microsoft completely seizes it at which point we migrate probably to [BSD](bsd.md) or [GNU Hurd](hurd.md)). It can be made fairly [minimal](minimalism.md) (see e.g. [KISS Linux](kiss_linux.md) and [Puppy Linux](puppy.md)) and [LRS](lrs.md)/[suckless](suckless.md) friendly.

Linux is so called monolithic kernel and as such is more or less [bloat](bloat.md). However it "[just works](just_works.md)" and has a great [hardware](hardware.md) support so it wins many users over alternatives such as [BSD](bsd.md).

Some alternatives to Linux are:

- [GNU Hurd](hurd.md), an unfinished (but somewhat usable) kernel developed by [GNU](gnu.md) itself.
- [BSD](bsd.md) operating systems such as [FreeBSD](freebsd.md), [NetBSD](netbsd.md) and [OpenBSD](openbsd.md) (best from the [LRS](lrs.md) point of view)
- [bare metal](bare_metal.md) UwU
- TODO: MOAR

## GNU/Linux

Many people nowadays use the word *Linux* to refer to any operating system running on Linux, even though they usually mean [GNU](gnu.md)/Linux.

One of the basic mistakes of [noobs](noob.md) who just switched from [Windows](windows.md) to "Linux" is that they try to continue to do things the *Windows way*. They try to run Windows programs on "Linux", they look for program installers on the web, they install [antiviruses](antivirus.md), they try to find a [GUI](gui.md) program for a thing that is solved with 2 lines of [shell](shell.md) script (and fail to find one), they keep [distro hoppoing](distro_hopping.md) instead of customizing their system etc. Many give up and then go around saying "brrruh, Loooonix sux" -- yes, it kind of does, but for other reasons. You're just using it wrong. Despite its corruption, it's still a [Unix](unix.md) system, you do things elegantly and simply, however these ways are naturally completely different from how ugly systems like Windows do it. If you want to convert an image from *png* to *jpg*, you don't need to download and crack a graphical program that takes 100 GB and installs ads on your system, you do it via a simple [command line tool](cli.md) -- don't be afraid of the terminal, learn some basic commands, ask experiences people how they do it (not how to achieve the way you want to do it). Everyone single individual who learned it later thanked himself for doing it, so don't be stupid.

## History

{ Some history of Linux can be read in the biography of Linus Torvalds called *Just For Fun*. ~drummyfish }

Linux was created by [Linus Torvalds](linus_torvalds.md). He started the project in 1991 as a university student. He read a book about operating system design and [Unix](unix.md) and became fascinated with it. Then when he bought a new no-name PC (4 MB RAM, 33 MHz CPU), he install [Minix](minix.md) on it, a then-[proprietary](proprietary.md) [Unix-like](unix.md) operating system. He was frustrated about some features of Minix and started to write his own software such as terminal emulator, disk driver and [shell](shell.md), and he made it all [POSIX](posix.md) compliant. These slowly started to evolve into an OS kernel.

Linus originally wanted to name the project *Freax*, thinking *Linux* would sound too self-centered. However the admin of an FTP server that hosted the files renamed it to *Linux*, and the name stuck.

On 25 August 1991 he made the famous public announcement of Linux on [Usenet](usenet.md) in which he claimed it was just a hobby project and that it "wouldn't be big and professional as [GNU](gnu.md)". In November 1991 Linux became [self-hosted](self_hosting.md) with the version 0.10 -- by the time a number of people were already using it and working on it. In 1992, with version 0.12, Linux became [free software](free_software.md) with the adoption of the [GPL](gpl.md) license.

On 14 March 1994 Linux 1.0 -- a fully functional version -- was released.

TODO: moar

## See Also

- [Hurd](hurd.md)
- [GNU](gnu.md)
- [BSD](bsd.md)
- [Linux-libre](linux_libre.md)
- [Linux for niggers](linux_for_niggers.md)