April 13, 2005

'Tridge' on joining OSDL, Samba4, patents, and bad predictions

Author: Jay Lyman

Earlier this year, free software and Samba developer Andrew Tridgell was named
as the second Open Source Development Labs
fellow, sharing the title only with Linux creator Linus Torvalds. Downplaying
the moniker and claiming to be more of a "bloke" from Down Under, where he
continues to work, Tridgell -- known by many as "Tridge" -- explained that his move from IBM to OSDL was really meant
to give him more time to focus on the newest version of Samba4, a FOSS file, and
print server for Windows. He talked about the latest version of the software
that "opens Windows to a wider world," along with a few other subjects, in a
recent email interview with NewsForge.

NF: Congratulations on being named an OSDL fellow -- only the second such
fellow in history and in select company with Linus Torvalds. Please talk about
joining OSDL, how that came to be, and what it means for Samba.

Tridge: The "OSDL fellow" thing is just an arbitrary title. really. What I
would be called didn't even come up until after I'd already signed
on at OSDL, so it doesn't have any special significance. Maybe it would
be more appropriate to be called an "OSDL bloke" anyway, as I am Australian.

I
first started talking to OSDL in April last year while I was working as a
researcher on advanced storage systems at IBM's Almaden labs at the time. When
I joined Almaden, the primary project of the group I was working with involved
developing advanced features in Samba to allow for interesting connections to
other file system projects that the lab was working on. Over time the focus of
my group shifted (as so often happens with research groups!), and while IBM was
very generous in allowing me to spend so much time continuing to work on
Samba4, it became clear that I was stretching things a bit to be spending
nearly all my time on Samba when the group had moved on to other research
projects. I got in touch with Tim Witham at OSDL via a mutual acquaintance, and
we talked about the possibility of taking a leave of absence from IBM and
joining OSDL to allow me to finish my Samba4 work. There was no particular
urgency, but we eventually got all the paperwork arranged and I started with
OSDL in January. The leave of absence is notionally for two years, but it's a
fairly loose arrangement, so exactly how long it lasts really depends on the
completion of the Samba4 development effort and how long OSDL is willing to put
up with someone in such a strange time zone.

NF: There's a lot of talk, including your own, of the OSDL position
allowing you to dedicate your energies full time to Samba. Has this increased
the pressure on you and what's expected in Samba4, since you've been
freed of other responsibilities?

Tridge: The most effective development pressure is the self-imposed kind,
and I've been pushing as hard as I can on Samba4

Andrew Tridgell and a favorite companion.

for a long time now. I
think it's very important that we get it done as soon as possible, both for the
new features that it offers, and because it is a code base that allows all
Samba developers to work much more efficiently. It became clear a couple of
years ago that the structure of the Samba3 code was a significant burden to
developers. When we wanted to add a new feature, it took much longer than it
should have, as the code still had the legacy structure from back in 1991 when
I first started working on it. That meant that we were not using our
programming resources efficiently, and sometimes we left out important features
completely as they were just too hard to retrofit to the existing code base.
The most obvious part of this is the active directory work. I added ADS member
support to Samba3 about four years ago, but we have continuously delayed adding
full ADS domain controller support as it would have required such a huge and
destabilizing changed to the Samba code that it didn't seem wise to
start. With the new Samba4 structure, the ADS DC support fits in quite
naturally, and is actually a pleasure to work on.

NF: On a side note, can you tell us what was getting your energy previously
that is not getting it now?

Tridge: Apart from a few side projects like writing a thesis and things like
rsync and ccache, Samba has had the majority of my energies for well over a
decade now. How much time I spend on it does vary, but it's nearly always been
a full-time job by any normal standards. Some weeks I only emerge from my study
for a bit of sleep and some breakfast (luckily my wife is very tolerant!), and
other times I spend a more moderate 12 hours or so a day on Samba work. Samba
is both my hobby and (more recently) my career, so I love spending as much time
as I can on it. I'm a programming junkie.

NF: What are the biggest improvements that have come to fruition in Samba4
and what are the biggest ones that didn't make it or had to be
significantly trimmed?

Tridge: From my point of view, the biggest improvement is in the code
structure. Over half the code in Samba4 is now auto-generated using a new
compiler we wrote for the task. That change alone would be worth the effort for
me. The code that isn't auto-generated is structured in a modular and
very efficient manner. That point of view isn't what users care about, of
course, but it does lead to lots and lots of user-visible improvements due to
the ease of programming with the new structure. We now commonly come across
situations where we say, "OK, let's start on the following feature," and a
couple of hours later it's finished, where we might have spent a week or more
on the same feature in Samba3. The most user-visible changes in Samba4 will be
those associated with the ADS support, and the additional file system features.
The file system features are what started the whole Samba4 effort -- Samba4 was
initially called the "Samba NTVFS" project, referring to the new virtual file
system layer that allows for NT semantics on top of both POSIX and non-POSIX
file systems.

One simple but important example of how the new NTVFS layer helps
is the addition of support for "NT file streams." A file in a NT filesystem can
have multiple "streams," where the primary stream (called ":$DATA") is the
normal file data that people are used to thinking about, but there can be any
number of other named streams containing other types of data, such as meta-data
describing who wrote the file, or an audio stream, or even some data from an
anti-virus scan of the file. Importantly, recent updates to WindowsXP use
streams to store security information about where a file came from, which
allows Windows to display a warning when you try to execute a file that comes
from an untrusted "security zone." POSIX file systems have no concept of
multiple streams, and as Samba was originally designed as a tool for
representing a POSIX filesystem to Windows clients, there was no attempt to add
stream support. The situation has now changed, with streams becoming a more
essential feature for a file server for Windows clients, and at the same time
user expectations for compatibility with WindowsNT have risen. This means we
really need to support streams, but in order to do that properly, a lot of the
internals of Samba needed to be updated. This is achieved in Samba4 using the
new NTVFS layer, which allows streams to be represented either using an
external database or using "file xattrs," which is an extension recently added
to Linux, and which is also present in a number of other, Unix-like
systems.

NF: Is Samba4 an Active Directory domain controller in the way you
envisioned?

Tridge: Yes, Windows clients already see Samba4 as an ADS domain controller.
We don't have all of the features done yet, but we have enough that a
WindowsXP client can join a Samba4 ADS domain, login and do some user
management. Getting that far is the majority of the work, so I am very hopeful
that we will solve the remaining pieces of the puzzle and have a good ADS DC
solution later this year.

NF: How is funding for Samba -- both in money and in time for contributions
from developers -- going?

Tridge: The Samba project only has a very small direct budget. We typically
spend about $12,000 a year, mostly on travel. Many of the team members do not
have their own funding for travel to the two core conferences (the SambaXP
conference and the CIFS conference) as they are students, or they only work on
Samba as a spare-time hobby, so we like to support their work by paying for
their travel expenses for Samba conferences. That money comes from a number of
sources. We received a significant lump as a prize few years
ago, plus we have received donations from individuals and companies who want to
support Samba development. In terms of programmer time, the key to that is
really the enthusiasms of the individual developers. Several of the core team
members are lucky enough to be in jobs where they can work on Samba either full
time or for most of the time, but even if an individual isn't in that
position, they often spend a lot of time on Samba anyway as it is something
they enjoy and are enthusiastic about.

NF: How many developers are on the team now?

Tridge: There are nearly 30 people on the Samba Team list, but most of those
are not really active these days as developers. We have a lot of people on the
team who play specialized roles, either looking after a port to a specific
operating system which only requires the occasional tweak, or looking after
some other aspect of the Samba project which doesn't involve much
programming. At any one time, there are usually around six developers working
hard on some aspect of code development. Who those six people are varies quite
a lot, but it usually balances out to around that number of people.

NF: A couple of years ago, you said
all you do is "participate in technical discussions and write code." Is that
still true? Are there any differences today?

Tridge: As a programmer, participating in technical discussions and writing
code is really what life is all about! I especially like the "writing code" bit
(did I mention that I'm a programming addict?).

NF: Shifting gears, a bit on patents. Given what's happened and what
is happening in Australia, Europe, and the U.S., do you believe software
patents are proving to be a significant threat to open source software
development and use
?

Tridge: They are certainly a very significant threat, but I am less fearful
of them than I was a year ago. What has changed is that I have learned some
more about patent analysis and the methods of working out exactly what a
specific patent really means and how to avoid it. I still think that software
patents are an extremely bad idea, and that we could easily be hit by "the big
one" that has the same sort of effect on the free software community as a large
asteroid hitting Earth, but I also understand a little better the techniques
that can be used to avoid specific patents, which gives me some hope that we
can weather the storm long enough for the world to come to its senses and
change the current patent system.

NF: What is being done to prevent patent infringement concerns, or even
associated perception issues, from bogging down open source software
projects?

Tridge: A lot is being done in terms of analysis of specific patents, plus
there is a fantastic effort being put in by the free software community in
Europe to raise the profile of the issue and try to prevent software patents
[from] becoming ubiquitous. There have been some setbacks in that effort, but
at least the issue is getting some attention. I don't think that the open
source projects are being bogged down by this issue at all. It is something
that is being actively addressed, but it doesn't cause development to
stop, or even significantly slow it down.

NF: We hear a lot about the "Year of Linux," "Year of Linux Desktop," "Year
of Open Source," and so forth. What would you say 2005 might be the year
of?

Tridge: I didn't know the years for using Linux (on the desktop or
otherwise) were over! I guess I'm just living in the past by typing this
on my nice KDE desktop on Debian Linux. I'm famously bad for making
technology predictions, especially after I told my boss back in 1989 that Web
programming would never take off (luckily he ignored me!), so I think I better
leave the naming of years to other people.

Cheers!

Click Here!