Kim, do you have any more info about how the player executable is linked with the kernel.
I should think it will operate in user and in kernel mode.
Which part is embedded in kernel and which is handled by the kernel?


I don't think there's any special kernel related in empeg-player, it just uses real-time scheduling (=SCHED_RR) instead of the default Linux time-sharing scheduling (=SCHED_OTHER) - see setscheduler(2).

As Rob pointed out, they want to have all the CPU power and memory efficiently used and in control of the player application to ensure that audio won't start skipping and visualizations start jerking. I understand this completely, though, as a 3rd party developer, I also see the other side of the coin. Anyhow, empeg primarily needs to ensure that their software runs smoothly on their hardware.

In theory, you can run process which also uses real-time scheduling and share the time with empeg-player, but then the application using real-time scheduling should really be designed for that. So it's likely that people won't end up running internet daemons while the player is running on background (not that there would even be free resources for it).

Kim