“…With more heterogeneous machines and novel technology on the horizon, this divide is only going to become wider. In some of our prior work, we have attempted to address some of the friction between existing software systems, platforms, and new technology in terms of building distributed systems for the Internet of Things [66], increasing scalability and performance [67], [68], and dealing better with multi-tenancy [41]. However, we believe that at this point it is time to rethink the entire stack and co-design new interfaces between hardware, operating system, and data processing systems.…”