10 years of Samba!
Who would have believed that this
would eventually lead to the project that is now Samba? Thanks to the
involvement of countless individuals over the years Samba has come a
long way in the last decade, and is set to continue improving for the
The first version
The first tentative version was written in the first few days of
1992. You can read the gory details at
or you can grab that very first version from http://ftp.samba.org/ftp/samba/old-versions/server-05.tar.Z.
That first version still brings back happy memories, and some cringing
at the awful code. It was my first sockets program, and it really
shows. Last year while Jeremy and I were at a conference we downloaded
that first version and managed to coax NT4 into getting a directory
listing out of it, but apart from that it really is quite useless with
current clients. The protocol has changed too much.
After a long break, nbserver 1.5 was released in December 1993. This
version saw the addition of "nmbserver" (now known as nmbd) and
smbclient and the renaming of the primary daemon to "smbserver". This
is the first version that was influenced by a SMB specification, the
earlier versions were based purely on sniffer dumps. This version was
also the first to sport the ability to act as a print server.
The nbserver 1.5 was released under the GNU General Public License,
unlike earlier version which were released under a "do what you like"
style of license. This largely reflects the fact that I had become a
huge fan of Linux and was impressed by the progress being made by the
Linux community. I've never regretted this decision, and I think the
GPL has been very good for Samba.
Jeremy Allison came into the Samba development scene with this
release. Jeremy's first patch added the ability to connect to NT
servers from smbclient and patches for compiling on a "sun386"
box. That box is still at the bottom of his (bulging) junk hardware
This version also included the first patch from a Microsoft employee,
with Lee Fisher adding a debug statement to SMBcreate of a volume
ID. Lee was a big supporter of Samba in the early days and even sent
me a copy of the X/Open specification paid for out of his own pocket
(it was quite expensive and I was a poor student).
December 1993 was a pretty busy month for the project. With the
release of version 1.5.21 the "smb.conf" file was born thanks to the
work of Karl Auer. This was quite revolutionary for the project
largely because the structure of the code made it very easy to add new
runtime config options. Pretty soon the project caught "optionitis" in
a big way, much to the regret of anyone trying to keep up with Samba
smbserver version 1.6 was released in March 1994. This version sported
long filename support (thanks to Jeremy) plus lots better
documentation (thanks to Karl).
In April 1994 the name of the package was changed to "Samba" after I
received a letter from a manager at Syntax Corp telling me they had a
trademark on the name "smbserver". The first release of Samba was
This was probably the first really popular version of Samba. The
downloads started to come thick and fast and patches arrived from
helpful contributors every day.
This was also the first version to support "user level" security,
which made it a much more serious contender for corporate use.
Samba 1.7 was released in July 1994. This version supported name
mangling (so long filenames are available to older clients) and fixed
a huge number of bugs. It was also the first version where I did alpha
pre-releases, rather than just dumping whatever was in my home
directory onto a ftp site every few days.
This was also the first version to have a FAQ, thanks again to the
marvelous work of Karl Auer.
Samba 1.8 got a new source structure with source files in a source/
directory. This seemingly trivial change sparked a whole lot of
This version was also the first to add primitive support for foreign
languages when email@example.com sent me a bunch of Kanji
We finally started getting IPC and named pipe support in this release,
so we could start supporting browse lists with "net view
\\server". Several people told me that this was the key feature that
made them start using Samba.
The Samba 1.9 releases lasted a long long time. The first 1.9 release
came in January 1995 and brought with them some half way decent
browsing support and even allowed Samba to be the master browser for a
The 1.9 version were also the first to be widely adopted by companies
building boxes with embedded SMB support. Little appliances started
coming out which used Linux or FreeBSD and Samba to provide instant
storage for windows networks.
This was a particularly good vintage. Released in May 1996 version
1.9.16 we adopted CVS. That meant I no longer was the sole person who
committed code directly into Samba, and the "Samba Team" was
born. Moving to CVS allowed Samba to start developing much faster.
Version 1.9.16 was also when Luke Leighton started sending in Samba
patches. Luke had a huge influence on Samba development for several
years, initially in the area of browsing and then in the development
of MSRPC support for NT4 domains. In August 2000 Luke and some other
developers left the team and forked off a new version of Samba which
aimed for greater NT integration, the Samba TNG project. Lukes
many contributions to Samba are greatly appreciated.
It was a long long time before Samba moved from 1.9 to 2.0. I think we
may have caught a bit of "version number fear" so that we kept adding
to the feature list of what we wanted in 2.0 and pushing back the
release. The release finally came in January 1999 and was very well
received. Downloads now came in hundreds or even thousands per day and
even novice sysadmins managed to setup their own "Samba Network".
In time for Samba 2.0 John Blair released the first book on Samba. This was
a huge milestone and made Samba much more accessible to ordinary users. It
was a big surprise for everyone when this book topped the sales
charts for months, which immediately led to dozens of other publishers
announcing books on Samba. There are now well over 20 books in several
languages and more come out all the time.
Samba 2.2 is the current stable release of Samba. It is able to be a
primary domain controller for NT4 domains, supports Windows 2000 and
a vastly improved printing infrastructure (thanks to the support
of HP) among other things. I think it's really not too bad.
We're now heading towards Samba 3.0, and things are looking pretty
good. The code has grown by about a factor of 100 since that first
release in 1992, which in some ways is a pity as its now rather too
large to read in one sitting, but it does have one or two features not
present in the first version. Samba 3.0 will support Active Directory
and has many structural improvements that give us a much firmer base
for the next 10 years of Samba.
I think the future of Samba is looking pretty good. The project is a
magnificent testament to what can be done by free software programmers
working together and has provided an invaluable tool for an enormous
number of networks worldwide.
Well, enough nostalgia. I'd just like to say a huge thank you to
everyone who has contributed to Samba over the years. It's been a lot