The Input Stack on Linux: An End-to-End Architecture Overview