More simplistcaly, doing something in "userland" just means that you're doing it by writing a program that can be run once the OS has loaded.

When Mark says he things a feature is best left to userland, he mean(well, i think he means) that the feature does not requre any specific support from the kernel. Hijack gives a programer the ability to write a program that can appear on the empeg menu, display stuff on the screen and trap button presses. (and more... like play sounds...). Normal programs don't need much more than this. The player software from Rio is a good example of userland software.

Hijack often blurs the line between userland and kernel mode, because many of it's features are hacks to change the way the player software functions by intercepting a system call from the player or a button press before it gets to the player. If we could modify the player software, many of hijacks features would be in the player software.

Happening in userland just means writing a specific application that can be started, stoped and restarted at will, instead of being part of the operating system that is loaded at all times. Applications are userland.

Hmm... There must be a better way to explain this... Someone else take a shot at it...

Matthew