But the kernel knows about userspace.
> I still say something's goofy.
Goofy lusercode. For example look into sys_open, the open(2) syscall and
look what would happen if you pass bad parameters, for example a NULL
pointer: the kernel passes this pointer to getname().
Or even easier, write a program that passes a NULL pointer
to open(2)/read(2)/write(2) etc. What happens? You get one of these
nice messages.
Btw, some days ago someone posted a long and quite good article about
this topic which describes in detail how the new way to access user space
works.
Ralf