I know what 'nice' is and how it maps to priority, this is not the question.
Linux priorities range from 0-139. 0-99 is real time, 100-139 is user space. Nice maps onto priority:
- -20 → 100
- 0 → 120
- +19 → 139
I understand nice is user space, priority is kernel space.
But why bother with the notion of 'nice'? it seems to be a redundant measure. Under what situation would having nice be better than just simply directly influencing priority?
Is it there simply for convenience or is there a technical reason for having it?
nice
is a way, indeed the [portable] way, of "directly influencing priority". By the way, real time and user space are not mutually exclusive: you can have user space processes that are real time and I also guess that you can have kernel threads that aren't.