Google Summer of Code 2013 - NetBSD

Last post we talked about how Google Summer of Code works in general. This post, we will talk about GSoC and some accepted projects. In fact, there will be few posts, each about different Organization.

The NetBSD Foundation, Inc.
 What is The NetBSD Foundation?

The NetBSD Foundation serves as the legal entity which owns several of the NetBSD Project servers, handles donations of money, services, hardware or time to the project, and administers NetBSD copyrights.

The NetBSD Foundation is incorporated in the State of Delaware, and is governed by a set of bylaws.

The NetBSD Foundation is a non-profit organisation as per section 501(c)(3) of the Internal Revenue Code.

The NetBSD Foundation has a Board of Directors, who may be contacted at . The Board members were elected by the NetBSD Developer community, following the Board election procedure.
 What is NetBSD?
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.

So, this year, NetBSD got 5 accepted projects. If you wondering what were other ideas they wanted to make via GSoC, head to Ideas webpage

1. System upgrade

Student: gnrp
Mentor: Brett Lymn, Marc Balmer
NetBSD currently has no option to upgrade the system without issuing one command. When you do an upgrade from sources, you have to rebuild everything (or only the updated part), copy the new kernel, boot into the new kernel and then do an installation from the script (i.e., ` install` or `make installworld`). The part with the kernel can be skipped when you are only doing userland upgrades. When upgrading to a new (even minor) release, you should run etcupdate(8). While this process is rather simple due to and make wrappers around everything, the process with binary updates is rather complicated. First, you have to dig into the details of NetBSD release engineering (e.g., when a security advisory [SA] occurs, there are only instructions how to *rebuild* NetBSD with the patch applied). Then, you have to choose a mirror, download the sets you think are appropriate for an update, unpack the kernel, boot into it, and *carefully* unpack them to your root directory (such that permissions are preserved). After that, you run etcupdate(8) again.  

This project is meant to resemble the function of freebsd-update(8), but for NetBSD, and on the basis of mtree files. This way, you will also be able to update from current to current, and from any release to any other one.

2. Make NetBSD a supported guest OS under VirtualBox 

Student: Haomai Wang
Mentor: Valeriy Ushakov, Martin Husemann, Marc Balmer
The project "Make NetBSD a supported guest OS under VirtualBox" is aimed to make VirtualBox supporting NetBSD. We should implement necessary features for NetBSD under VirtualBox. Such as mouse and graphics support, better integration with host OS etc. This project can help more people use NetBSD under VirtualBox comfortably. This may attract more newer to NetBSD with little time under VirtualBox. The most important thing to do is completing the Guest additions under VirtualBox. Guest additions consist of device drivers and system applications that optimize the guest operating system for better performance and usability. During my usage experience, Guest additions is the main differences between different virtualization software such as VMware, VirtualBox, Parallels etc.

This project is relevant to NetBSD and VirtualBox, the codes will be pushed to pkgsrc.

3. Defragmentation for FFS in NetBSD 

Student: Manuel Wiesinger
Mentor: Phil Nelson, der Mouse, Thomas Klausner
The goal is to implement a userspace tool, that can do offline defragmentation of a (FFS aka. UFS2) filesystem. Keep the code as portable as possible, so other BSD projects can make use of it.

I stick strictly to the KNF.
Of course, there will be a manpage and meaningful code documentation.
After having talked to one of my mentors, I will use git as VCS.
As time permits I may continue to work on this project, so that it can do online defragmentation.  But this is not part of this year's Google Summer of Code.

4. Port Linux's drm/kms/gem/i915 

Student: Myron Aub
Mentors: Martin Husemann, Christos Zoulas
Finish the partial port of Linux's drm/kms/gem/i915 drivers that began this year.

5. Implement file system flags to scrub data blocks before deletion

Student: Przemyslaw Sierocinski
Mentor: Alistair Crooks, Phil Nelson

The goal of this project is to implement file system flags marking that data blocks are to be scrubbed before deletion. This security mechanism could prevent sensitive information to be retrieved from data storage media after removing files from the file system.

Good luck to all students ;] 


Jan Hovancik

software developer - guitar player - poetry lover