https://www.kontronn.com/post/linux/linux-kernel-memory-management-architecture.html