A userspace exploit is the first step to doing anything. It provides initial code execution, but under the restrictions of Cafe OS and IOSU. You can actually do quite a bit in userspace, like using Nintendo's libraries to write apps. Relys demonstrated this with his Pong demo. But userspace limits your control to your app's own code: it can't change its memory mappings, access other processes, or get full access to the CPU and hardware. A (Cafe OS) kernel exploit is needed to allow all those things.