From 4cfaee9bdea63fc231487476454e82ce5b70fa6a Mon Sep 17 00:00:00 2001 From: tocariimaa Date: Mon, 10 Feb 2025 18:29:50 -0300 Subject: [PATCH] linux.md: new article --- articles/linux.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 articles/linux.md diff --git a/articles/linux.md b/articles/linux.md new file mode 100644 index 0000000..b322e26 --- /dev/null +++ b/articles/linux.md @@ -0,0 +1,28 @@ +# Linux +Linux is a Unix-like almost libre kernel created in 1991 by Linus Torvalds. Famously he announced it on [Usenet](usenet.md) +where he just called it "a side project" and not something "professional". After being released, Linux grew quickly and became +the defacto kernel of the GNU project, as [Hurd](hurd.md) wasn't ready yet and 386BSD couldn't be released earlier due to legal +issues regarding its source code. Linux wasn't affected by this because it was an independent, clean room implementation of Unix +(similar to Minix, the system Linus took inspiration from). + +Unlike the [BSDs](bsd.md), Linux is not a full operating systems on its own so it is coupled with userland tools, most commonly +[GNU](gnu.md) or [Busybox](busybox.md) to form a fully functional operating system. This is also the origin of whether to call it GNU/Linux or just Linux +(but it wouldn't apply to non-GNU distros like Alpine). + +Being Linux a monolithic kernel, this made it prone to bloat and indeed it got bloated, with device drivers having the most +lines of code in the entire kernel source tree. Since these drivers run on ring 0, it adds a huge attack surface, including +the fact that a failing driver can crash the whole system and almost 400 [syscalls](syscalls.md) for each architecture. + +By default and being strict, Linux is not fully free as it contains binary blobs (a form obfuscated proprietary software) +for device drivers. Projects like [Linux-libre](https://www.fsfla.org/ikiwiki/selibre/linux-libre/) remove such blobs, making Linux fully free software. + +Another issue is the forced inclusion of [Rust](rust.md) into the kernel (but as of writing this, 2025, it appears to be failing) and subsequently +the forced removal of seasoned kernel developers in basis of them being "old" and "refusing" to learn Rust. [SystemD](systemd.md) is another +issue on its own, pushed by Red Hat and other tech corporations. + +A tarball with the source of the first version, 0.01 can be found here: . + +## See Also +- [BSD](bsd.md) +- [Unix](unix.md) +- [Bloat](bloat.md)