NetBSD and Google's Summer of Code 2016: Projects announced
This year, NetBSD is part of Google's
Summer of Code again, and
the students that will work on NetBSD projects
and what their project proposals this year are
Have a look at the links to learn more about the
students and the projects. To all the students - welcome to
Google Summer of Code 2015 and NetBSD
Google's "Summer of Code" is a chance for students to get paid
to work on Open Source software, with the associated
Open Source projects as mentoring organization. Now,
the 2015 mentoring organizations have been announced,
and I am in a sad position to tell that NetBSD is not among the
choosen mentoring organizations this year, again. :-(
Yet, fear not! While NetBSD itself is not in the game,
there are plenty of Open Source projects that are close,
in the game and that offer projects related to them and
Here's the start of a list:
Feel free to drop me a note if you
know about more.
As always, interested students are welcome to contact
these projects early to get in touch and talk about their
Good luck! :)
Google Summer of Code 2014
Yes, 2014 - Google today
announced the 10th anniversary
of its Summer of Code. NetBSD participation is still
being sorted out, but can be expected.
the blog post
for more information.
First and foremost, use this early news to think
about possible projects, get familiar with NetBSD
(which you probably are if you read this), and
sort out your summer occupation 2014.
NetBSD's projects for Google's Summer of Code 2013 have been chosen
In this year's round of Google Summer of Code, we have again
received a number of project proposals by interested students.
After going into details and finding out what projects have a
chance to give both the NetBSD project and the student the most
benefit (besides the money), this is settled now, and I'm pleased
to announce that the following students and their projects are
our prospects for 2013:
Of course all other students who have submitted proposals can feel
free to participate in NetBSD outside of the Summer of Code.
For those participating, this is the time for
- Julian Fagir: System upgrade (system_upgrade)
- Haomai Wang: Make NetBSD a supported guest OS under VirtualBox (Virtualbox)
- Manuel Wiesinger: Defragmentation for FFS in NetBSD (defrag_ffs)
- Myron Aub: Port Linux's drm/kms/gem/i915 (DRM2)
- Przemyslaw Sierocinski: Implement file system flags to scrub data blocks before deletion (fs_scrub_flags)
NetBSD is part of Google's Summer of Code 2013
News is out that
NetBSD is part of Google's Summer of Code 2013 (GSoC)
again. GSoC is about students doing work for Open Source projects
over the summer, and getting paid while doing so. By Google.
For projects proposed by both students and the Open Source projects.
Click on the above link for more information on GSoC in general,
there is also
a list of proposed projects for this year in NetBSD.
Next steps are:
April 9 - 21: Would-be student participants discuss application ideas with mentoring organizations.
April 22, 19:00 UTC: Student application period opens.
May 3, 19:00 UTC: Student application deadline.
Interim Period: Mentoring organizations review and rank student proposals; where necessary, mentoring organizations may request further proposal detail from the student applicant.
May 6: Mentoring organizations should have requested slots via their profile in Melange by this point.
May 8: Slot allocations published to mentoring organizations
From there, students work on their projects with the help
of their mentors. There's a "midterm" report due with a first
part of the money paid, the rest is paid if the project is
During the project, students are encouraged to publish news
about their process to the world in blogs and other ways found
appropriate by their mentoring organizations.
Past NetBSD projects
can be found on
Google Summer of Code 2012 will happen - first NetBSD directions
Google announced at Fosdem that
there will be Google Sommer of Code 2012,
the 8th time in a row.
Ot can be expected that NetBSD will strive to participate
again this year, and as such, now is a good time to
Let's look forward to NetBSD and the Goole Summer of Code 2012,
and the exciting new projects to come!
NetBSD and Google Summer of Code - Send in your proposals!
Just a friendly reminder to
interested students who want to participate in this year's
Google Summer of Code: You have only three days left to send in
your proposal! Student application deadline is April 9th,
list of suggested SoC projects
if you need inspiration (other project suggestions are welcome!),
and please have a look at our
for a bunch of questions we want to have answered
so that we can properly judge your proposal.
NetBSD is part of Google's Summer of Code 2010
Google Summer of Code
mentoring organizations has been announced,
NetBSD is part of it, again!
Possible projects are listed
on the projects page,
the GSoC wiki page,
on the SoC-projects page.
Prospective students that are interested in working on a project
are recommended to have a look at
Application / Proposal HowTo!
Google Summer of Code 2010 NetBSD swcryptX Project Suggestion (Updated #2)
Please see the update below before applying for this
I've been thinking of a neat-o project for this year's
Google Summer of Code:
The goal of this project is to provide crypto acceleration
by utilizing multiple CPU cores.
The work is to extend the existing software-only "swcrypto"
crypto driver and hook that up with NetBSD's OpenCrypto
Overview of operation
The opencrypto(9) framework exists to coordinate hardware
acceleration in NetBSD. Applications of the framework can
be inside the kernel like the FAST_IPSEC IPsec implementation,
or in userland like OpenSSL with the "cryptodev" engine.
Crypto drivers can be realized in software or in hardware.
Hardware drivers can be used to instruct e.g. the AMD Geode
LX's AES block or a HIFN chip to perform cryptographic
Upon system startup, the crypto drivers at the opencrypto(9)
framework, telling what operations they can perform.
When an operation is required later, the framework
will look which crypto device is currently not busy, and
offload the operation to that device.
Upon completion, the result is fed back to the application.
The following image illustrates the components
and their interaction.
Offloading the cryptographic requests involves some overhead.
Data needs to be transferred to the hardware and back.
On systems with a slow CPU, this overhead is relatively
small compared to the operation speed of the CPU. On faster
CPUs, the overhead becomes more of a burden, making the
benefit of the crypto hardware negligible.
As examples, while a hifn(4) chip can provide worthwhile
speedups on 500MHz and 1GHz CPUs, no performance
win is experienced on a 2.4GHz CPU.
The communication overhead involves data transfers over
a PCI bus, which is of relatively low speed compared
to today's modern CPUs. Preventing the data transfer
is a worthwhile goal. In coordination with today's modern
multi-core CPUs, using one or more CPUs solely for the
purpose of crypto acceleration, a measurable
improvement of crypto performance is expected. At
the same time, no special hardware requirements beyond
the CPU exist. This allows turning standard contemporary
systems into fast crypto systems easily.
The following image illustrates the idea of
interoperation between a CPU core that runs
the kernel and application codes and three
cores that are dedicated to crypto code.
This is where it gets fishy. ;)
The existing opencrypto(4) framework probably needs to be make
MP-aware at the same time, employing proper use of NetBSD's
locking framework. (Already done)
The existing swcrypto(4) needs to be adjusted for operation on
multiple CPUs at the same time.
A way to decide how many CPUs are dedicated to run swcrypto(4)
CPUs that run swcrypto(4) need to be taken out from the
usual NetBSD CPU scheduling so that they are available exclusively
In no particular order:
- Know how to build and install a kernel
- Understanding of fine grained SMP and locking
- How to use NetBSD's kernel threads, code-wise
- How to interact with NetBSD's scheduler, code-wise
- Tell the scheduler to pin a specific kernel thread to a
- Interaction between applications (IPsec, OpenSSL) with opencrypto(9), code-wise
- Interaction of crypto providers with opencrypto(9), code-wise
- Hardware! You won't be able to do this without at least two
CPU cores in your machine. The more the better.
- Benchmarking & a test setup for it
NetBSD Project Application/Proposal HowTo
if you're serious to work on this project.
If you have any questions let me know, public discussion
should be led on the tech-crypto@ list.
In particular, my understanding of the interaction of the
various layers as outlined above is not 100% accurate,
and userland applications using opencrypto already seem
to benefit from multiple kernel threads.
In-kernel applications apparently do not, and before
providing multiple crypto-servers in kernel (as suggested),
work should probably done first to make sure such
applications exist. Examples of this are IPsec (and the whole
network stack), but also others like cgd (which AFAIU currently
does not use opencrypto(9)).
[Tags: google-soc, opencrypto, swcrypto]
More news from NetBSD land: inside and outside the kernel
My inbox is still overflowing with NetBSD related news,
so here is the next chunk for you:
I'm closing for today by pointing to three NetBSD-related events:
- People owning a Marvell PCMCIA WiFi card can how have
a look at
the malo(4) driver.
If you use this on a gumstix ARM board, have a look
as some fiddling with drvctl(8) is needed to get the
card recognized properly.
- Speaking about
KIYOHARA Takashi has declared the
porting effort as finished.
Support for the baex, connex, verdex and verdex-pro
modules is available, as is support for the support modules.
Staying in the "embedded" corner, KIYOHARA Takashi has
that Plathome's OpenBlockS600 (AMCC 405EX) can now
boot NetBSD via NFS. See the posting for dmesg output.
comes with a AMCC 405EX PowerPC CPU,
two GigE ethernet ports and a bunch of other
goodies for a price of about $600US.
- Coming from hardware to software,
was released some time ago, and of course
binary packages are available
for a number of platforms:
4.0.1/sparc and 5.0.1/sparc,
4.0.1/i386, 5.0.1/i386 and the same for 4.0.1/amd64 5.0.1/amd64.
Also, binaries of pkgsrc-2009Q3 are available
Summer of Code
was a big success for NetBSD and all of the Open Source
community, and it seems
there will be one again
Preparations are in an early stage, but there are already
a FAQ and
as well as the
Program Terms of Service.
From the NetBSD side, we're always happy for project suggestions
(please use our mailing lists for discussions),
and in NetBSD, we are currently working on out
If you plan to submit a proposal for a project
with NetBSD, please see
our project application/proposal form
If you plan to submit a proposal for a project
with NetBSD, please see
our Project Application/Proposal HowTo.
- Getting back to the NetBSD code, a number of interesting changes
were made in the previous weeks. The first to mention is that
David Young has continued is work on
the new shutdown order
for device drivers:
``cgd, dk, dm, md, raid, and vnd gracefully detach from the device
tree during shutdown. I believe that ccd is the only virtual disk that
does not detach.''
This allows having arbitrary stack of file systems, and still
have them unconfigured properly in the right order on system
- Another major change that went into NetBSD recently is that
terminfo was imported into NetBSD-current.
Terminfo replaces termcap, but provides a
backward compatible termcap interface.
This move follows
discussion from last summer,
docs by The Open Group (the people who make
things like the POSIX standard and the Single Unix Specification),
which indicates that the termcap specification will be
withdrawn in the future.
- Moving from userland inside the kernel, David Holland has
proceeded with work to
unhook LFS from UFS.
Historically, the Log structured File System was written after
the Berkeley Fast File System. With the idea of sharing
the core "Unix File System" code for both file systems,
this resulted in a strong relationship between LFS and FFS,
which was/is not always the best for the advantage and
stability of either one:
``sharing ufs between both ffs and lfs has
made all three entities (but particularly lfs) gross. ffs and lfs are
not similar enough structurally for this sharing to really be a good
- Another major addition to the NetBSD kernel was made recently
by Darren Hunt:
``Courtesy of CoyotePoint Systems, I've been working on a port of
DTrace [...] to NetBSD for i386.''
``DTrace is a comprehensive dynamic tracing framework created by Sun Microsystems for troubleshooting kernel and application problems on production systems in real time. Originally developed for Solaris, it has since been released under the free Common Development and Distribution License (CDDL) and has been ported to several other Unix-like systems.
DTrace can be used to get a global overview of a running system, such as the amount of memory, CPU time, filesystem and network resources used by the active processes. It can also provide much more fine-grained information, such as a log of the arguments with which a specific function is being called, or a list of the processes accessing a specific file. ''
The code is available in NetBSD-current. I haven't looked
into this yet, but I'm looking forward of reports and blog
the wikipedia command line examples work.
(I think like with ZFS, Dtrace could use a hand with
documenting the NetBSD side of things. Any takers?)
- The last kernel change to mention is related to security:
mapping the address 0 from userland was disabled.
late last year, and
it this is now addressed in NetBSD, too.
Those that still beed to map address 0 can do so via
the USER_VA0_DISABLED_DEFAULT kernel option
or the vm.user_va0_disable sysctl.
So much about about the NetBSD code for now. Of course having
all those fine features added screams for an immediate (*cough*)
release, which brings me to the fact that
NetBSD 5.0.2 has been released:
`` NetBSD 5.0.2 is the second critical/security update of the NetBSD 5.0 release branch. It represents a selected subset of fixes deemed critical for security or stability reasons.
Please note that all fixes in critical/security updates (i.e., NetBSD 5.0.1, 5.0.2, etc.) are cumulative, so the latest update contains all such fixes since the corresponding minor release. These fixes will also appear in future minor releases (i.e., NetBSD 5.1, 5.2, etc.), together with other less-critical fixes and feature enhancements. ''
Have fun meeting the gang!
- There's a
going this weekend (Feb 20/21 2010)
- Volunteers are wanted to setup & man a NetBSD booth at
FrOSCamp 2010 Zurich, Switzerland, on Sep 17/18 2010
- pkgsrcCon 2010 will be held in Basel, Switzerland, from
May 28ths to 30ths 2010.
[Tags: dtrace, Embedded, Events, ffs, froscamp, gimstix, google-soc, lfs, malo, marvell, openblocks, pkgsrc, pkgsrcCon, plathome, posix, powerpf, Security, shutdown, termcap, terminfo, theopengroup, ufs]
Grab the RSS-feed,
or go back to my regular NetBSD page
Disclaimer: All opinion expressed here is purely my own.
No responsibility is taken for anything.