diff --git a/articles/linux.md b/articles/linux.md index 701515c..57a057b 100644 --- a/articles/linux.md +++ b/articles/linux.md @@ -1,23 +1,23 @@ # Linux -Linux is a Unix-like almost libre kernel created in 1991 by Linus Torvalds. Famously he announced it on [Usenet](usenet.md) +Linux is a Unix-like almost libre [kernel](kernel.md) 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 +the defacto kernel of the GNU project, as the [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). +(similar to [Minix](minix.md), the system Linus took inspiration from). -Unlike the [BSDs](bsd.md), Linux is not a full operating system 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). +Unlike the [BSDs](bsd.md), Linux is not a full [operating system](operating_system.d) 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, which uses BusyBox). -Being Linux a monolithic kernel, this made it prone to bloat and indeed it got bloated, with device drivers having the most +Being Linux a monolithic kernel, this made it prone to [bloat](bloat.md) 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. It has almost 400 [syscalls](syscalls.md) for each architecture. +the fact that a failing driver can crash the whole system. It has about 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. +By default and being strict, Linux is not fully libre as it contains binary blobs (a form of obfuscated proprietary software) +for device drivers. Projects like [Linux-libre](https://www.fsfla.org/ikiwiki/selibre/linux-libre/) remove such blobs, making Linux fully libre 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 +the forced removal of seasoned kernel developers in basis of them being ["old"](old.md) 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: . @@ -26,3 +26,5 @@ A tarball with the source of the first version, 0.01 can be found here: