this post was submitted on 11 Apr 2024
166 points (95.1% liked)

Linux

48668 readers
1025 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

I'm curious how software can be created and evolve over time. I'm afraid that at some point, we'll realize there are issues with the software we're using that can only be remedied by massive changes or a complete rewrite.

Are there any instances of this happening? Where something is designed with a flaw that doesn't get realized until much later, necessitating scrapping the whole thing and starting from scratch?

(page 5) 50 comments
sorted by: hot top controversial new old
[–] [email protected] -2 points 8 months ago (4 children)

Wayland, Pipewire, systemd, btrfs/zfs, just to name a few.

load more comments (4 replies)
[–] [email protected] 35 points 8 months ago (3 children)

We haven't rewritten the firewall code lately, right? checks Oh, it looks like we have. Now it's nftables.

I learned ipfirewall, then ipchains, then iptables came along, and I was like, oh hell no, not again. At that point I found software to set up the firewall for me.

load more comments (3 replies)
[–] [email protected] 5 points 8 months ago (8 children)

Are there any things in Linux that need to be started over from scratch?

Yes, Linux itself! (ie the kernel). It would've been awesome if Linux were a microkernel, there's so many advantages to it like security, modularity and resilience.

[–] [email protected] 24 points 8 months ago

Found Dr. Tanenbaum's account!

load more comments (7 replies)
[–] [email protected] 14 points 8 months ago (1 children)

Cough, wayland, cough (X is just old and wayland is better)

[–] [email protected] 44 points 8 months ago (4 children)

Alt text: Thomas Jefferson thought that every law and every constitution should be torn down and rewritten from scratch every nineteen years--which means X is overdue.

load more comments (4 replies)
[–] [email protected] 51 points 8 months ago* (last edited 8 months ago) (2 children)

Starting anything from scratch is a huge risk these days. At best you'll have something like the python 2 -> 3 ~~rewrite~~ overhaul (leaving scraps of legacy code all over the place), at worst you'll have something like gnome/kde (where the community schisms rather than adopting a new standard). I would say that most of the time, there are only two ways to get a new standard to reach mass adoption.

  1. Retrofit everything. Extend old APIs where possible. Build your new layer on top of https, or javascript, or ascii, or something else that already has widespread adoption. Make a clear upgrade path for old users, but maintain compatibility for as long as possible.

  2. Buy 99% of the market and declare yourself king (cough cough chromium).

load more comments (2 replies)
[–] [email protected] 53 points 8 months ago (3 children)

There is some Rust code that needs to be rewritten in C.

[–] [email protected] 19 points 8 months ago (7 children)

Strange. I’m not exactly keeping track. But isn’t the current going in just the opposite direction? Seems like tons of utilities are being rewritten in Rust to avoid memory safety bugs

load more comments (7 replies)
[–] [email protected] 40 points 8 months ago* (last edited 8 months ago) (1 children)
[–] [email protected] 27 points 8 months ago (1 children)
[–] [email protected] 12 points 8 months ago (1 children)

~~I feel tracked... Better strike this all through~~

[–] [email protected] 15 points 8 months ago (16 children)

I would say the whole set of C based assumptions underlying most modern software, specifically errors being just an integer constant that is translated into a text so it has no details about the operation tried (who tried to do what to which object and why did that fail).

[–] [email protected] 8 points 8 months ago (12 children)

You mean 0 indicating success and any other value indicating some arbitrary meaning? I don't see any problem with that.

Passing around extra error handling info for the worst case isn't free, and the worst case doesn't happen 99.999% of the time. No reason to spend extra cycles and memory hurting performance just to make debugging easier. That's what debug/instrumented builds are for.

load more comments (12 replies)
load more comments (15 replies)
[–] [email protected] -1 points 8 months ago

I'm tempted to say systemd-ecosystem. Sure, it has it's advantages and it's the standard way of doing things now, but I still don't like it. Journalctl is a sad and poor replacement from standard log files, it has a ton of different stuff which used to be their separate own little things (resolved, journald, crontab...) making it pretty monolithic thing and at least for me it fixed a problem which wasn't there.

Snapcraft (and flatpack to some extent) also attempts to fix a non-existing problem and at least for me they have caused more issues than any benefits.

load more comments
view more: ‹ prev next ›