https://prashant-divate.medium.com/linux-1-0-when-to-write-a-kernel-driver-vs-a-user-space-application-a-practical-guide-ed55c8c211d5