GSoC/GCI Archive
Google Summer of Code 2010

OpenAFS

Web Page: http://www.openafs.org/gsoc.html

Mailing List: http://lists.openafs.org/mailman/listinfo/openafs-devel

OpenAFS is a 100% open source globally distributed file system derived from IBM AFS commercial offering as of 1 November 2000. Since IBM released the source code OpenAFS has thrived adding support for new platforms while enhancing its overall performance, scalability and usability. OpenAFS is considered by Ohloh, https://www.ohloh.net/p/openafs, to be a mature, well-established open source project (10 years old this year), with a very large and active development team (44 in the last year and 224 since its formation) with increasing year over year activity (including a substantial increase since we started using Gerrit for code review.) OpenAFS relies heavily on Kerberos for authentication. On the Windows platform, the primary user interface is built around Network Identity Manager which is a stand alone project, https://www.ohloh.net/p/netidmgr. This year OpenAFS will be acting as an umbrella organization to mentor NetIdMgr projects in addition to its own. Finally, OpenAFS will also act as an umbrella organization for a project to implement Microsoft's StrSafe C language string manipulation library to Unix/Linux. https://buildsecurityin.us-cert.gov/bsi/articles/knowledge/coding/272-BSI.html

Projects

  • An open source version of the Microsoft Safe String Library A cross platform implementation of the Safe String Library (StrSafe.h) provided by Microsoft. The library will allow multi platform software to use a single library for safe string operations. This will reduce the risk for buffer overflows and will increase code sharing between code for different platforms. A lot of focus will be put on unit testing of the library thoroughly. This will make it easier to be confident in the correctness of the library.
  • Apply the kafs project of OpenAFS Last year, I have took the project, and as a student of GSoC2009. I have finished partly a task, as Linus and some of the Linux community against implement pioctl() directly in the kernel. We used other ways to talk to the kernel after we gave up some implementation that have done. There is my project idea and time line at last. My major is distributed file system. As I have some experience of my research and this project, I think I could do it well.
  • Encrypted Storage Abstract: The AFS protocol offers encryption for data transport from client to server. However, that data is stored on the server in cleartext, where it can potentially be read by the administrators of that server. This poses a real world problem for organisations who wish to outsource the provision of their file storage, whilst keeping their data confidential. This project would augment the existing AFS client to support encrypting data blocks before sending them to the file server.
  • Port OpenAFS to NetBSD Around the same time the original Linux port of AFS was done, a port to NetBSD was also available. While NetBSD has evolved, the original AFS port did not keep pace. Since then, a port to NetBSD has been highly desired. This project will port the OpenAFS client to run on NetBSD.
  • Unix Support for AppleDouble files (Posix Attributes) AppleDouble files, commonly used to store metadata and extended attributes in filesystems without native support for them, would be supported by all POSIX-compliant OpenAFS platforms. This would provide a means to allow client-side extended attribute support to be added in a backward-compatible manner without requiring changes to the AFS file servers. It also opens the door for future protocol changes to be made, if better accommodation of metadata and extended attributes is desired.