Annotation of wikisrc/projects/project/putter_pud_puffs.mdwn, revision 1.1

1.1     ! jmmv        1: [[!template id=project
        !             2: 
        !             3: title="Userspace file system and device driver code sharing"
        !             4: 
        !             5: contact="""
        !             6: [tech-userlevel](mailto:tech-userlevel@NetBSD.org)
        !             7: """
        !             8: 
        !             9: mentors="""
        !            10: [Antti Kantee](mailto:pooka@NetBSD.org)
        !            11: """
        !            12: 
        !            13: duration="3 months"
        !            14: 
        !            15: description="""
        !            16: As is well-known, [puffs(3)](http://netbsd.gw.com/cgi-bin/man-cgi?puffs+3+NetBSD-5.1+i386) is the NetBSD userspace file system framework. It provides support for implementing file servers in userspace. A lesser known "cousin" of puffs is the Pass-to-Userspace Device, or [pud(4)](http://netbsd.gw.com/cgi-bin/man-cgi?pud+4+NetBSD-5.1+i386) framework, which provides support for implementing character and block device servers in userspace. Both use [putter(9)](http://netbsd.gw.com/cgi-bin/man-cgi?putter+9+NetBSD-5.1+i386) for transmitting requests to and from the kernel.
        !            17: 
        !            18: Currently, puffs includes a userspace support library: libpuffs. It provides two facets:
        !            19: 
        !            20: * file system routines and callback interface
        !            21: * generic parts, including kernel request handling
        !            22: 
        !            23: On the other hand, pud is without a userspace support library and servers talk with kernel directly with `read()` and `write()`.
        !            24: 
        !            25: The goal of the project is to modify libpuffs into a generic library which pud and puffs can share, and provide libpuffs and libpud built on this base. The submission should include a rough analysis of the source modules of libpuffs and what is going to happen to them during the project.
        !            26: 
        !            27: This project is fairly straightforward, but involves a reasonable amount of work. Plenty of [documentation](http://www.netbsd.org/docs/puffs/#moreinfo) exists to make the learning curve manageable. This project is an excellent opportunity to practise getting your hands dirty with real world systems.
        !            28: """
        !            29: ]]
        !            30: 
        !            31: [[!tag gsoc]]
        !            32: [[!tag easy]]
        !            33: [[!tag userland]]

CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb