- Replace /XML/{doc,www}/ with /XML/ in SysId.
- Remove empty stylesheets in share/xsl and point share/xml/empty.xsl via
  XML catalog instead.
- Change the L10N layer in freebsd-*.xsl not to use localized XSLT
  stylesheets directly.
- Move share/xsl/* to share/xml and remove share/xsl.
- Remove obsolete share/web2c/pdftex.def.
		
	
			
		
			
				
	
	
		
			544 lines
		
	
	
	
		
			26 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			544 lines
		
	
	
	
		
			26 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
<?xml version="1.0" encoding="iso-8859-1"?>
 | 
						|
<!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN"
 | 
						|
"http://www.FreeBSD.org/XML/share/xml/xhtml10-freebsd.dtd" [
 | 
						|
<!ENTITY title "FreeBSD Summer of Code 2007">
 | 
						|
]>
 | 
						|
 | 
						|
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
						|
<head>
 | 
						|
      <title>&title;</title>
 | 
						|
 | 
						|
      <cvs:keyword xmlns:cvs="http://www.FreeBSD.org/XML/CVS">$FreeBSD$</cvs:keyword>
 | 
						|
    </head>
 | 
						|
 | 
						|
    <body class="navinclude.developers">
 | 
						|
 | 
						|
<p>The FreeBSD Project is proud to have taken part in the Google <a
 | 
						|
  href="http://code.google.com/soc">Summer of Code
 | 
						|
  2007</a>.  We received more high quality applications this year than
 | 
						|
  ever before.  In the end it was a very tough decision to narrow it
 | 
						|
  down to the 25 students selected for funding by Google.
 | 
						|
  These student projects included security research,
 | 
						|
  improved installation tools, new utilities, and more.  Many of the
 | 
						|
  students have continued working on their FreeBSD projects even after
 | 
						|
  the official close of the program.</p>
 | 
						|
 | 
						|
<p>We are happy to report that all students made some progress towards
 | 
						|
  their goals for the summer, and the 22 students listed below
 | 
						|
  completed the program successfully.</p>
 | 
						|
 | 
						|
<p>Information about the student projects is available from our <a
 | 
						|
  href="http://wiki.freebsd.org/SummerOfCode2007">Summer of Code
 | 
						|
  wiki</a> and all of the code is checked into <a
 | 
						|
  href="http://perforce.freebsd.org/depotTreeBrowser.cgi?FSPC=//depot/projects/soc2007/">Perforce</a>.
 | 
						|
  The summaries below were submitted by the individual students and
 | 
						|
  their mentors with minor editing for consistency.</p>
 | 
						|
 | 
						|
<a name="students"></a>
 | 
						|
<h2>2007 Student Projects</h2>
 | 
						|
 | 
						|
<ul>
 | 
						|
  <li><strong>Project:</strong> GNOME front-end to freebsd-update(8)<br/>
 | 
						|
      <strong>Student:</strong> Andrew Turner<br/>
 | 
						|
      <strong>Mentor:</strong> &a.marcus;<br/>
 | 
						|
      <strong>Summary:</strong>
 | 
						|
 | 
						|
      <p>The FreeBSD update front-end is a GTK+ interface to
 | 
						|
        freebsd-update. It is split into a GUI to allow system
 | 
						|
        administrators to select the binary patches to update or
 | 
						|
        rollback and a back-end that communicates with
 | 
						|
        freebsd-update. Development of both parts has moved to Berlios
 | 
						|
        at <a href="http://developer.berlios.de/projects/facund/">http://developer.berlios.de/projects/facund/</a>.</p>
 | 
						|
 | 
						|
      <strong>Ready to enter CVS:</strong> The back-end is not yet
 | 
						|
      ready to enter CVS, but a port is being made for the front-end<br/><br/>
 | 
						|
      </li>
 | 
						|
 | 
						|
  <li><strong>Project:</strong> Multicast DNS responder (BSD-licensed)<br/>
 | 
						|
      <strong>Student:</strong> Fredrik Lindberg<br/>
 | 
						|
      <strong>Mentor:</strong> &a.bms;<br/>
 | 
						|
      <strong>Summary:</strong>
 | 
						|
 | 
						|
      <p>Multicast DNS (mDNS) is a part of Zero Configuration
 | 
						|
        Networking (Zeroconf) and provides the ability to address
 | 
						|
        hosts using DNS-like names without the need of an existing
 | 
						|
        (unicast), managed DNS server.</p>
 | 
						|
 | 
						|
      <p>The Multicast DNS responder (mdnsd), is more or less feature
 | 
						|
        complete and is currently in a bug fixing and testing phase.
 | 
						|
        A few more features are planned, most notably mdns proxy
 | 
						|
        support.  The daemon performs multicast dns queries on behalf
 | 
						|
        of clients and acts as a unified cache to all clients.
 | 
						|
        Provides the ability to announce its own mdns records onto the
 | 
						|
        network.</p>
 | 
						|
 | 
						|
      <p>The daemons abilities are exposed to clients through libmdns,
 | 
						|
        it provides an API to do mDNS queries and to add/remove/list
 | 
						|
        records and view/flush cache.  Two consumers exists, one
 | 
						|
        console based basic debugging and administrative utility
 | 
						|
        (mdns) which simply provides whatever libmdns provides and a
 | 
						|
        NSS module (nss_mdns) which integrates mDNS lookups with the
 | 
						|
        systems name lookup routines.</p>
 | 
						|
      <strong>Ready to enter CVS:</strong> after testing and reviewing<br/><br/>
 | 
						|
      </li>
 | 
						|
 | 
						|
  <li><strong>Project:</strong> Unified ports / package system database backend<br/>
 | 
						|
      <strong>Student:</strong> Garrett Cooper<br/>
 | 
						|
      <strong>Mentor:</strong> &a.krion;<br/>
 | 
						|
      <strong>Summary:</strong>
 | 
						|
      <p>This project revised FreeBSD's package tools
 | 
						|
        (/usr/src/usr.sbin/pkg_install) to use Berkeley DB files for
 | 
						|
        storing information held in /var/db/pkg/*, and use Hash table
 | 
						|
        structures.  It also aims to devise a frontend for dealing
 | 
						|
        with package and ports installation and management and insert
 | 
						|
        virtuals into ports infrastructure to support modular
 | 
						|
        components functionality, for dealing with ports installed
 | 
						|
        components vs base installed components (OpenSSL, OpenSSH,
 | 
						|
        Kerberos).</p>
 | 
						|
      <strong>Ready to enter CVS:</strong> not determined yet<br/><br/>
 | 
						|
  </li>
 | 
						|
 | 
						|
  <li><strong>Project:</strong> Super Tunnel Daemon<br/>
 | 
						|
      <strong>Student:</strong> Matus Harvan<br/>
 | 
						|
      <strong>Mentor:</strong> &a.mlaier;<br/>
 | 
						|
      <strong>Summary:</strong>
 | 
						|
      <p>The project implements the Super Tunnel Daemon, a tunneling
 | 
						|
        daemon using plugins for different encapsulations and
 | 
						|
        automagically selecting the best encapsulation in each
 | 
						|
        environment.  When the environment changes, the user should not
 | 
						|
        notice the transition to a different encapsulation except for
 | 
						|
        a small delay.  Connections established within the tunnel
 | 
						|
        shall seamlessly migrate to a different encapsulation. In this
 | 
						|
        way, mobility is supported as well, even to the extent of
 | 
						|
        changing between different physical network interfaces,
 | 
						|
        e.g. disabling the wireless interface and plugging in an
 | 
						|
        ethernet cable. New encapsulations can easily be added in the
 | 
						|
        future using the plugin interface.</p>
 | 
						|
 | 
						|
      <p>The daemon and several plugins have been written. The daemon
 | 
						|
        now has multi-user support, i.e., one server supports multiple
 | 
						|
        clients. Plugins implemented so far are UDP, TCP, ICMP,
 | 
						|
        DNS. There are also sys patches allowing it to listen on all
 | 
						|
        unused UDP and TCP ports as well as processing ICMP echo
 | 
						|
        requests in the user space.</p>
 | 
						|
 | 
						|
      <p>Missing features:</p>
 | 
						|
      <ul>
 | 
						|
        <li>more plugins (HTTP, SSH,...)</li>
 | 
						|
        <li>config file format and parsing</li>
 | 
						|
        <li>and some more...</li>
 | 
						|
      </ul>
 | 
						|
 | 
						|
      <p>More details are available at
 | 
						|
      <a href="http://wiki.freebsd.org/mtund">http://wiki.freebsd.org/mtund</a></p>
 | 
						|
      <strong>Ready to enter CVS:</strong> after some additional features
 | 
						|
        as part of the Ports Collection<br/><br/>
 | 
						|
  </li>
 | 
						|
 | 
						|
  <li><strong>Project:</strong> Rewriting lockmgr(9)<br/>
 | 
						|
      <strong>Student:</strong> Attilio Rao<br/>
 | 
						|
      <strong>Mentor:</strong> &a.jeff;<br/>
 | 
						|
      <strong>Summary:</strong>
 | 
						|
      <p>This project involved rewriting the lockmgr synchronization
 | 
						|
        primitive since recent efforts (in particular sun4v porting)
 | 
						|
        evicted that this is a strong bottleneck for fs workloads (due
 | 
						|
        to its spreadness in VFS land). One of the main goals of the
 | 
						|
        rewriting was offering a more customized interface, trimming all
 | 
						|
        unused (and possibly bugged) features of lockmgr and offering
 | 
						|
        a more intelligent interface (that would help a lot in
 | 
						|
        debugging and lock assertions).</p>
 | 
						|
      <strong>Ready to enter CVS:</strong> not determined yet<br/><br/>
 | 
						|
  </li>
 | 
						|
 | 
						|
  <li><strong>Project:</strong> Apple's MacBook on FreeBSD<br/>
 | 
						|
      <strong>Student:</strong> Rui Paulo<br/>
 | 
						|
      <strong>Mentor:</strong> &a.andre;<br/>
 | 
						|
      <strong>Summary:</strong>
 | 
						|
      <p>Apple's MacBook computers are nicely designed and have neat
 | 
						|
        features that other laptops don't. While Mac OS X is a nice
 | 
						|
        operating system, UNIX folks (like me) would prefer to run
 | 
						|
        other operating systems like FreeBSD. This project
 | 
						|
        brings bug fixes and new drivers to FreeBSD that help
 | 
						|
        running this OS on this platform.</p>
 | 
						|
      <strong>Ready to enter CVS:</strong> some parts committed already<br/><br/>
 | 
						|
  </li>
 | 
						|
 | 
						|
  <li><strong>Project:</strong> Security regression tests<br/>
 | 
						|
      <strong>Student:</strong> Zhouyi ZHOU<br/>
 | 
						|
      <strong>Mentor:</strong> &a.rwatson;<br/>
 | 
						|
      <strong>Summary:</strong>
 | 
						|
 | 
						|
      <p>This project involved testing the correctness of FreeBSD
 | 
						|
        Mandatory Access Control Framework including correctly passing
 | 
						|
        the security label from userland to kernel and
 | 
						|
        non-bypassibility of Mandatory Access Control Hooks.
 | 
						|
	Specific contributions include:</p>
 | 
						|
 | 
						|
      <ol>
 | 
						|
        <li>A pair of pseudo ethernet drivers used for
 | 
						|
          testing network related hooks. To avoid the packet go
 | 
						|
          through the lo interface, the IP address in the packet is
 | 
						|
          twisted in the driver.</li>
 | 
						|
 | 
						|
        <li>A framework for logging Mandatory Access Control
 | 
						|
 hooks which is called during a period of time.
 | 
						|
          <ul>
 | 
						|
 | 
						|
            <li>In kernel, every non-null label is got externalized
 | 
						|
              into human readable string and recorded in a tail queue
 | 
						|
              together with the name of hook that got called and
 | 
						|
              possible flags or modes (etc. VREAD/VWRITE for
 | 
						|
              mac_check_vnode_open hook). There is a thread much like
 | 
						|
              audit subsystem's audit_worker logging the queue into a
 | 
						|
              userspace file. The userland program use open, ioctl and
 | 
						|
              close the /dev/mactest node to trigger and stop the
 | 
						|
              logging. The logging file is truncated to zero every
 | 
						|
              time the logging mechanism is triggered.</li>
 | 
						|
 | 
						|
	    <li>In userland, a bison based parsing tool is used to
 | 
						|
              parse the logged file and reconstruct the record chain
 | 
						|
              which will be compared with testsuite supplied
 | 
						|
              configuration file to examine if expected hooks is got
 | 
						|
              called and the label/flags/modes are correct. The
 | 
						|
              testsuite mainly follows src/tools/regression/fstest,
 | 
						|
              modified to adapt to test Mandatory Access Control
 | 
						|
              Framework and include tests for signals</li>
 | 
						|
          </ul>
 | 
						|
        </li>
 | 
						|
 | 
						|
        <li>The test cases about mandatory access control hooks for
 | 
						|
          fifo, link, mdconfig, netinet, open, pipe, rename, rmdir,
 | 
						|
          signal, symlink, sysvshm and truncate are written. Two
 | 
						|
          security vulnerabilities where found during the test case
 | 
						|
          writing.</li>
 | 
						|
      </ol>
 | 
						|
      <strong>Ready to enter CVS:</strong> not determined yet<br/><br/>
 | 
						|
  </li>
 | 
						|
 | 
						|
  <li><strong>Project:</strong> GVinum Enhancements<br/>
 | 
						|
      <strong>Student:</strong> Ulf Lilleengen<br/>
 | 
						|
      <strong>Mentor:</strong> &a.le;<br/>
 | 
						|
      <strong>Summary:</strong>
 | 
						|
 | 
						|
      <p>The project schedule was a bit changed in the start, because
 | 
						|
        there were some rewriting of some internal parts of
 | 
						|
        gvinum. Much of the time went to adapt the rest of gvinum to
 | 
						|
        this new event-based system. This rewrite made gvinum less
 | 
						|
        vulnerable to race bugs, and made it much easier for a
 | 
						|
        developer to reason about the code.</p>
 | 
						|
 | 
						|
      <p>Improvements were made to the rebuild and syncing process of
 | 
						|
        volumes, so that one could still use the volume (e.g. have it
 | 
						|
        mounted) while rebuilding or syncing gvinum plexes.</p>
 | 
						|
 | 
						|
      <p>The growing of striped volumes (includes RAID-5) in the
 | 
						|
        background was also implemented.  Perhaps most important, is
 | 
						|
        that most important gvinum features were implemented, and many
 | 
						|
        bugs were fixed. A lot of testing has been done to make gvinum
 | 
						|
        more robust.</p>
 | 
						|
 | 
						|
      <strong>Ready to enter CVS:</strong> yes<br/><br/>
 | 
						|
  </li>
 | 
						|
 | 
						|
<!--
 | 
						|
  <li><strong>Project:</strong> Parallelization of the Ports Collection<br/>
 | 
						|
      <strong>Student:</strong> Wade Wesolowsky<br/>
 | 
						|
      <strong>Mentor:</strong> &a.pav;<br/>
 | 
						|
      <strong>Summary:</strong> <p>      </p></li>
 | 
						|
-->
 | 
						|
 | 
						|
  <li><strong>Project:</strong> TCP/IP regression test suite<br/>
 | 
						|
      <strong>Student:</strong> Nanjun Li<br/>
 | 
						|
      <strong>Mentor:</strong> &a.gnn;<br/>
 | 
						|
      <strong>Summary:</strong>
 | 
						|
      <p>The project was about a testing suite for any host's
 | 
						|
        perform-ability in TCP/IP networks. N. Li implemented it on a
 | 
						|
        FreeBSD machine using libpcap (a library of BSD Packet Filter)
 | 
						|
        to sniff frames on MAC layer, decode them into human-readable
 | 
						|
        format, and send crafted ones to examinate if the target host
 | 
						|
        follows RFC793's requirements.</p>
 | 
						|
      <strong>Ready to enter CVS:</strong> no<br/><br/>
 | 
						|
  </li>
 | 
						|
 | 
						|
  <li><strong>Project:</strong> Avoiding syscall overhead<br/>
 | 
						|
      <strong>Student:</strong> Jesper Brix Rosenkilde<br/>
 | 
						|
      <strong>Mentor:</strong> &a.scottl;<br/>
 | 
						|
      <strong>Summary:</strong>
 | 
						|
      <p>In FreeBSD the setproctitle call is implemented with a
 | 
						|
        sysctl, this has the unfortunate side effect that this simple
 | 
						|
        call locks the Giant-lock. As this call is a simple matter of
 | 
						|
        setting a value, it could be better implemented with shared
 | 
						|
        memory between the kernel and user-space.</p>
 | 
						|
 | 
						|
      <p>This project proposes a scheme to securely share process
 | 
						|
        specific data between the kernel and a user-space
 | 
						|
        process. This is done by having each process allocate a
 | 
						|
        special memory page, in which the kernel and user-space
 | 
						|
        process can share data. This will give the security needed, as
 | 
						|
        the VM-system will make sure that no outside processes can
 | 
						|
        fiddle with a process' data. As everything is going on in
 | 
						|
        user-space, there is no concern about a rogue process could
 | 
						|
        write inside the kernel memory. There is still a locking
 | 
						|
        concern, which will be addressed either by locking the entire
 | 
						|
        page, or micro-locking each data field on the page.</p>
 | 
						|
 | 
						|
<!--      <p><strong>XXX: if this is tested/implemented, we need to say it, if it is
 | 
						|
        not implemented/tested, we can remove this
 | 
						|
        paragraph. XXX</strong> -->
 | 
						|
 | 
						|
      <p>A suggestion by Howard Su is a multi page scheme, where a
 | 
						|
        read/write page is used for things like get/setproctitle and a
 | 
						|
        read-only page for things like getpid. And maybe a system wide
 | 
						|
        read-only page for things like getdomain, gethostname
 | 
						|
        etc.</p>
 | 
						|
      <strong>Ready to enter CVS:</strong> not determined yet<br/><br/>
 | 
						|
  </li>
 | 
						|
<!--
 | 
						|
  <li><strong>Project:</strong> msdosfs Infrastructure<br/>
 | 
						|
      <strong>Student:</strong> Brian Chu<br/>
 | 
						|
      <strong>Mentor:</strong> &a.kib;<br/>
 | 
						|
      <strong>Summary:</strong> <p>      </p></li>
 | 
						|
-->
 | 
						|
 | 
						|
  <li><strong>Project:</strong> Port OpenBSD's sysctl Hardware Sensors framework<br/>
 | 
						|
      <strong>Student:</strong> Constantine A. Murenin<br/>
 | 
						|
      <strong>Mentor:</strong> &a.syrinx;<br/>
 | 
						|
      <strong>Summary:</strong>
 | 
						|
 | 
						|
      <p>The GSoC2007/cnst-sensors project was about porting the
 | 
						|
        sysctl hw.sensors framework from OpenBSD to FreeBSD.  The
 | 
						|
        project was successfully completed, and is pending final
 | 
						|
        <a href="http://lists.freebsd.org/pipermail/freebsd-hackers/2007-September/021722.html">review
 | 
						|
        and integration</a> into the CVS tree.</p>
 | 
						|
 | 
						|
      <p>The sensors framework provides a unified interface for
 | 
						|
        storing, registering and accessing information about hardware
 | 
						|
        monitoring sensors.  Sensor types include, but are not limited
 | 
						|
        to, temperature, voltage, fan RPM, time offset and logical
 | 
						|
        drive status.  In the OpenBSD base system, the framework spans
 | 
						|
        sensor_attach(9), sysctl(3), sysctl(8), systat(1),
 | 
						|
        sensorsd(8), ntpd(8), and more than 50 drivers, ranging from
 | 
						|
        I2C temperature sensors and Super I/O hardware monitors to
 | 
						|
        ipmi(4) and RAID controllers.  Several third-party tools are
 | 
						|
        also available, for example, a plug-in for Nagios and
 | 
						|
        ports/sysutils/symon.</p>
 | 
						|
 | 
						|
      <p>As a part of this project, all major parts of the framework
 | 
						|
        were ported, including sysctl, systat and sensorsd.  Some
 | 
						|
        drivers for most popular Super I/O Hardware Monitors were
 | 
						|
        ported, too: it(4), supporting most contemporary ITE Tech
 | 
						|
        Super I/O, and lm(4), supporting most contemporary Winbond
 | 
						|
        Super I/O.  Moreover, some existing FreeBSD drivers were
 | 
						|
        modified to use the new framework, for example,
 | 
						|
        coretemp(4).</p>
 | 
						|
 | 
						|
      <strong>Ready to enter CVS:</strong> after more testing and review<br/><br/>
 | 
						|
  </li>
 | 
						|
 | 
						|
  <li><strong>Project:</strong> Distributed audit daemon<br/>
 | 
						|
      <strong>Student:</strong> Alexey Mikhailov<br/>
 | 
						|
      <strong>Mentor:</strong> &a.bz;<br/>
 | 
						|
      <strong>Summary:</strong>
 | 
						|
      <p>The basic idea of this project was to implement secure and
 | 
						|
        reliable log file shipping to remote hosts. While the
 | 
						|
        implementation focuses on audit logs, the goal was to build
 | 
						|
        tools that will make it possible to perform distributed
 | 
						|
        logging for any application by using a simple API and linking
 | 
						|
        with a shared library. The audit logs served as a testbed,
 | 
						|
        other logs can be adopted.</p>
 | 
						|
      <strong>Ready to enter CVS:</strong> not yet, needs further work<br/><br/>
 | 
						|
  </li>
 | 
						|
 | 
						|
  <li><strong>Project:</strong> Generic input device layer<br/>
 | 
						|
      <strong>Student:</strong> Maxim Zhuravlev<br/>
 | 
						|
      <strong>Mentor:</strong> &a.philip;<br/>
 | 
						|
      <strong>Summary:</strong>
 | 
						|
      <p>Originally selected to design and implement a common way to
 | 
						|
        retrieve and process data from input devices, the project
 | 
						|
        resulted in a code base of a bigger and more generic project --
 | 
						|
        <b>Enhanced NewBus</b>. The following features are introduced by
 | 
						|
        now: basic functional devices support, filter drivers and
 | 
						|
        NewBus input/output subsystem. Functional devices
 | 
						|
        (ex. demuxing, muxing, terminals) are supposed to coordinate
 | 
						|
        real devices. Each device is handled by a stack of drivers
 | 
						|
        (low-level and filters). Filter drivers are to simplify code
 | 
						|
        reuse. The NewBus input/output subsystem is designed to push
 | 
						|
        io requests through the NewBus graph.</p>
 | 
						|
      <strong>Ready to enter CVS:</strong> not determined yet<br/><br/>
 | 
						|
  </li>
 | 
						|
 | 
						|
  <li><strong>Project:</strong> bus_alloc_resources() Code Update<br/>
 | 
						|
      <strong>Student:</strong> Christopher Davis<br/>
 | 
						|
      <strong>Mentor:</strong> &a.imp;<br/>
 | 
						|
      <strong>Summary:</strong>
 | 
						|
      <p>Currently, many devices in FreeBSD's source tree use the
 | 
						|
        excessively verbose methods of resource allocation and
 | 
						|
        deallocation. Numerous calls to bus_alloc_resource() or
 | 
						|
        bus_alloc_resource_any() are used to allocate resources, and
 | 
						|
        subsequently, multiple calls to bus_release_resource() are
 | 
						|
        used to free the resources after an error in allocation or
 | 
						|
        when the device is detached.</p>
 | 
						|
 | 
						|
      <p>Recently, however, the bus_alloc_resources() and
 | 
						|
        bus_release_resources() functions have been added. These
 | 
						|
        simple wrappers around bus_alloc_resource_any() and
 | 
						|
        bus_release_resource() both operate on the same resource
 | 
						|
        description, so that much of the repetition once needed to
 | 
						|
        allocate and free resources can be mitigated.</p>
 | 
						|
 | 
						|
      <p>This project updated driver source code where necessary using
 | 
						|
        the new functions to make the code related to allocation and
 | 
						|
        deallocation simpler and clearer, while making other
 | 
						|
        refinements as needed.  Approximately 40 drivers were updated
 | 
						|
        during SoC, although testing is still needed. There are likely
 | 
						|
        25 or more other drivers that could be updated as well, and
 | 
						|
        these are listed on the wiki.</p>
 | 
						|
      <strong>Ready to enter CVS:</strong> not determined yet<br/><br/>
 | 
						|
  </li>
 | 
						|
 | 
						|
  <li><strong>Project:</strong> BSD bintools project (Part I)<br/>
 | 
						|
      <strong>Student:</strong> Kai Wang<br/>
 | 
						|
      <strong>Mentor:</strong> &a.jkoshy;<br/>
 | 
						|
      <strong>Summary:</strong>
 | 
						|
      <p>This project re-implemented part of the GNU binutils
 | 
						|
        based on the libelf and libarchive libraries. It will bring
 | 
						|
        FreeBSD a BSD Licensed toolchain for processing ELF binary
 | 
						|
        files. The project mainly concentrated on
 | 
						|
        re-implementing the tools ar(1), ranlib(1), objcopy(1),
 | 
						|
        strip(1) and composing corresponding manual pages.</p>
 | 
						|
      <strong>Ready to enter CVS:</strong> soon<br/><br/>
 | 
						|
  </li>
 | 
						|
 | 
						|
  <li><strong>Project:</strong> Update of Linuxulator for Linux 2.6<br/>
 | 
						|
      <strong>Student:</strong> Roman Divacky<br/>
 | 
						|
      <strong>Mentor:</strong> &a.kib;<br/>
 | 
						|
      <strong>Summary:</strong>
 | 
						|
      <p>This is a continuation of the same project of the last GSoC. While
 | 
						|
        the last year the focus was to bring basic 2.6 compatibility to
 | 
						|
        FreeBSD, this year was focused on bug fixing and implementing epoll()
 | 
						|
        and *at().</p>
 | 
						|
      <strong>Ready to enter CVS:</strong> after a final review<br/><br/>
 | 
						|
  </li>
 | 
						|
 | 
						|
  <li><strong>Project:</strong> FreeBSD 'safety net' IO logging utility<br/>
 | 
						|
      <strong>Student:</strong> Sonja Milicic<br/>
 | 
						|
      <strong>Mentor:</strong> &a.le;<br/>
 | 
						|
      <strong>Summary:</strong>
 | 
						|
 | 
						|
      <p>Some administrative operations like filesystem or partition
 | 
						|
        table debugging/repair would benefit from an "Undo" function,
 | 
						|
        so they can be performed without putting vital data at risk.
 | 
						|
        This project's goal was to implement a module which plugs into
 | 
						|
        the GEOM framework and allows copy-on-write style logging of
 | 
						|
        I/O requests to one or more snapshot files, including the
 | 
						|
        possibility to rollback, replay or analyze their
 | 
						|
        effects.</p>
 | 
						|
 | 
						|
      <p>The core functionality of this module and a userland tool was
 | 
						|
        finished, but will need more testing/bug fixing.</p>
 | 
						|
 | 
						|
      <strong>Ready to enter CVS:</strong> not determined yet<br/><br/>
 | 
						|
  </li>
 | 
						|
 | 
						|
  <li><strong>Project:</strong> Provide an audit log analysis tool<br/>
 | 
						|
      <strong>Student:</strong> Liu Dongmei<br/>
 | 
						|
      <strong>Mentor:</strong> &a.rwatson;<br/>
 | 
						|
      <strong>Summary:</strong>
 | 
						|
      <p>A GUI audit log analysis tool which can display audit log in tree view
 | 
						|
      and list view and analyze audit log lively. It is important to
 | 
						|
      provide a intuitionistic and visualize audit log to
 | 
						|
      administrator. This program's intention is to provide a totally
 | 
						|
      GUI audit log display, filter and statistic, in addition provide
 | 
						|
      expandability when a new type of token added. The Glib library
 | 
						|
      is used as a basic platform abstraction library and GTK are used
 | 
						|
      to build AuditAnalyzer's GUI.</p>
 | 
						|
 | 
						|
      <strong>Ready to enter CVS:</strong> not determined yet<br/><br/>
 | 
						|
  </li>
 | 
						|
 | 
						|
  <li><strong>Project:</strong> Improve the FreeBSD Ports Collection Infrastructure<br/>
 | 
						|
      <strong>Student:</strong> &a.gabor;<br/>
 | 
						|
      <strong>Mentor:</strong> &a.sat;<br/>
 | 
						|
      <strong>Summary:</strong>
 | 
						|
      <p>This project reimplemented the DESTDIR support from the last GSoC
 | 
						|
        by the same student in a technically better way. Additionally, the PERL
 | 
						|
        support was refactored from bsd.port.mk into its own file and
 | 
						|
        enhanced to provide more features.</p>
 | 
						|
      <strong>Ready to enter CVS:</strong> already committed<br/><br/>
 | 
						|
  </li>
 | 
						|
 | 
						|
<!--
 | 
						|
  <li><strong>Project:</strong> PMC GUI<br/>
 | 
						|
      <strong>Student:</strong> Mathieu Prevot<br/>
 | 
						|
      <strong>Mentor:</strong> Joseph Koshy<br/>
 | 
						|
      <strong>Summary:</strong> <p>      </p></li>
 | 
						|
-->
 | 
						|
 | 
						|
  <li><strong>Project:</strong> http support for PXE<br/>
 | 
						|
      <strong>Student:</strong> Alexey Tarasov<br/>
 | 
						|
      <strong>Mentor:</strong> Ed Maste<br/>
 | 
						|
      <strong>Summary:</strong>
 | 
						|
      <p>The goal of this project was to write extendable code wrappers
 | 
						|
        (as much as possible in C) to provided by PXE and UNDI
 | 
						|
        APIs to support downloading of files via TCP-based protocols
 | 
						|
        in the preboot environment. This allows to
 | 
						|
        download and prepare the booting of a FreeBSD kernel from a remote
 | 
						|
        server via a direct connection or a http proxy.</p>
 | 
						|
      <strong>Ready to enter CVS:</strong> not determined yet<br/><br/>
 | 
						|
  </li>
 | 
						|
 | 
						|
  <li><strong>Project:</strong> Graphical installer for FreeBSD (finstall)<br/>
 | 
						|
      <strong>Student:</strong> Ivan Voras<br/>
 | 
						|
      <strong>Mentor:</strong> Murray Stokely<br/>
 | 
						|
      <strong>Summary:</strong>
 | 
						|
      <p>This project aims to create a user-friendly graphical
 | 
						|
        installer for FreeBSD & FreeBSD-derived systems. The project
 | 
						|
        should yield something usable for 7.x-RELEASE, but the
 | 
						|
        intention is to keep it as a "second" installer system during
 | 
						|
        7.x, alongside sysinstall. In any case, sysinstall will be
 | 
						|
        kept for architectures not supported by finstall (e.g. currently
 | 
						|
        all except i386 and amd64).</p>
 | 
						|
      <strong>Ready to enter CVS:</strong> ready to enter the Ports Collection
 | 
						|
        after some src patches<br/><br/>
 | 
						|
  </li>
 | 
						|
 | 
						|
  <li><strong>Project:</strong> Porting Linux KVM to FreeBSD<br/>
 | 
						|
      <strong>Student:</strong> Fabio Checconi<br/>
 | 
						|
      <strong>Mentor:</strong> Luigi Rizzo<br/>
 | 
						|
      <strong>Summary:</strong>
 | 
						|
      <p>Linux KVM is a Virtual Machine Monitor, part of the Linux
 | 
						|
        kernel, that uses Intel VT-x or AMD-V extensions for x86
 | 
						|
        processors to create a full virtualization environment.  This
 | 
						|
        project consists in porting Linux KVM to the FreeBSD
 | 
						|
        kernel.</p>
 | 
						|
 | 
						|
      <p>Since Linux KVM has a structure similar to that of a device
 | 
						|
        driver (actually, it is a device driver, from many points of
 | 
						|
        view) core kernel changes are not required to support it, so
 | 
						|
        it is an external loadable kernel module, exporting an
 | 
						|
        interface based on ioctl() calls to a device descriptor.  Part
 | 
						|
        of the project was also the porting of the userspace client for
 | 
						|
        that interface, a modified qemu that uses KVM to execute its
 | 
						|
        guests.</p>
 | 
						|
 | 
						|
      <p>A project snapshot at the end of the Summer of Code is
 | 
						|
        available.  It supports only AMD-V (SVM) on amd64, as this was
 | 
						|
        the hardware used during the development (adding support for
 | 
						|
        other platforms is in progress); it is still highly
 | 
						|
        experimental code, but it can boot FreeBSD guests.</p>
 | 
						|
 | 
						|
      <p>For code, further details, and future developments, please refer to:
 | 
						|
	<a href="http://feanor.sssup.it/~fabio/soc07/">http://feanor.sssup.it/~fabio/soc07/</a></p>
 | 
						|
      <strong>Ready to enter CVS:</strong> no<br/><br/>
 | 
						|
  </li>
 | 
						|
</ul>
 | 
						|
 | 
						|
<a name="press"></a>
 | 
						|
<h2>FreeBSD Summer of Code Links</h2>
 | 
						|
 | 
						|
<ul>
 | 
						|
  <li><a href="http://wiki.freebsd.org/moin.cgi/SummerOfCode2007">FreeBSD Summer of Code 2007 Wiki</a> - with links to student project pages.</li>
 | 
						|
</ul>
 | 
						|
 | 
						|
</body>
 | 
						|
</html>
 |