DragonFly BSD / Google Code-In 2010 final report

Samuel J. Greear sjg at evilcode.net
Tue Jan 25 22:17:05 PST 2011


During the Recent Google Code-In there were a total of 2167 tasks successfully
completed by the 13-18 year old students. DragonFly's portion of these amounted
to 72 successfully completed tasks, or around 3.3% of the total. Slightly lower
than a perfect proportion considering there were 20 projects participating.
In my estimation, however, we did quite well considering that tailoring tasks
of the caliber required in order to benefit an operating system to 13-18 year
old minds is quite challenging. That said, a number of students were able to
tackle reasonably large and complex tasks that many of us (mentors) would not
have thought feasible, if even possible, at the start of the program. Overall,
I believe the outcome of the program is as good as any of us could have hoped.

As mentioned in previous status emails, the documentation tasks received a
wholly underwhelming response. When the program opened DragonFly had around
35-40 tasks, roughly half of these were documentation work, with the other half
being code-related. Now, after the close of the program, there are 72 completed
tasks, mostly code related, while 20 tasks went uncompleted or unclaimed. Nearly
all of these unclaimed tasks are of the documentation variety, and many simply
sat dormant the entire duration of the program.

Prior efforts invested in organizing and maintaining the various project pages
on the DragonFly BSD wiki proved invaluable in the specification of a number of
the tasks successfully completed during the program. I believe that more effort
spent defining worthwhile tasks and specifying them in such a way that they may
be broken down into bite-size units of work would easily pay dividends if the
project were to participate in a program of this type in the future.

Brief notes on the completed projects:

- EXAMPLES sections were written for the setitimer(2), getsockopt(2)/
  setsockopt(2), socket(2)/accept(2)/bind(2)/connect(2), sendfile(2),
  writev(2), select(2), poll(2), fork(2), send(2)/recv(2), mmap(2),
  setjmp(3)/longmp(3), dladdr(3)/dlinfo(3)/dlopen(3), directory(3)/scandir(3),
  ucontext(3)/makecontext(3)/getcontext(3)/setcontext(3),
  msgctl(3)/msgget(3)/msgrcv(3)/msgsnd(3), glob(3), popen(3)/system(3),
  exec(3) and tree(3) manpages. *
- A patch was created to make the hammer(8) iostats command display humanized
  output. *
- A devattr tool was written.
- A libfsid was written.
- A usage() function / help output was added to vkernels.
- sysctl documentation strings were created for lwkt.*, p1003_1b.*, debug.*,
  net.inet6.*, net.inet.*, vfs.*, vfs.nfs.*, vfs.hammer.*, vm.stats.* and
  kern.ipc.* sysctl's.
- The default password hashing method was changed from md5 to sha2.
- Installation and vkernel setup screencasts were created and put on YouTube,
  http://www.youtube.com/user/dragonflybsd
- FTP server documentation was ported,
  http://www.dragonflybsd.org/docs/newhandbook/FTP/
- A document detailing hammer recovery was written,
  http://www.dragonflybsd.org/docs/docs/howtos/howtorecoverdataonhammerfs/
- 20+ pkgsrc packages were fixed and patches submitted to pkgsrc or upstream.
- Patches were submitted to convert various subsystems from zalloc to objcache,
  including: nfsnode, nfsmount, kqueue, dirhash, aio and crypto. *
- Most kernel usage of m_get() was converted to m_getb(). *

Those items with a * appended are not yet committed or only partly committed,
most/all of the results of these tasks are committable and will hit the tree,
but if you want to adopt something and get it in sooner than later feel free
to let myself, alexh or another mentor know and we can fish out the patch for
you.

A big thanks to Google for the opportunity and the mentors and students for
their time and effort.

Sam





More information about the Users mailing list