3 ms·
For anyone wondering how this might actually work, "Shadow dynamically loads these libraries to natively execute the application code. Shadow intercepts a selec
by rashkov 5y ago
For anyone wondering how this might actually work, "Shadow dynamically loads these libraries to natively execute the application code. Shadow intercepts a selective set of system calls to enable seamless integration of an application to the simulated environment. In this way, the application may be unaware that it is running in the simulator and will function as if it was running in a standard UNIX environment." https://github.com/shadow/shadow/blob/main/docs/0-Design-Overview.md#what-are-plug-ins https://github.com/shadow/shadow/blob/main/docs/0-Design-Ove...
It then uses the an event queue to transfer the packets between virtual hosts, and applies rate-limiting, bandwidth, jitter, packet loss, and TCP stack delays and CPU processing delays, among other things I'm sure. Very cool!