GSoC/GCI Archive
Google Summer of Code 2013

The Linux Foundation

Web Page:

Mailing List:

The Linux Foundation is a nonprofit consortium dedicated to fostering the growth of Linux. Founded in 2007 as a merger of the former Free Standards Group (FSG) and the former Open Source Developer Lab (OSDL), the LF sponsors the work of Linux creator Linus Torvalds and is supported by leading Linux and open source companies and developers from around the world. The Linux Foundation promotes, protects and standardizes Linux by providing unified resources and services needed for open source to successfully compete with closed platforms. More: All software produced by us is free software published under OSI-approved licenses. See project ideas page for the license used by each project.


  • A partial rebuild feature for Btrfs filesystem This project aims to add a partial rebuild feature to Btrfs, which, among other things, would allow rebuilding a drive that suffered a transient outage in time proportional only to the amount of changes committed during the outage.
  • Automatic Construction of Kernel Core Model Linux Driver Verification (LDV) program is devoted to developing an integrated framework for device drivers verification and adopting leading edge research results to enhance quality of verification tools. Currently LDV tools are used to check Linux device drivers against several safety rules, each of them formally defines what is correct usage of a particular part of kernel core API. This project is intended to develop tools that can construct the kernel core model in the automatic way, which will allow to improve the drivers analysis quality for devices and also will give an opportunity to formalize a number of additional safety rules.
  • Color Management Printing Extension for CUPS This project will enable a production print workflow suitable for graphics professionals, as well as providing test facilities for Gutenprint printer driver developers. It will do this by extending the CUPS web interface and modifying its handling of PPD (PostScript Printer Description) files.
  • Efficient sparse file handling in the page cache Provide filesystems with an interface to indicate sparse regions of files, avoiding the overhead of copying around known zeros and wasting memory in the page cache representing them.
  • foomatic-rip: Replace the universal print filter by an easy-to-maintain CUPS filter foomatic-rip presently supports a number of printing spooler softwares which are no longer maintained or used. Only CUPS is being used presently. The aim of this project is to scrap the useless support for the obsolete spoolers and optimise foomatic-rip for CUPS, in a simplified and most easily maintainable way.
  • Formalization of Correct Usage of Kernel Core API LDV tools are used to check Linux device drivers against several safety rules, each of which formally defines what is a correct usage of the particular part of kernel core API. Each rule also represents one or more typical misuses of the kernel core interfaces. By the moment, the framework contains about 30 formalized rules. This project is aimed at extending the number of rules supported by the framework.
  • Generation of Environment Model for Verification of Multi-module Device Drivers Linux Driver Verification project has the goal to provide high quality framework which allows using different static analysis tools to verify whether drivers satisfy correctness rules. Linux device drivers can't be analyzed separately from the kernel core due to their large interdependency between each other. But source code of the whole Linux kernel is rather complex and huge to be analyzed by existing model checking tools. Therefore drivers should be analyzed with environment models instead of the real kernel core. Currently LDV tools analyze only a chunk of code that is a separate loadable kernel module. Sometimes analysis of only one module leads to sophisticated or even incorrect environment model, because drivers can contain several modules or common routines from a driver are picked out to a library module. Thus environment model should be generated for groups of interacting modules rather than for separate modules of these groups.
  • Improve multi-version support in automatically generated LSB test suites LSB provides a lot of tests to check compatibility of distributions and applications. The aim of this project is to simplify support of several test suites by implementing multi-version support and eliminating the need to maintain several versions of test suites.
  • Improving performance of the KernelStrider tools The KernelStrider tools collect information about the memory accesses and function calls that the target kernel module makes. The information is passed to the user space for further processing. Since the amount of data generated in the kernel space is large enough, that requires more computing power to successfully transfer that data from the kernel. It is clean that we need to apply some compressing methods at the kernel side and some decompressing methods when captured data is being processed.
  • LSB projects, Extend and Update LSB Core Test Suite I am 4 year student. I have some experience in model-based testing (including design-by-contract principles) and I want to apply my knowledge in a big project.
  • OpenPrinting web site: Usability and backend enhancements After some moderation functionality was added last year, the OpenPrinting web is still in need of usability enhancements. Printer and driver submission involves long and tedious forms and the administration backend only allows simple editing operations. Also the sites could integrated better and made more portable with some backend adjustments.
  • OpenPrinting web site: web application for printer and driver administration OpenPrinting web site aims to administer and get access to a growing list of printers and their drivers, PPD (Postscript Printer Description). Now it has only a basic functionality and has to be improved in many ways: simplify submission process, enhance usability, improve notifications, automate lots of manual work, etc.
  • Penguin with Dragon Wings: Check Before Take-off Working with the LLVMLinux project to enable the use of static code analysis using LLVM/Clang’s extensible checker framework on the Linux kernel to find lingering bugs and catch potential issues during the development process making Linux kernel coding easier and less error prone.
  • Verification of Linux file systems drivers by combination of static and dynamic analysis File systems modules are one of the most widely used components of Linux. Each Linux user needs these modules to operate correctly. Errors in file system drivers can lead to serious consequences - from data distortion and loss to critical security vulnerabilities. The change log of Linux kernel shows that errors in file systems modules are still quite common. It is possible to automate file systems modules testing process by make use of special tools combining static and dynamic analysis.