Interview with Adam Hamsik


July 15, 2009 posted by Emile Heitor

After our first interview with NetBSD-5.0 release engineer Soren Jacobsen, it is now Adam Hamsik's turn to be interviewed by NetBSDfr.

Adam is known for his work on porting LVM tools to NetBSD, and for porting ZFS as part of this year's Google Summer of Code.

NetBSDfr:  First of all, thanks for taking the time to answer.

haad:  No problem! I think that your effort is great.

NetBSDfr: For the readers who don't know you, can you shortly introduce yourself ?


haad: My name is Adam Hamsik, I'm 24 years old. I have finished
Computer science in Slovak Technical University last month.
I'm NetBSD developer since around 2 years. My first bigger project was
NetBSD LVM implementation on which I have worked during previous
Google Summer of Code.

NetBSDfr: Why did you choose to run NetBSD ? How long have you been using it ?

haad: I've been using NetBSD for around 4 years. I started with NetBSD
 2.0. I tried several linuxes and FreeBSD but any of them truly fit my
needs. During one dinner with my old friend he suggested to me that I
should try to use NetBSD, because it is pretty good operating system. I
 tried to use it and found that it is best os for what I need. It is cleanly
designed and it is almost Unix.

NetBSDfr: Do you have an idea of the time you spend working on the NetBSD project 
daily, weekly, monthly ?

haad: These days during GSOC 2009, I'm working on ZFS port project
for 4-8 hours per day, sometimes even more. As any other volunteer
developer I'm often interrupted with real world thinks, but I'm trying to
do as much as I can during this Summer.

NetBSDfr: Your work for the project is mainly in
maintaining your former GSoC work, or are you involved on other parts
of the code ?

haad: I did several smaller patches to base system, proplib, but main
part of my work is my former  and current GSOC work.
Last year I did LVM port for NetBSD and get linux LVM tools working with
our device-mapper driver.  For those readers who do not know what is
LVM, LVM is Logical Volume Manager which allows to manage disk
space in a pretty simple way.
This year Summer of Code I'm working on NetBSD ZFS port and I have
to say that with great help of Andrew Doran we already did pretty good
job. Yesterday - Note: the 20th of June, 2009 - I was able to mount (only
mount call is supported;) ZFS dataset, create/manage zpools and zvols.

NetBSDfr: How did you become a NetBSD developer ? following GSoC I assume ? 

haad: I became a developer after some time where I tried to find some 
project for me. I was asked by Bill Stouder-Studenmund if I want to 
become a developer. Later I started my work on LVM port which later 
became my GSOC project for 2008.

 You started LVM port before GSoC 2008 ?

haad: I had some big part of device-mapper driver written before GSOC 
started.

NetBSDfr: How long did it take to port LVM to NetBSD, overall ? 

haad: It is still not finished but around 1.5 year.

NetBSDfr: I'm wondering how you learn about NetBSD 
internals ? On your own ? At school ?

haad: I have to say that I'm still NetBSD internals newbie :) I know parts
 of kernel on which I was working e.g. device-drivers, device-mapper. 
During my work I met  several great developers with enough patience 
to guide me through kernel internals and help me with my problems. I 
learnt the rest on my own :). I have to say that  there are still places in 
kernel about which I do not know anything e.g. low level stuff, real 
device-drivers, acpi, uvm etc.. but I already learnt pretty much about 
locking, vfs and filesystems.

NetBSDfr: Can you give more details about the Google 
Summer of Code ? How are students nominated ? What are the success 
criteria, if any ? Do all students get committer access ?


haad: GSOC is program managed by Google where Google pays 
students to work on Open Source projects like NetBSD. Anyone who is a 
student can write application and submit it during application submit 
timeline. Applications are later reviewed by NetBSD mentors (people 
who guide students through whole GSoC on project side) and defined 
number of project applications are chosen by some criteria.
Not every student get commit access but many of our successful 
students over past few year got them. GSoC is better described at 
http://code.google.com/soc/

NetBSDfr: What are the evaluation criterion ? Usability?
 Portability of the code ?

haad: Every student should define their GSoC application must have, 
nice to have things. Students are evaluated by their mentors.
You need  to show your mentor that you are working on your project 
and get at least something done. If you find during Summer that your 
deliverables are to huge, you can scale them down, but you must work 
on it :) There are no exact criteria for project evaluation.

NetBSDfr: How are you working with ad@, your mentor
 on the ZFS port project? Is he reviewing your code regurlarly ? Are you 
requesting the reviews ?

haad: We have meetings once a week on Skype/VOIP where we discuss 
any big issues. During the week I can regularly talk with him on irc. 
When I do some bigger change, I ask Andrew for a review.

NetBSDfr: I was about to ask for a status on ZFS. You 
gave part of the answer earlier in this interview. Do you think you'll 
reach the goals you've set for ZFS in NetBSD by the end of this year's 
GSoC ?

haad: I have to say that I'm not sure :) still. ZFS is huge it will take 
much more than GSoC to get it working but I think that we can get basic 
part of ZFS working at the end of GSoC. I will do my best to reach our 
goals :)

NetBSDfr: As a conclusion, can you tell us how you 
imagine the future of NetBSD?

haad: I think that we did huge step with NetBSD 5.0. Andrew Doran did 
awesome job on 5.0. Many parts of NetBSD kernel are multi-thread safe 
these days. On multicore/SMP machines we have very good 
performance in many types of system workload.
There is also another part of NetBSD and it it is portabiliy to embedded 
devices, there are so many small devices which are running NetBSD 
and nobody knows it. We need to work hard to get Flash filesystem and 
many other embedded device stuff done to attract new developers to 
work and port NetBSD to new machines.

NetBSDfr: Well, I think I've run out of questions. Thanks 
a million for your time Adam

haad: np :)

Many thanks to Guillaume Lasmayous from NetBSDfr for his hard work in preparing, conducting and translating this interview. Rendez-vous in a few weeks for the next interview. Please feel free to suggest developers you would like interviewed and/or questions.

Original post at NetBSDfr.

[2 comments]

 



Comments:

Thanks, Adam, Guillaume and Emile for providing another great interview! Here's a link to another interesting interview about current and future opensource file systems (ChunkFS, ZFS, Btrfs/CRFS, Ceph): www1.linux-mag.com/cache/7416/1.html) Four more questions to Adam: 1) How easy (or how hard) will it be to keep the ZFS port in sync with the main version developed by Sun? 2) How porting-friendly designed is ZFS? Do the developers provide support for porting efforts? 3) As you have noted NetBSD on embedded devices: is ZFS used (or useful) on such devices? 4) What's next on your agenda? Porting Brtfs or HAMMER ;-)

Posted by Mark Weinem on July 20, 2009 at 02:56 PM UTC #

1) I have no idea we haven't done update yet we would like to feed some changes to upstream 2) I think that with some changes and with NetBSD flexibility it wasn't too hard 3) ZFS was not designed for embedded devices with less than 512Mb ram and slow CPU 4) it will take some time to merge and test and fix all bugs in ZFS to get it useable I think that 7.0 is still realistic date where will be zfs ready for production

Posted by Adam Hamsik on July 20, 2009 at 03:32 PM UTC #

Post a Comment:
Comments are closed for this entry.