GSoC/GCI Archive
Google Summer of Code 2012

The NetBSD Foundation

Web Page: http://wiki.netbsd.org/projects/gsoc/

Mailing List: http://www.netbsd.org/mailinglists/

NetBSD is a free, secure, and highly portable Unix-like Open Source operating system available for many platforms, from 64-bit Opteron machines and desktop systems to handheld and embedded devices. Its clean design and advanced features make it excellent in both production and research environments, and it is user-supported with complete source. Many applications are easily available through pkgsrc, the NetBSD Packages Collection.

Projects

  • HTree directory indexing for Ext3 Ext3 (and Ext4) filesystem introduces HTree directory indexing which allows to speed up operations on directories with large number of entries (thousands and more). NetBSD currently doesn't support this feature and works with Ext3 partitions just like with Ext2. The goal of the project is to implement HTree directory indexing for NetBSD.
  • NAT64/46 and NPTv6 integration with NPF Main goal of this project is to introduce NAT64/46 IPv6-IPv4 protocol translation and NPTv6 IPv6 prefix translation mechanisms into NPF filter.
  • Port ASan to NetBSD I will port ASan (a memory debugging tool for LLVM+Clang) to NetBSD so that it can be used to find memory-related bugs (use after free, buffer overflows) in the userland and kernel.
  • Socket option to timestamp UDP packets in the kernel I would like to work on adding SO_TIMESTAMPING options to the NetBSD kernel. I intend to add apropriate support for these options at all levels of the networking stack, starting from user interface and finishing with the driver implementation. The parts of the kernel that I will be modifying are the IPv4/v6 socket options, the ethernet structures and functions and perhaps, if needed, the interface (ifp) definition. Along with these I intend to add, in a modular manner, timestamping support to at least one driver in a manner that allows easy porting to other drivers.
  • Sysinst enhancements Main goal of this project is to add support for complex partitioning schemes (with GPT, LVM, RAID, CGD, VND) and some usability improvements to sysinst - NetBSD installer. The second goal is to refactore sysinst and disk utilities code to make it more flexible.
  • TLS (HTTPS) support in net/tnftp The goal of this project is adding TLS (HTTPS and FTPS) support to net/tnftp and NetBSD base ftp program. Growing number of Internet sites that use HTTPS, and software development communities around such sites (e.g. GitHub) demands, consequently, support for fetching files via HTTPS. I plan to use the SSL/TLS implementation in OpenSSL, and to introduce a build option to disable TLS support, in that case OpenSSL is not be required as a dependency.