svn commit: samba-web r625 - in trunk/docs: .

deryck at samba.org deryck at samba.org
Tue Apr 12 21:52:48 GMT 2005


Author: deryck
Date: 2005-04-12 21:52:48 +0000 (Tue, 12 Apr 2005)
New Revision: 625

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba-web&rev=625

Log:

Adding Tridge's Groklaw piece.  This is not linked to by anything
yet.  I'm just adding it to the site, so I can work on it later.

deryck

Added:
   trunk/docs/myths_about_samba.html


Changeset:
Added: trunk/docs/myths_about_samba.html
===================================================================
--- trunk/docs/myths_about_samba.html	2005-04-12 21:24:41 UTC (rev 624)
+++ trunk/docs/myths_about_samba.html	2005-04-12 21:52:48 UTC (rev 625)
@@ -0,0 +1,152 @@
+<!--#include virtual="/samba/header.html" -->
+  <title>Myths About Samba</title>
+<!--#include virtual="header_docs.html" -->
+
+    <h3><b>Myths About Samba</b></h3>
+
+    <p><b>~by Andrew Tridgell</b></p>
+
+    <p>Originally published on <a href="http://www.groklaw.net/">Groklaw</a>.</p>
+
+    <p>There have been a number of press reports lately that discuss the
+    techniques used in developing Samba, and that refer to those techniques as
+    "reverse engineering". That term is quite misleading, and does not at all
+    accurately reflect the techniques that the Samba Team actually use. I
+    think that it is time to describe again the techniques that we actually
+    use, and to dispel some other common myths about Samba development.<br>
+    <br>
+    </p>
+
+    <p><b><u>Myth 1: dissecting the waiter</u></b></p>
+
+    <p>Classical reverse engineering techniques in software engineering
+    revolve around the use of disassemblers, debuggers and other object code
+    analysis tools to examine directly the executable code of an existing
+    product in order to create a "clone" that behaves in the same way. While
+    these venerable techniques have been successfully used by many groups,
+    they are not what we use in the Samba project.</p>
+
+    <p>Apart from the fact that these techniques often lead to very poor code
+    in a new implementation, in the Samba Team we are very conservative when
+    it comes to techniques that might be legally controversial.</p>
+
+    <p>For people who aren't software engineers I usually use the "French
+    Cafe" analogy to describe the techniques that are really used in the
+    development of Samba. You can see the original French Cafe description at:
+    <a href="http://samba.org/ftp/tridge/misc/french_cafe.txt">http://samba.org/ftp/tridge/misc/french_cafe.txt</a></p>
+
+    <p>I suggest you go and read the French Cafe description now, then come
+    back, as the rest of this paper won't really make any sense until you have
+    read it.</p>
+
+    <p>I originally wrote that paper as part of a submission made by the Samba
+    Team to the European Commission Microsoft anti-trust trial. The aim was to
+    make the techniques used by the Samba Team more easily understood by
+    judges who might not be familiar with software engineering techniques.</p>
+
+    <p>Extending that analogy a little, I think it would be fair to say that
+    classical reverse engineering techniques would be like taking a scalpel
+    and dissecting the waiter. It might indeed be possible to find out how the
+    waiter "works" from a biological perspective by using a scalpel, but it is
+    also possible to find out what you need to know by just talking to the
+    waiter, as long as you are persistent. The Samba Team has been "talking to
+    the waiter" for thirteen years now, and it might be fair to say that we
+    know more about his job than he does himself.</p>
+
+    <p>For future reference, the terms we usually use to describe what we do
+    in developing Samba are "network analysis" or "protocol analysis". If you
+    see someone describing Samba as "reverse engineering" then please ask them
+    to use these terms instead, or point them at this paper.</p>
+
+    <p><u><b>Myth 2: which came first?</b></u></p>
+
+    <p>Many people incorrectly see Samba as being a "clone" of WindowsNT. A
+    quick check of history will confirm that the very idea is absurd. I first
+    released Samba in January 1992, whereas the first release of WindowsNT was
+    in August 1993. Unless you also credit me with inventing time travel, it
+    is difficult to see how I could have been aiming to produce a "clone" of
+    WindowsNT.</p>
+
+    <p>Furthermore, I didn't find out that Samba inter-operated at all with
+    any version of DOS or Windows until nearly two years after I did that
+    first release. The earliest versions of Samba were aimed at being
+    compatible with clients for the Digital Equipment Corporation "Pathworks"
+    product suite, which was an early implementation of the SMB protocol that
+    was quite popular at the time, and that ran on Ultrix and VMS systems. My
+    initial motivation was to implement the same protocol on SunOS, so that I
+    could use my desktop system to access the departmental Unix server.</p>
+
+    <p>These days we obviously take great care to ensure that Samba is as
+    compatible as possible with current Microsoft Windows clients. That is
+    absolutely essential, as their monopoly market position in desktop
+    operating systems means that Samba is used with Microsoft clients more
+    than any other client. That doesn't mean we ignore other clients that
+    implement the SMB protocol, it just means that we test against Microsoft
+    clients more often than we test against other clients.</p>
+
+    <p><u><b>Myth 3: who invented CIFS?</b></u></p>
+
+    <p>Another common myth is to assume that Microsoft "invented" the
+    protocols that Samba implements. To understand how wrong this is you need
+    to know a little bit of history.</p>
+
+    <p>The protocol that Samba implements was first invented by Barry
+    Feigenbaum at IBM in early 1983. He initially called it the "BAF" protocol
+    after his initials, but changed the name to "SMB" before the first
+    official release. You may note that the name "Samba" contains the letters
+    "SMB", and that is not a coincidence.</p>
+
+    <p>The term "CIFS" or "Common Internet File System" was coined by
+    Microsoft in 1996 as a marketing exercise in an attempt to combat a
+    perceived threat from Sun Microsystems after their WebNFS announcement.
+    The term caught on, and now the SMB protocol is often called CIFS. The two
+    names refer to the same protocol, as is easily demonstrated by connecting
+    a current Microsoft "CIFS" client to a Samba "SMB" server from 1992.</p>
+
+    <p>It should also be noted that SMB/CIFS is an evolving protocol. The
+    original design by Barry Feigenbaum deliberately allowed scope for
+    protocol extensions, and a number of groups have taken advantage of this
+    over the years. The largest set of extensions have been made by Microsoft,
+    but some quite substantial extensions have been made by other groups,
+    including SCO, Thursby, IBM, Apple and the Samba Team.</p>
+
+    <p>It might be worth noting that of all these extensions, only Microsoft
+    has kept some (but not all) of their additions secret. It is also
+    important to note that in many cases Microsoft clients do not operate
+    correctly with servers that do not implement the Microsoft extensions.
+    That is, fundamentally, why we need to use the "network analysis"
+    techniques described above.</p>
+
+    <p>From 1996 until about five years ago Microsoft played a leading role in
+    the effort to standardize the SMB/CIFS protocol. They started the annual
+    CIFS conference series that continues today, they started the effort to
+    create an IETF standard for the protocol and they ran a public discussion
+    list on all aspects of the protocol. For reasons that we still don't fully
+    understand, they have since withdrawn from all of these activities, and
+    now appear to be actively hostile to open standards efforts.</p>
+
+    <p>Despite this change of heart on behalf of the biggest player, the CIFS
+    conferences and plug-fests have continued with the help of the Storage
+    Network Industry Association, and with the Samba Team playing a leading
+    technical role, alongside industry heavyweights such as Network Appliance
+    and EMC.</p>
+
+    <p><u><b>Where to now?</b></u></p>
+
+    <p>I still hold out hope that Microsoft will someday rejoin the SMB/CIFS
+    developer community by attending the annual conference and plug-fest. A
+    lot has happened since they stopped attending, including the development
+    of a comprehensive test suite that covers most of the protocol. Microsoft
+    is doing its customers a great disservice by ignoring the opportunity to
+    work with other industry members, and could certainly benefit from
+    attending the plug-fest and learning about the extensive protocol test
+    suites that are now available.</p>
+
+    <p>If anyone from Microsoft is reading this, then I encourage you to look
+    at <a href="http://www.cifs2005.org/">http://www.cifs2005.org/</a> and
+    seriously think about sending someone with the technical knowledge to
+    discuss what has been happening in the last few years.</p>
+    <hr>
+
+    <p>Andrew Tridgell (tridge at osdl.org)</p>
+


Property changes on: trunk/docs/myths_about_samba.html
___________________________________________________________________
Name: svn:executable
   + *



More information about the samba-cvs mailing list