- 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>
 |