Tomohiro Kusumi kusumi.tomohiro at
Fri Jun 17 05:15:45 PDT 2016

Technically speaking, we could change the format of "@@-1:00001" to
"@@-1something00001" without breaking userspace unless userspace use
raw PFS name "@@-1:00001" for some reasons.

In the previous post, I intentionally used raw PFS name, but users or
userspace programs basically never directly use this format, so it
really doesn't matter if the separator is ":" or something else as
long as there is something between.

In other words, when we have

# ls -l /pfs/var.tmp
lrwxr-xr-x  1 root  wheel  10 Aug 26  2015 /pfs/var.tmp -> @@-1:00006
# grep "/var/tmp" /etc/fstab
/pfs/var.tmp    /var/tmp                null    rw              0       0

users would do

# cd /pfs/var.tmp
# cd /var/tmp

but users most likely never do

# cd /pfs/@@-1:00006
# cd /@@-1:00006
# cd /var/tmp/@@-1:00006
# cd /pfs/@@-1:00006/@@-1:00006/@@-1:00006/@@-1:00006
# cd /@@-1:00001/@@-1:00002/@@-1:00003/@@-1:00004/@@-1:00005/@@-1:00006

which are all the same.

2016-06-17 0:28 GMT+09:00 Michael Neumann <mneumann at>:
> On 06/16/16 02:26, Tomohiro Kusumi wrote:
>> There was discussion about @@ in PFS path on irc channel a few days
>> ago. This post has nothing to do with it, but explains what that @@
>> really means. This is very tricky, so most users probably had
>> difficult time understanding what this @@ means.
> This is a bit off-topic, but related to the PFS naming. Having ":" in the
> path causes a lot of trouble. Dunno if this issue has been brought up by
> jmarino. One such situation is the sysctl KERN_PROC_PATHNAME, e.g. used by
> rust to find the path of the executable. The problem arises when this is
> used in a PATH variable, as ":" is used there as a separator as well. The
> alternative is using /proc/curproc/cmdline, but this requires a mounted
> /proc filesystem which causes problems with the synth builder.
> Regards,
>   Michael

More information about the Users mailing list