Twitter | Search | |
🇪dith 🅱️inch Apr 21
Replying to @mgattozzi
as for security patches... recompiling the world should be fast, but nobody in the systems space (at least not in the open world, idk what proprietary spooks have) has been investing in incremental recompilation! there's Roslyn but for C# and it's manual, unlike rustc!
Reply Retweet Like
Pumpkin Spiced Lvalues Apr 21
Replying to @eddyb_r
so like "I know this file lives on this path so I'll just load it myself" rather than the linker? So dlopen? I don't see how this is much different beyond I don't need to have DYLD_LIBRARY_PATH set and my program does it vs the linker. if I'm understanding this correctly
Reply Retweet Like
🇪dith 🅱️inch Apr 21
Replying to @mgattozzi
the important part about statically linking a shared object is that all the symbols are already resolved and don't have to be string-searched for every time as for "my program does it vs the linker" is a false dichotomy, since the dynamic linker already runs in your program :P
Reply Retweet Like
Pumpkin Spiced Lvalues Apr 21
Replying to @eddyb_r
Ah yeah that makes sense. I’ll be honest linking feels a bit like black magic. I kind of get it conceptually but I’m lost on specifics.
Reply Retweet Like
🇪dith 🅱️inch Apr 21
Replying to @mgattozzi
dynamic linking is kind of evil, which is why it feels like black magic your ELF file has the absolute path of an executable (the "interpreter", ld-linux-*.so on linux) that is basically the dynamic linker and it resolves all the functions and statics *at runtime* BY NAME
Reply Retweet Like
🇪dith 🅱️inch Apr 21
Replying to @mgattozzi
when you call dlopen/dlsym, you're just (even more) dynamically accessing that resident bastard that's sitting there smug after having stitched together your program
Reply Retweet Like
Pumpkin Spiced Lvalues Apr 21
Replying to @eddyb_r
Ah cool so it’s my "clothes are held together by tiny bits of string that could be lost at any minute destroying my clothes"
Reply Retweet Like
🇪dith 🅱️inch Apr 21
btw has an excellent series on this, although it might be far deeper into the weeds than desirable to understand why as opposed to how,,, (e.g. it taught me about COPY relocations where the linker COPY-PASTES ENTIRE CHUNKS OF BINARIES IN MEMORY?!?!?!)
Reply Retweet Like
fasterthanlime 🐁 Apr 21
Replying to @eddyb_r @mgattozzi
Wait till I talk about TLS
Reply Retweet Like
Pumpkin Spiced Lvalues Apr 21
Thread Local Storage? It's really bad we have 2 things this can refer too
Reply Retweet Like
fasterthanlime 🐁
I know I can get a bit sidetracked at times but talking about Transport Layer Security in a series about ELF objects seems a bridge too far, even for me
Reply Retweet Like More
🇪dith 🅱️inch Apr 21
what about signed executables,,,
Reply Retweet Like
fasterthanlime 🐁 Apr 21
Replying to @eddyb_r @mgattozzi
why do you think I picked Linux for this series??
Reply Retweet Like
Jubilee Apr 21
Oh I thought you really were going to for a sec.
Reply Retweet Like