|
fasterthanlime 🍉
@
fasterthanlime
Europe
|
|
software person @itchio 🦀 rust, go, compilers, music, gamedev ☕ donate: patreon.com/fasterthanlime 📺 watch: twitch.tv/fasterthanlime 🌱 he/him
|
|
|
58.320
Tweetovi
|
606
Pratim
|
6.718
Osobe koje vas prate
|
| Tweetovi |
|
fasterthanlime 🍉
@fasterthanlime
|
10 h |
|
Back up for real
|
||
|
|
||
|
fasterthanlime 🍉
@fasterthanlime
|
10 h |
|
It's back up
|
||
|
|
||
|
fasterthanlime 🍉
@fasterthanlime
|
10 h |
|
We had a short outage, it's back up now
|
||
|
|
||
|
fasterthanlime 🍉
@fasterthanlime
|
10 h |
|
It wasn't, but everything should be good now
|
||
|
|
||
|
fasterthanlime 🍉
@fasterthanlime
|
10 h |
|
itch is back up :)
|
||
|
|
||
|
fasterthanlime 🍉
@fasterthanlime
|
10 h |
|
Should be all good now
|
||
|
|
||
|
fasterthanlime 🍉
@fasterthanlime
|
10 h |
|
Back up, sorry for the downtime
|
||
|
|
||
|
fasterthanlime 🍉
@fasterthanlime
|
10 h |
|
Back up
|
||
|
|
||
|
fasterthanlime 🍉
@fasterthanlime
|
10 h |
|
I know but can't do anything more atb the moment
|
||
|
|
||
| fasterthanlime 🍉 proslijedio/la je tweet | ||
|
fasterthanlime 🍉
@fasterthanlime
|
2. velj |
|
Meanwhile, for $10+ Patreon supporters, Part 7 of "Making our own executable packer" just came out - it talks about dynamic symbol resolution, and performs cross-object relocations.
By that point, we have a pretty solid understanding of what's going on!
fasterthanli.me/blog/2020/dyna…
|
||
|
|
||
|
fasterthanlime 🍉
@fasterthanlime
|
2. velj |
|
NFS & SMB performance continues to be an unfathomable mystery for me, what the heck is happening in these protocols
|
||
|
|
||
|
fasterthanlime 🍉
@fasterthanlime
|
2. velj |
|
I was! I was all along! haha
|
||
|
|
||
|
fasterthanlime 🍉
@fasterthanlime
|
2. velj |
|
so my position is that MAP_FIXED was "invented" because that's what ld-linux.so needs to do (the "standard"/"default"/"built-in" dynamic linker on Linux), and since I'm doing the same thing, I need it, too
(or pay for a lot of disk I/O upfront)
|
||
|
|
||
|
fasterthanlime 🍉
@fasterthanlime
|
2. velj |
|
it's all in this series: fasterthanli.me/blog/2020/what… (first 4 parts are unlocked for everyone, lmk if you want friend links for 5-7, today's thread was from me writing par t7)
|
||
|
|
||
|
fasterthanlime 🍉
@fasterthanlime
|
2. velj |
|
and the goal is to learn how it all works.
so the program opens ELF files, parses them, loads the segments in memory, applies relocations, jmps to the entry point and weeeeeeee pic.twitter.com/LIrKfvXmeu
|
||
|
|
||
|
fasterthanlime 🍉
@fasterthanlime
|
2. velj |
|
oh, to execute them! without using the system's dynamic linker.
|
||
|
|
||
|
fasterthanlime 🍉
@fasterthanlime
|
2. velj |
|
I tried to explain it better, let me know if that clarifies it: gist.github.com/fasterthanlime…
|
||
|
|
||
|
fasterthanlime 🍉
@fasterthanlime
|
2. velj |
|
and it correctly exposes its public interface as "unsafe", which, duh
|
||
|
|
||
|
fasterthanlime 🍉
@fasterthanlime
|
2. velj |
|
I wish I had explained this better from the beginning, but: memory layout & file layout don't necessarily match, so you need one non-fixed mmap call to reserve + multiple fixed mmap calls to map the right areas to the right place, OR one big mmap and copy parts of the file
|
||
|
|
||
|
fasterthanlime 🍉
@fasterthanlime
|
2. velj |
|
that's why you need multiple file-backed mmap calls to do it right (and if they *do* match up with their location in the file and they're adjacent, the memory manager merges your multiple mappings into one - but if they're not, it still works)
|
||
|
|
||