Since a FUSD driver is just a regular user-space program, it can naturally use any of the enormous body of existing libraries that exist for almost any task. FUSD drivers can easily incorporate user interfaces, encryption, network protocols, threads, and almost anything else. In contrast, porting arbitrary C code into the kernel is difficult and usually a bad idea.