Welcome!

Linux Authors: Michael Sheehan, Lavenya Dilip, Ian Thain, Bruce Armstrong, Ellen Rubin

Related Topics: Linux

Linux: Article

Samba-3: How Does It All Work?

How it happened, who was involved, and how we fared

It's over. Finally, sigh, Samba-3.0.0 has been released. How does it feel for those who worked for so long to make this happen? We are all relieved. And now that we are over the short-lived euphoria, it's back to work we go!

I was recently asked, "How does it all work?" The inquirer was wondering how the development of Samba works within the Samba-Team. The danger of answering the question is in failing to mention the important people.

The important people are our users. They are the ones who seed us with ideas - they dutifully contribute patches, and some actually get deeply involved to help make certain that the changes they need, and help with, work. Without such valuable worker bees Samba could not be the dynamic product it is.

There are usually two Samba code trees: the HEAD branch and a release branch. The Samba-Team works in split mode; Jerry Carter is the release manager for stable code releases. He has the duty of policing all patches to determine (with team help) when the release branch is ready for another stable release. He then has to goad all of us into action to clean up any mess we may have created to clear the way for a product release. The effort that goes into release management is directly measurable within 48 hours of release. Well done Jerry! Thanks to your efforts we have survived the first critical week without life-threatening problems.

Andrew Tridgell is president of the Samba-Team. He is the original author of Samba, and is currently working on the next generation, Samba-4. Jeremy Allison works tirelessly at code stabilization - bug fixing (or putting them in). Jeremy worked for weeks without coming up for more than a breath or two of fresh air during the final code review and preshipment cleanup.

Jelmer Vernooij is in charge of documentation. He had the task of making certain that all important (aren't they all?) features of the stable release code were documented. He maintains the main pages and the Samba-HOWTO-Collection. Jelmer and I worked on updating the Samba-HOWTO-Collection for the Samba-3 release. This was a lengthy task over a six month period, and became the basis for The Official Samba-3 How-To and Reference Guide, a book published by Prentice Hall.

Andrew Bartlett, Simo Sorce, Tim Potter, Rafal Szczesniak, Volker Lendecke, Christopher Hertel, Mike Warfield, Alexander Bokovoy, Paul Green, Steven French, Jim McDonough, Marc Kaplan, Herb Lewis, Richard Sharpe, and a host of other workers help to develop code. Some of us do little more than regularly test CVS snap-shots.

Periodically the team takes time to review progress, evaluate user feedback, and set priorities for the next update, or major release. The team then agrees to an allocation of priorities to those who are most interested in helping in each key project area. Eventually, a team lead emerges and works to keep developments on track.

Planning for Samba-3.0.0 started when Samba-2.2 first started to ship. Much changed as we had to respond to protocol changes that Microsoft was implementing. Our users began to ask for features we had felt were less important. At the CIFS conference in 2002, the Samba-Team realigned itself to user priorities. One year later, on September 24, 2003, Samba-3.0.0 made its official debut.

So How Did We Fare?

  1. NT4 migration facilities: Done. Development to meet user demands required improved domain control, full Unicode support, improved user account database handling, new virtual file system capabilities (particularly concurrent multiple module support), and the ability to migrate user and group accounts from NT4 to Samba-3.0.0.
  2. Improved Active Directory integration: Done. Samba-3.0.0 has support for Kerberos (both MIT and Heimdal) based athentication. It can now operate without NetBIOS support, as can Windows Server 200x. This mode of operation requires correctly configured DNS operation. Additionally, this required extended support for new authentication and DCE RPC protocols. To any company that is committed to Microsoft Active Directory this functionality is an absolute must.
  3. Support for newer security protocols: Mostly done. Windows Server 200x and Windows XP Professional have support for schannel and for digital signing. Samba-2.2.x required registry changes to reverse the newer and more secure default settings that Microsoft has enforced. With Samba-3 these registry changes are essentially no longer required.
  4. Better internationalization support: Done. We have found a bug in the new Unicode string-handling code since the release. A patch has been committed and will be in 3.0.1.
  5. Better documentation: Done. All Samba applications have a main page now. The Samba-HOWTO-Collection has been completely updated. In fact, the volume of documentation has grown more than fivefold. The documentation made significant use of user feedback from the Samba mailing lists. This makes the handling of common errors in the HOWTO a particularly valuable resource since it is made up of real world problems and the solutions to them. That was a unique step that has resulted in much warm feedback.
Note: The %S option is broken in 3.0.0. A patch will soon be available. This affects those who use this in the [homes] meta-service as it breaks its use. The workaround is either to comment out the "valid users = %S" line until 3.0.1 is released, or obtain the patch when it is released and rebuild a patches samba-3.0.0.

A product like Samba is never finished. There are always newer and better features to be implemented. Our objective is to do this while maintaining the best possible backwards compatibility. We set the goal to allow a Samba-2.2.x smb.conf file to be capable of running with Samba-3.0.0 with no loss of functionality. This proved to be a difficult task, but it was largely achieved.

In the next update I will review the major issues that have been reported with the Samba-3.0.0 release. There will be a review of remedial patches that have been made available (and committed to the samba-3.0.x CVS tree), as well as some interesting concepts and methods that have been found useful.

Stay tuned for the first down and dirty review of Samba-3.0.0.

More Stories By John Terpstra

John Terpstra is a cofounder of the Samba-Team. He is heavily involved in creating the strategy behind Samba and plays a central role in answering user questions and writing the resulting documentation. He is also a full-time consultant providing business process and mentoring services.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.