Subject: POSIX named semaphores naming restrictions in sem_open()
To: None <tech-kern@netbsd.org>
From: Ian Zagorskih <ianzag@megasignal.com>
List: tech-kern
Date: 09/09/2004 22:10:30
According to POSIX specification semaphore name is not required to be started 
with slash character:

http://www.opengroup.org/onlinepubs/009695399/functions/sem_open.html

---cut---
The name argument points to a string naming a semaphore object. It is 
unspecified whether the name appears in the file system and is visible to 
functions that take pathnames as arguments. The name argument conforms to the 
construction rules for a pathname. If name begins with the slash character, 
then processes calling sem_open() with the same value of name shall refer to 
the same semaphore object, as long as that name has not been removed. If name 
does not begin with the slash character, the effect is 
implementation-defined. The interpretation of slash characters other than the 
leading slash character in name is implementation-defined.
---cut---

According to /sys/kern/uipc_sem.c NetBSD realization explicitly requires 
leading slash character. On the other hand, AFAIU in NetBSD named semaphores 
are pure kernel objects and do no have any relations with file system. So, 
technically, object name can be composed from any characters in any 
variations (except 0x0).

Any ideas why it was done this way ? Probably i'm missing something important. 
Please enlight me :)

// wbr