You will need a highly compressible read-only file system like SquashFS, and an overlay file system like UnionFS, OverlayFS, Aufs,... All of the driver stuffs are in the kernel. The user space utilities are already developed by Linux. I don't think a normal user like me can help.