10 years of Samba!

Who would have believed that this announcement 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 forseeable future.

The first version

The first tentative version was written in the first few days of 1992. You can read the gory details at http://ftp.samba.org/ftp/unpacked/samba/docs/history 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.

nbserver 1.5

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.

nbserver 1.5.20

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 cupboard.

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).

nbserver 1.5.21

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 documentation.

nbserver 1.6

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 version 1.6.05.

Samba 1.6.09

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

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

Samba 1.8 got a new source structure with source files in a source/ directory. This seemingly trivial change sparked a whole lot of development.

This version was also the first to add primitive support for foreign languages when fujita@ainix.isac.co.jp sent me a bunch of Kanji patches.

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.

Samba 1.9

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 network.

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.

Samba 1.9.16

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.

Samba 2.0

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

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.

Samba 3.0

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 of fun.


Andrew Tridgell
January 2002