After a week of intensive work I am happy to share a new version of libstyxe that now supports extended version of 9p protocol: 9p2000.u and 9p2000.L.

Original 9p protocol designed for Plan9 to be minimalistic.

9P is a distributed resource sharing protocol developed as part of the Plan 9 research operating system at AT&T Bell Laboratories (now a part of Lucent Technologies) by the Computer Science Research Center. It can be used to distributed file systems, devices, and application services. It was designed as an interface to both local and remote resources, making the transition from local to cluster to grid resources transparent.

9P2000.u is a set of extensions to the 9P protocol to better support UNIX environments connecting to Plan 9 file servers and UNIX environments connecting to other UNIX environments. The extensions include support for symbolic links, additional modes, and special files (such as pipes and devices). Also included are hints to better support mapping of numeric user-ids, group-ids, and error codes.

(From 9p2000.u RFC )

According to 9p overview - 9p2000.u did not provide a direct mapping to Linux operations and thus 9p2000.L has been designed.

This extensions to the protocol took quite different design approach. 9p2000.u adds no new messages but extend existing ones adding new fields. 9p2000.L on the other hand - add the whole bunch of new messages that better match Linux FS operations at the price of doubling number of messages a server need to handle.

Please let me know if you found these extensions useful what is your experience with 9p versions.