articles/linux.md: update
This commit is contained in:
parent
c2bedf1317
commit
7889a33de4
1 changed files with 13 additions and 11 deletions
|
@ -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: <https://mirrors.edge.kernel.org/pub/linux/kernel/Historic/>.
|
||||
|
@ -26,3 +26,5 @@ A tarball with the source of the first version, 0.01 can be found here: <https:/
|
|||
- [BSD](bsd.md)
|
||||
- [Unix](unix.md)
|
||||
- [Bloat](bloat.md)
|
||||
- [GNU Hurd](hurd.md)
|
||||
- [Minix](minix.md)
|
||||
|
|
Loading…
Add table
Reference in a new issue