Google Summer of Code 2013 - Introduction
Google Summer of Code 2013 - NetBSD
What is FreeBSD?
FreeBSD is an advanced operating system for modern server, desktop, and embedded computer platforms. The FreeBSD Project began 20 years ago in 1993, but is based on the work at Berkeley CSRG with open source revision history going back 35 years to 1978. Over those thirty years the code base has gone through continuous development, improvement, and optimization. The FreeBSD Project is a large, mature, and yet relatively tightly knit organization, developed and maintained by a large team of individuals. FreeBSD provides advanced networking, impressive security features, and world class performance and is used by some of the world's busiest web sites and most pervasive embedded networking and storage devices.There are currently over 300 developers with write access to the main revision control system, and hundreds more with access to our Perforce servers for experimental and third party development (this is also where our summer of code students have worked in previous years). We have an active mentoring program to bring all new developers into our community, not just those that we introduce to FreeBSD through the GSoC. There are hundreds of mailing lists, forums, blogs, IRC channels, and user groups all detailed on our main website. FreeBSD offers a complete operating system in which students can work, not just a kernel or specific userland stack. This allows for interesting work that spans the userland/kernel boundary.In addition to producing an operating system, FreeBSD has incubated the development of key pieces of infrastructure which are used by other open source projects including bsnmp, jemalloc, libarchive, OpenBSM, and OpenPAM.
So, this year, FreeBSD got 14 accepted projects. If you wondering what were other ideas they wanted to make via GSoC, head to Ideas webpage.
Reports can be found at http://lists.freebsd.org/pipermail/soc-status/ mailing list. More details about projects at https://wiki.freebsd.org/SummerOfCode2013Projects
7. PackageKit backend for pkgng
- Student: MattWindsor (mattbw@FreeBSD.org)
- Mentor: JulienLaffaye (jlaffaye@FreeBSD.org)
Project intend to develop, test and document a packagekit backend for pkgng,
ideally with the view of being able to use an existing packagekit
frontend such as Apper to install, remove and upgrade packages on a
FreeBSD system. This will be written in C against the packagekit and
libpkg APIs and glib, and the deliverable will be a .so file that can be
used by PackageKit as a backend as well as the source code to compile it.
This would make system administration using binary packages easier in these use cases:
- Situations where multiple systems running different operating systems need to be updated by the same people; for example, University Radio York runs both Debian and FreeBSD systems which could theoretically both be served by packagekit if a pkgng backend is created.
- Users who wish to install binary packages on FreeBSD, but would prefer to use a graphical user interface;
- Users who wish to install binary packages on FreeBSD and already know packagekit from an existing supported package manager.
The code (may not be in a compileable state at any given time) is at https://svnweb.freebsd.org/socsvn/soc2013/mattbw/.
8. Port GlusterFS to FreeBSD
GlusterFS is an open source distributed file system that uses FUSE. It has been used in many different scenarios such as cloud computing. The code of Glusterfs relies a lot on Linux semantics, and now it's becoming usable on NetBSD since NetBSD 6.0. Right now, GlusterFS won't compile on FreeBSD. This project will port GlusterFS and make it fully work on FreeBSD.
You can see recent changes here
https://github.com/cosql/glusterfs.git
9.VirtualBox shared folder support for FreeBSD guests
- Student: OleksandrDudinskyi oleksandr@freebsd.org
- Mentor: BernhardFroehlich
Project will implement VFS virtual system for VirtualBox shared folder. This project consist of two parts, understand how VirtualBox work with guest systems and getting it submitted upstream from guest system. Second part is implement VFS virtual system in FreeBSD side, that would be kernel interface to file system, special file system for "shared folder" wich contain files from host system that would be mounted.
10. New capsicum features
- Student: Mariusz Zaborski (<oshogbo AT freebsd DOT org>)
- Mentor: Pawel Dawidek (<pjd AT freebsd DOT org>)
New features in Capsicum will be:
- two new capability rights (CAP_SEND_RIGHTS and CAP_RECV_RIGHTS) for control sending and receive descriptors by Unix domain sockets.
-Implement new services for Casper daemon:
- system.unix - service provides connect and listen on Unix domain socket
- system.udp - service enabling connect, listen, sending and receive UDP packages.
- close fetch(1) in capability mode.
11. USB device passthrough support on BHyVe
- Student: TakuyaAsada
- Mentor: EdwardTomaszNapierala
Current BHyVe implementation supports only few virtual devices: virtio-blk, virtio-net and UART.
It also able to using physical PCI device by PCI passthrough, but there're many PC which doesn't support IOMMU(It also called Intel VT-d or AMD-Vi, required for PCI passthrough).
This project adds support USB device passthrough on BHyVe.
USB device passthrough doesn't require IOMMU or any other special hardware features, it can support much more PCs than PCI passthrough.
USB is not faster than PCIe, but it has different varieties of devices, and much easier to install on host machine.
The project goal is to support USB 1.1/2.0 device passthrough on BHyVe.
PkgNG is the novel package management system designed for using in *BSD systems in conjunction with FreeBSD ports. Currently pkgng uses its own solver, however, it misses important features, such as alternatives logic, advanced conflict resolving and provide/require logic. Furthermore, there are numerous researches related to solver algorithms and pkgng should provide pluggable interface for such solvers and eventually select an optimal one. So the main goal of this project is to design and implement pluggable API for pkgng solver that allows to use experimental solvers with fallback to default solver if there are no external solvers.
12. PkgNG pluggable solver framework
- Student: VsevolodStakhov
- Mentor: BaptisteDaroussin
PkgNG is the novel package management system designed for using in *BSD systems in conjunction with FreeBSD ports. Currently pkgng uses its own solver, however, it misses important features, such as alternatives logic, advanced conflict resolving and provide/require logic. Furthermore, there are numerous researches related to solver algorithms and pkgng should provide pluggable interface for such solvers and eventually select an optimal one. So the main goal of this project is to design and implement pluggable API for pkgng solver that allows to use experimental solvers with fallback to default solver if there are no external solvers.
13. AHCI device model in userspace for bhyve
- Student: ZhixiangYu
- Mentor: AlexanderMotin
The Code
https://svnweb.freebsd.org/socsvn/soc2013/zcore/ 14. BHyVe suspend/resume feature
- Student: IoriYoneji
- Mentor: NeelNatu
Good luck to all students!
0 comments:
Post a Comment