9 ms·
> So we slowly started doing stuff that all the other Linux distros did, and implemented that in simple C code that was fast and parallelised. That's part of m
by wtbob 12y ago
> So we slowly started doing stuff that all the other Linux distros did, and implemented that in simple C code that was fast and parallelised.
That's part of my issue with systemd: replacing safe (-r) shell scripts with C. Sure, it's fast, but I trust C about as far as I can throw it (and yes, I realise that the Linux kernel is written in C: it constantly has local root exploits, which proves my point). I really wish that projects like systemd were written in something of like Ocaml, Go, Rust, Common Lisp—anything fast enough but safer.
Also, it probably doesn't help Lennart that he looks like the Rolfe Gruber in the Sound of Music…
- mmastrac 12y ago> That's part of my issue with systemd: replacing safe (-r) shell scripts with C. Because shell scripts are always safe, right? [1][2][3] We used to get root on Android devices by exploiting poorly-written shell scripts. > Also, it probably doesn't help Lennart that he looks like the Rolfe Gruber in the Sound of Music… Personal attacks won't help your case. [1] https://github.com/ValveSoftware/steam-for-linux/issues/3671 https://github.com/ValveSoftware/steam-for-linux/issues/3671 [2] https://github.com/MrMEEE/bumblebee-Old-and-abbandoned/commit/a047be85247755cdbe0acce6f1dafc8beb84f2ac https://github.com/MrMEEE/bumblebee-Old-and-abbandoned/commi... [3] http://www.exploit-db.com/papers/13199/ http://www.exploit-db.com/papers/13199/
- wtbob 12y ago> Because shell scripts are always safe, right? Hence 'safe (-r),' not 'safe.' > Personal attacks won't help your case. It was not an attack, just a statement of fact. He looks just like a movie villain; it's not his fault, and no-one should hold it against him, but I wonder if it hurts him anyway.
- pdkl95 12y agoWhile bugs happen in any language, shell scripts are far easier to debug than C. You tend to not get nasty interactions spanning multiple source files in shell, where the bugs tend to on a single line (like in that Valve example, where rm should have never been used in such a careless/negligent manner). On the other hand, are you sure you've checked for all of the potential undefined behavior problems in your C programs? These are far more numerous[1] than many people realize. [1] https://www.securecoding.cert.org/confluence/display/seccode/CC.+Undefined+Behavior https://www.securecoding.cert.org/confluence/display/seccode...
- digi_owl 12y agoThat is, imo, the beauty of shell script. At its core, they are the very same commands you would give manually. but wrapped in basic programming logic (if clauses etc). thus you can walk the shell script and get a good feel for why the script is doing what it is doing. If you want to do that with a binary, you pretty much have to either hit it with a debugger (i think a previous thread here on Hacker News actually recommended using strace to inspect systemd boot behavior) or have the source code sit beside it for reference.
- legulere 12y agoIt's also far harder to get shell scripts right compared to C