Here's what I got when I searched this mailing list:
Endpoints are used for message passing and process identification.
If you send a message to an other process you will specify the
endpoint of the other process as identification.
This makes it also possible to have some magic endpoint values like
ANY and NONE.
Furthermore as far as i know endpoints are the only process
identification that is usable through the whole system.
For example PID numbers are not usable because only the process
manager is aware of PID's.
Endpoint numbers can be translated to the index number in the process
table of the kernel, process manager and file system.
then commented by Ben Gras:
Although this is all true, it's not a complete description of endpoint
numbers. What you describe is also true of the 'old' way of addressing
processes, which was by process slot number (index number in the
process table, ignoring the weird NR_TASKS offset).
Endpoints, which are indeed mappable to a slot number, were introduced
to distinguish a particular process in a slot from a new process in
the same slot, after the original has died and a new one has taken its
place. This way you avoid sending messages to a completely irrelevant
process.
HTH.
--
Guanqun