this post was submitted on 18 Oct 2023
359 points (96.4% liked)
Technology
59429 readers
2632 users here now
This is a most excellent place for technology news and articles.
Our Rules
- Follow the lemmy.world rules.
- Only tech related content.
- Be excellent to each another!
- Mod approved content bots can post up to 10 articles per day.
- Threads asking for personal tech support may be deleted.
- Politics threads may be removed.
- No memes allowed as posts, OK to post as comments.
- Only approved bots from the list below, to ask if your bot can be added please contact us.
- Check for duplicates before posting, duplicates may be removed
Approved Bots
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
The Nvidia thing was a subtle way to point out that you can't "brew install" your way out of every bit of missing OS functionality. The subtly was sadly too subtle.
"Posix" is such a trivial set of APIs that until recently Windows claimed to be Posix compatible (and basically still is???). Darwin, the MacOS kernel, lacks pretty much everything above that slim foundation. No user or network namespaces. No capabilities. Even if you switch to GNU coreutils (ls, ps, netstat, etc), you get a reduced featureset because Darwin lacks /proc, /sys, ioctls, and other knobs&levers to make stuff work the way it does on Linux. Xorg works because X11 was common across all Unixen back then. And on the built in BSD utils, stuff gets weird like
ls ~/Downloads -l
doesn't work and case insensitivity leads to weird bugs in things like shell wildcards (likels ~/downlo*/*
).The Linux network stack is complicated because it can do absolutely everything, at insane speeds and scales. MacOS' network features are geared towards being a laptop and not much else. I won't defend Linux as user friendly but it's been my daily desktop for 25 years, I guess I've figured it out. I use and appreciate stuff like VLANs, bridging, nftables, ebtables, etc. If you need to change behavior, there's probably a /proc/net flag that will do it. It's stuff that MacOS hides or simply doesn't have.