| ▲ | cultofmetatron 4 days ago |
| To think Linus wrote linux to be a "good enough" solution until hurd was ready. The entire hurd system is a literal metaphor for how waiting till you're perfect means you'll never be good enough. At the risk of getting downvoted, I think hurd is cooked at this point. It certainly has some solid ideas that could live on in a modern system. They should retry rewriting it in rust (or zig) and at least have the opportunity to catch mindshare with new engineers just dabbling in systems engineering. |
|
| ▲ | freedomben 4 days ago | parent | next [-] |
| I had a friend who got involved with Hurd many years back, and I asked him why he thought Hurd wasn't going to be a thing for non-hobbyists. He shared this (re-shared with permission but anonymously as he's still somewhat involved in GNU projects), which is just one guy's perspective of course. Would love to hear from others if this echoes their experiences. > GNU is full of brilliant people who can write great code, but there are a few issues that I don't see fixing: Rampant disagreement and individuals who like to work solo. This can be good sometimes, but for a project with that scope it just isn't possible. The group is also aging and isn't getting new blood. This can be good because people have more free time, but it also traps us in old familiar/comfortable patterns that make onboarding younger contributors even more difficult than it already is. The philosophy is also quite rigid. For good reasons I think as more "permissive" licenses have been used to abuse users extensively, but the limitations do come up quite a bit, mainly with adoption. I think too many people are just scarred still from an earlier world where proprietary was often the only real alternative, and change is hard. |
| |
| ▲ | goku12 4 days ago | parent | next [-] | | > The group is also aging and isn't getting new blood. This is very sad, because the GNU project pioneered a way of software design that's very different from anything we see on proprietary platforms, or even common Linux/BSD applications for that matter. This is best exemplified by Emacs - hackable to the core, with more than enough documentation and context help baked in to help you do just that. You can see the same philosophy at play in the Guix OS, the Shepherd (init), GNU Poke (semantics-aware binary editor) and many many other GNU software. It can be used easily by anyone, but it's absolute heaven for those who like to poke around (not a pun) the system. It nudges normal users towards becoming system hackers. The difference between GNU software and corporate-sponsored components (like systemd, avahi, gnome, policykit, PAM, Chrome, Firefox, etc) is stark. I have heard similar things about NetBSD and OpenBSD to a lesser extend, but I'm yet to give it a good try. The only other alternative I've seen is the suckless suite of software where the configuration is done in the source code itself, before it's compiled. But it can be slightly daunting even for power users. With the loss of that knowledge and philosophy, an entire generation will grow up without ever knowing a different way of computing that treats you as something more than just a consumer to be squeezed for every last penny, and the true power and potential of general purpose computing. | | |
| ▲ | Karrot_Kream 3 days ago | parent [-] | | The problem that Poeterring tried to address with things like systemd is very obvious when you fire up emacs. There's so, so much old code. There's very few tests because it was all written hacker style. Because of this "hackable to the core" philosophy these codebases are piles of unmaintainable tech debt. Someone had an itch to scratch, wrote code to scratch it, then submitted a diff for merging. But nobody took a step back and said: "Wait! We need to rearchitect <this> to accommodate this new functionality." This is understandable because GNU projects are volunteer projects and it's a lot more fun to submit a diff than do a refactor to get a small change in. Old Unix init systems, much like Emacs, were just piles and piles of kludges that kept things going. The insight that Poeterring had was that if you reduce the hacking surface to mere configuration then you only need to maintain the configuration layer and not a huge kaleidoscope of functionality. The modern Unix layer of having opinionated, config-driven tools talk over pipes won out in this environment because you only really need to maintain the contract at the pipes (even if you are just outputting terminal escape codes.) Beyond that tools can be composed, but the surface area of each tool is small. This is why vim is so much more commonly used and easily maintained than emacs. (This is distinct from the "Unix philosophy" stuff that was popular before where folks wrote small, composable tools instead of larger, monolithic, config driven ones.) A more modern approach of "hackable to the core" I feel would be to standardize around a sturdy, opinionated, well maintained core and then to allow extensibility around this core. Helix is exploring this (using Scheme as its extensibility layer.) But I think Helix and other projects (maybe Lem?) need to prove this approach out before it can come close to challenging the modern configuration-driven ecosystem of tools. (I say this as a user of emacs and Zed by the way and someone who recently started hacking on Lem, so this comes from some experience.) |
| |
| ▲ | hitekker 4 days ago | parent | prev [-] | | Thanks for sharing. It sounds like they're playing house. Going through the motions but unwilling to sacrifice for their supposed goal. |
|
|
| ▲ | ants_everywhere 4 days ago | parent | prev | next [-] |
| > They should retry rewriting it in rust (or zig) It's an antipattern to chase whatever language is being hyped the most at the moment. And it's probably bad from a community POV to deliberately attract developers who are chasing hype. |
| |
| ▲ | freedomben 4 days ago | parent | next [-] | | Yeah, projects like this really need people who will be into it for the long term, and using something like rust or zig is a big gamble. It eliminates a huge swath of potential long-term contributors who know C well and don't want to change, in exchange for an unknown group with an unknown amount of overlap. | | |
| ▲ | pengaru 4 days ago | parent | next [-] | | > It eliminates a huge swath of potential long-term contributors who know C well and don't want to change I don't think that swath is as huge as you think it is in 2025. We were saying the same stuff during the Golang heydays ~8-9 years ago, and the C experts were already pretty fucking MIA. The Linux and systemd projects are both suffering from a lack of new blood interested in writing plain old C, and the old guard is aging out. Linux is embracing Rust, which should help. I imagine systemd will do the same thing once a Rust toolchain is required to build the average distro kernel. | |
| ▲ | cultofmetatron 4 days ago | parent | prev | next [-] | | > It eliminates a huge swath of potential long-term contributors who know C well and don't want to change, that pretty much described the current hurd dev community and its dying. I wouldn't advocate a full RIIR for most things but I think its a solid hail Mary to maybe make hurd relevant. The alternative is its going to be dead in a few years when the contributors all age out to spend time with their grandkids. | | |
| ▲ | piperswe 4 days ago | parent | next [-] | | At this point... if you want to contribute to a UNIX-like microkernel-based OS written in Rust, Redox is right there | |
| ▲ | Y_Y 4 days ago | parent | prev [-] | | I'll believe it when Netcraft confirms it |
| |
| ▲ | kstrauser 4 days ago | parent | prev [-] | | OTOH, I have zero interest in contributing to a C kernel. Even the experts can't write it without messing up with C's vastly many footguns. I'm not a C expert. What chance to I have to add a new kernel feature that doesn't literally destroy my system? It's too intimidating in the sheer amount of risky "surface area" I have to perfectly manage or else face dire consequences. Nah. I'd much rather use a newer language that's explicitly designed for writing the same sorts of things that C is but with a teensy portion of the footguns. I'm not saying C is bad. I am saying that if the Linux kernel devs still write buggy code sometimes — not because of logic errors or other design-level mistakes, but because of some goofy memory issue or accidentally wandering off into the wilderness of UB — then I guarantee I'm going to screw it up. If it were in Rust or Zig or whatever, I'd feel like I had at least a fighting chance of making a tweak that didn't immediately format my hard drive and kick my cat. | | |
| ▲ | mathiaspoint 4 days ago | parent | next [-] | | Yeah and the rest of us don't want a kernel that mutates a heap-like structure for every minor operation. So until there's a language for writing software with a C-like approach to memory and lifetimes you're not going to see C or C software replaced. | | |
| ▲ | kstrauser 4 days ago | parent [-] | | So, Rust or Zig are OK, then. | | |
| ▲ | mathiaspoint 4 days ago | parent [-] | | So you've never written a rust program then. Or you don't know how to write C well. | | |
| ▲ | cultofmetatron 3 days ago | parent [-] | | out of curiousity, wheat heap like structure are you talking about? there are data structures as part of the standard library that do that but as far as I know. you can avoid that and stick to data structures within the stack just fine in rust. I don't claim to be an expert so Id appreciate if you could explain further | | |
|
|
| |
| ▲ | yjftsjthsd-h 4 days ago | parent | prev [-] | | Redox exists; are you contributing to it? |
|
| |
| ▲ | kouteiheika 4 days ago | parent | prev [-] | | > > They should retry rewriting it in rust (or zig) > It's an antipattern to chase whatever language is being hyped the most at the moment. Hype? Come on, Rust's 1.0 release was already over a decade ago. At this point it's pretty boring. How many more years will it take before people start taking it seriously and finally accept that those who prefer Rust over C do so because it's a much better language than C and not just because it's hyped? |
|
|
| ▲ | jowea 4 days ago | parent | prev | next [-] |
| Rust's main toy/experimental OS RedoxOS is already there and has a microkernel. |
|
| ▲ | raverbashing 4 days ago | parent | prev | next [-] |
| GNU mentality in a nutshell Also I can't remember any more recent GNU projects that were successful |
| |
| ▲ | tombert 4 days ago | parent | next [-] | | I guess it sort of depends on how you define "success"; there's plenty of projects that still have some development and active users. TeXMacs was release in the late 90's (I think) and it's pretty neat and I think has at least some user base, and I think GNU Parallel was released in the mid 2000s and I know a number of people who use that (including myself). | |
| ▲ | goku12 4 days ago | parent | prev | next [-] | | There are several other important and relatively new GNU projects around - like GNU Radio, Jami, Poke (a semantics-aware binary editor), GNS (DNS alternative), Guile, Mailman, Octave, Parted, R, Shepherd, Taler, GnuCash, DDRescue and numerous others to name. But if you leave out the 'new' part, you'll discover a lot more fantastic gnu projects [1], including Linux's entire coreutils. If you spend enough time with some of them, you'll see how focused, clever, polished and well-integrated many of them are - like bc, units, wget and stow for example. You get the Emacs vibe from many of them. On top of that, a lot of important software are built on top of GNU software like glibc, gsl, gcc, groff, libjit, gmp, ghostscript, libtasn1, readline, aspell, tar (gnu format), termcap, bash, etc. And one thing in common with most of them is their longevity. [1] https://www.gnu.org/software/#allgnupkgs | | |
| ▲ | raverbashing 4 days ago | parent [-] | | A lot of those I think are > 20yrs now, so not necessarily "new" projects > including Linux's entire coreutils Ah yes I think I've heard of this GNU/Linux thing. To see if they will come ahead of Berkeley System Distribution. /s |
| |
| ▲ | spookie 4 days ago | parent | prev [-] | | Jami, or Taler come to mind. The latter just released, so... Yeah. https://www.taler.net/en/news/2025-01.html | | |
|
|
| ▲ | jnpnj 4 days ago | parent | prev [-] |
| gnu less-is-more |