File:  [NetBSD Developer Wiki] / wikisrc / projects / project / binary_compat_puffs_backend.mdwn
Revision 1.1: download - view: text, annotated - select for diffs
Sun Nov 6 01:59:12 2011 UTC (2 years, 5 months ago) by jmmv
Branches: MAIN
CVS tags: HEAD
Move existing project definitions from projects/gsoc_2011/ to
projects/project/ .

The goal for this reorganization is to remove any knowledge of the projects
classification from the file hierarchy: the classification goes into tags,
and projects indexes automatically list projects based on such tags.

Also, the current gsoc_2011 name was wrong anyway, because GSoC 2011 has
already concluded and projects would have had to move to a gsoc_2012 directory

Lastly, yes, "projects/project/*" is slightly redundant.  But I want to keep
the project lists from the projects "database" clearly separated.

This is as proposed in www@.

[[!template id=project

title="Binary compatibility for puffs backend"

[tech-kern](, [tech-userlevel](

[Antti Kantee](

duration="3 months"

Currently, the [puffs(3)]( interface between the kernel and userspace uses various system structures for passing information. Examples are `struct stat` and `struct uucred`. If these change in layout (such as with the recent time_t size change), old puffs servers must be recompiled.

The purpose of the project is to:

* *define* a binary-independent protocol
* *implement* support
* *measure* the performance difference with direct kernel struct passing
* if there is a huge difference, *investigate* the possibility for having both an internal and external protocol. The actual decision to include support will be made on the relative complexity of the code for dual support.

While this project will be partially implemented in the kernel, it is fairly well-contained and prior kernel experience is not necessary.

If there is time and interest, a suggested subproject is making sure that [p2k(3)]( does not suffer from similar issues. This is a required subproject if dual support as mentioned above is not necessary.

[[!tag gsoc]]
[[!tag medium]]
[[!tag kernel]]

CVSweb for NetBSD wikisrc <> software: FreeBSD-CVSweb