| 1 | Contributor:    Andrew Tridgell and the Samba Team | 
|---|
| 2 | Date:           June 27, 1997 | 
|---|
| 3 | Satus:          Always out of date! (Would not be the same without it!) | 
|---|
| 4 |  | 
|---|
| 5 | Subject:        A bit of history and a bit of fun | 
|---|
| 6 | ============================================================================ | 
|---|
| 7 |  | 
|---|
| 8 | This is a short history of this project. It's not supposed to be | 
|---|
| 9 | comprehensive, just enough so that new users can get a feel for where | 
|---|
| 10 | this project has come from and maybe where it's going to. | 
|---|
| 11 |  | 
|---|
| 12 | The whole thing really started in December 1991. I was (and still am) | 
|---|
| 13 | a PhD student in the Computer Sciences Laboratory at the Australian | 
|---|
| 14 | National University, in Canberra, Australia. We had just got a | 
|---|
| 15 | beta copy of eXcursion from Digital, and I was testing it on my PC. At | 
|---|
| 16 | this stage I was a MS-DOS user, dabbling in windows. | 
|---|
| 17 |  | 
|---|
| 18 | eXcursion ran (at the time) only with Dec's `Pathworks' network for | 
|---|
| 19 | DOS. I had up till then been using PC-NFS to connect to our local sun | 
|---|
| 20 | workstations, and was reasonably happy with it. In order to run | 
|---|
| 21 | pathworks I had to stop using PC-NFS and try using pathworks to mount | 
|---|
| 22 | disk space. Unfortunately pathworks was only available for digital | 
|---|
| 23 | workstations running VMS or Ultrix so I couldn't mount from the suns | 
|---|
| 24 | anymore. | 
|---|
| 25 |  | 
|---|
| 26 | I had access to a a decstation 3100 running Ultrix that I used to | 
|---|
| 27 | administer, and I got the crazy notion that the protocol that | 
|---|
| 28 | pathworks used to talk to ultrix couldn't be that hard, and maybe I | 
|---|
| 29 | could work it out. I had never written a network program before, and | 
|---|
| 30 | certainly didn't know what a socket was. | 
|---|
| 31 |  | 
|---|
| 32 | In a few days, after looking at some example code for sockets, I | 
|---|
| 33 | discovered it was pretty easy to write a program to "spy" on the file | 
|---|
| 34 | sharing protocol. I wrote and installed this program (the sockspy.c | 
|---|
| 35 | program supplied with this package) and captured everything that the | 
|---|
| 36 | pathworks client said to the pathworks server. | 
|---|
| 37 |  | 
|---|
| 38 | I then tried writing short C programs (using Turbo C under DOS) to do | 
|---|
| 39 | simple file operations on the network drive (open, read, cd etc) and | 
|---|
| 40 | looked at the packets that the server and client exchanged. From this | 
|---|
| 41 | I worked out what some of the bytes in the packets meant, and started | 
|---|
| 42 | to write my own program to do the same thing on a sun. | 
|---|
| 43 |  | 
|---|
| 44 | After a day or so more I had my first successes and actually managed | 
|---|
| 45 | to get a connection and to read a file. From there it was all | 
|---|
| 46 | downhill, and a week later I was happily (if a little unreliably) | 
|---|
| 47 | mounting disk space from a sun to my PC running pathworks. The server | 
|---|
| 48 | code had a lot of `magic' values in it, which seemed to be always | 
|---|
| 49 | present with the ultrix server. It was not till 2 years later that I | 
|---|
| 50 | found out what all these values meant. | 
|---|
| 51 |  | 
|---|
| 52 | Anyway, I thought other people might be interested in what I had done, | 
|---|
| 53 | so I asked a few people at uni, and noone seemed much interested. I | 
|---|
| 54 | also spoke to a person at Digital in Canberra (the person who had | 
|---|
| 55 | organised a beta test of eXcursion) and asked if I could distribute | 
|---|
| 56 | what I'd done, or was it illegal. It was then that I first heard the | 
|---|
| 57 | word "netbios" when he told me that he thought it was all covered by a | 
|---|
| 58 | spec of some sort (the netbios spec) and thus what I'd done was not | 
|---|
| 59 | only legal, but silly. | 
|---|
| 60 |  | 
|---|
| 61 | I found the netbios spec after asking around a bit (the RFC1001 and | 
|---|
| 62 | RFC1002 specs) and found they looked nothing like what I'd written, so | 
|---|
| 63 | I thought maybe the Digital person was mistaken. I didn't realise RFCs | 
|---|
| 64 | referred to the name negotiation and packet encapsulation over TCP/IP, | 
|---|
| 65 | and what I'd written was really a SMB implementation. | 
|---|
| 66 |  | 
|---|
| 67 | Anyway, he encouraged me to release it so I put out "Server 0.1" in | 
|---|
| 68 | January 1992. I got quite a good response from people wanting to use | 
|---|
| 69 | pathworks with non-digital unix workstations, and I soon fixed a few | 
|---|
| 70 | bugs, and released "Server 0.5" closely followed by "Server 1.0". All | 
|---|
| 71 | three releases came out within about a month of each other. | 
|---|
| 72 |  | 
|---|
| 73 | At this point I got an X Terminal on my desk, and I no longer needed eXcursion | 
|---|
| 74 | and I prompty forgot about the whole project, apart from a few people | 
|---|
| 75 | who e-mailed me occasionally about it. | 
|---|
| 76 |  | 
|---|
| 77 | Nearly two years then passed with just occasional e-mails asking about | 
|---|
| 78 | new versions and bugs. I even added a note to the ftp site asking for | 
|---|
| 79 | a volunteer to take over the code as I no longer used it. No one | 
|---|
| 80 | volunteered. | 
|---|
| 81 |  | 
|---|
| 82 | During this time I did hear from a couple of people who said it should | 
|---|
| 83 | be possible to use my code with Lanmanager, but I never got any | 
|---|
| 84 | definite confirmation. | 
|---|
| 85 |  | 
|---|
| 86 | One e-mail I got about the code did, however, make an impression. It | 
|---|
| 87 | was from Dan Shearer at the university of South Australia, and he said | 
|---|
| 88 | this: | 
|---|
| 89 |  | 
|---|
| 90 |  | 
|---|
| 91 | I heard a hint about a free Pathworks server for Unix in the | 
|---|
| 92 | Net channel of the Linux list. After quite a bit of chasing | 
|---|
| 93 | (and lots of interested followups from other Linux people) I | 
|---|
| 94 | got hold of a release news article from you, posted in Jan 92, | 
|---|
| 95 | from someone in the UK. | 
|---|
| 96 |  | 
|---|
| 97 | Can you tell me what the latest status is? I think you might | 
|---|
| 98 | suddenly find a whole lot of interested hackers in the Linux | 
|---|
| 99 | world at least, which is a place where things tend to happen | 
|---|
| 100 | fast (and even some reliable code gets written, BION!) | 
|---|
| 101 |  | 
|---|
| 102 | I asked him what Linux was, and he told me it was a free Unix for PCs. | 
|---|
| 103 | This was in November 1992 and a few months later I was a Linux | 
|---|
| 104 | convert! I still didn't need a pathworks server though, so I didn't do | 
|---|
| 105 | the port, but I think Dan did. | 
|---|
| 106 |  | 
|---|
| 107 | At about this time I got an e-mail from Digital, from a person working | 
|---|
| 108 | on the Alpha software distribution. He asked if I would mind if they | 
|---|
| 109 | included my server with the "contributed" cd-rom. This was a bit of a | 
|---|
| 110 | shock to me as I never expected Dec to ask me if they could use my | 
|---|
| 111 | code! I wrote back saying it was OK, but never heard from him again. I | 
|---|
| 112 | don't know if it went on the cd-rom. | 
|---|
| 113 |  | 
|---|
| 114 | Anyway, the next big event was in December 1993, when Dan again sent | 
|---|
| 115 | me an e-mail saying my server had "raised its ugly head" on | 
|---|
| 116 | comp.protocols.tcpip.ibmpc. I had a quick look on the group, and was | 
|---|
| 117 | surprised to see that there were people interested in this thing. | 
|---|
| 118 |  | 
|---|
| 119 | At this time a person from our computer center offered me a couple of | 
|---|
| 120 | cheap ethernet cards (3c505s for $15 each) and coincidentially someone | 
|---|
| 121 | announced on one of the Linux channels that he had written a 3c505 | 
|---|
| 122 | driver for Linux. I bought the cards, hacked the driver a little and | 
|---|
| 123 | setup a home network between my wifes PC and my Linux box. I then | 
|---|
| 124 | needed some way to connect the two, and I didn't own PC-NFS at home, | 
|---|
| 125 | so I thought maybe my server could be useful. On the newsgroup among | 
|---|
| 126 | the discussions of my server someone had mentioned that there was a | 
|---|
| 127 | free client that might work with my server that Microsoft had put up | 
|---|
| 128 | for ftp. I downloaded it and found to my surprise that it worked first | 
|---|
| 129 | time with my `pathworks' server! | 
|---|
| 130 |  | 
|---|
| 131 | Well, I then did a bit of hacking, asked around a bit and found (I | 
|---|
| 132 | think from Dan) that the spec I needed was for the "SMB" protocol, and | 
|---|
| 133 | that it was available via ftp. I grabbed it and started removing all | 
|---|
| 134 | those ugly constants from the code, now that all was explained. | 
|---|
| 135 |  | 
|---|
| 136 | On December 1st 1993 I announced the start of the "Netbios for Unix" | 
|---|
| 137 | project, seeding the mailing list with all the people who had e-mailed | 
|---|
| 138 | me over the years asking about the server. | 
|---|
| 139 |  | 
|---|
| 140 | About 35 versions (and two months) later I wrote a short history of | 
|---|
| 141 | the project, which you have just read. There are now over a hundred | 
|---|
| 142 | people on the mailing list, and lots of people report that they use | 
|---|
| 143 | the code and like it. In a few days I will be announcing the release | 
|---|
| 144 | of version 1.6 to some of the more popular (and relevant) newsgroups. | 
|---|
| 145 |  | 
|---|
| 146 |  | 
|---|
| 147 | Andrew Tridgell | 
|---|
| 148 | 6th February 1994 | 
|---|
| 149 |  | 
|---|
| 150 | --------------------- | 
|---|
| 151 |  | 
|---|
| 152 | It is now May 1995 and there are about 1400 people on the mailing | 
|---|
| 153 | list. I got downloads from the main Samba ftp site from around 5000 | 
|---|
| 154 | unique hosts in a two month period. There are several mirror | 
|---|
| 155 | sites as well. The current version number is 1.9.13. | 
|---|
| 156 |  | 
|---|
| 157 | --------------------- | 
|---|
| 158 |  | 
|---|
| 159 |  | 
|---|
| 160 | --------------------- | 
|---|
| 161 | It's now March 1996 and version 1.9.16alpha1 has just been | 
|---|
| 162 | released. There have been lots of changes recently with master browser | 
|---|
| 163 | support and the ability to do domain logons etc. Samba has also been | 
|---|
| 164 | ported to OS/2, the amiga and NetWare. There are now 3000 people on | 
|---|
| 165 | the samba mailing list. | 
|---|
| 166 | --------------------- | 
|---|
| 167 |  | 
|---|
| 168 |  | 
|---|
| 169 | --------------------- | 
|---|
| 170 | It's now June 1997 and samba-1.9.17 is due out soon. My how time passes! | 
|---|
| 171 | Please refer to the WHATSNEW.txt for an update on new features. Just when | 
|---|
| 172 | you think you understand what is happening the ground rules change - this | 
|---|
| 173 | is a real world after all. Since the heady days of March 1996 there has | 
|---|
| 174 | been a concerted effort within the SMB protocol using community to document | 
|---|
| 175 | and standardize the protocols. The CIFS initiative has helped a long way | 
|---|
| 176 | towards creating a better understood and more interoperable environment. | 
|---|
| 177 | The Samba Team has grown in number and have been very active in the standards | 
|---|
| 178 | formation and documentation process. | 
|---|
| 179 |  | 
|---|
| 180 | The net effect has been that we have had to do a lot of work to bring Samba | 
|---|
| 181 | into line with new features and capabilities in the SMB protocols. | 
|---|
| 182 |  | 
|---|
| 183 | The past year has been a productive one with the following releases: | 
|---|
| 184 | 1.9.16, 1.9.16p2, 1.9.16p6, 1.9.16p9, 1.9.16p10, 1.9.16p11 | 
|---|
| 185 |  | 
|---|
| 186 | There are some who believe that 1.9.15p8 was the best release and others | 
|---|
| 187 | who would not want to be without the latest. Whatever your perception we | 
|---|
| 188 | hope that 1.9.17 will close the gap and convince you all that the long | 
|---|
| 189 | wait and the rolling changes really were worth it. Here is functionality | 
|---|
| 190 | and a level of code maturity that ..., well - you can be the judge! | 
|---|
| 191 |  | 
|---|
| 192 | Happy SMB networking! | 
|---|
| 193 | Samba Team | 
|---|
| 194 |  | 
|---|
| 195 | ps: The bugs are ours, so please report any you find. | 
|---|
| 196 | --------------------- | 
|---|
| 197 |  | 
|---|
| 198 | --------------------- | 
|---|
| 199 | It's now October 1998. We just got back from the 3rd CIFS conference | 
|---|
| 200 | in SanJose. The Samba Team was the biggest contingent there. | 
|---|
| 201 |  | 
|---|
| 202 | Samba 2.0 should be shipping in the next few weeks with much better | 
|---|
| 203 | domain controller support, GUI configuration, a new user space SMB | 
|---|
| 204 | filesystem and lots of other neat stuff. I've also noticed that a | 
|---|
| 205 | search of job ads in DejaNews turned up 3900 that mention Samba. Looks | 
|---|
| 206 | like we've created a small industry. | 
|---|
| 207 |  | 
|---|
| 208 | I've been asked again where the name Samba came from. I might as well | 
|---|
| 209 | put it down here for everyone to read. The code in Samba was first | 
|---|
| 210 | called just "server", it then got renamed "smbserver" when I | 
|---|
| 211 | discovered that the protocol is called SMB. Then in April 1994 I got | 
|---|
| 212 | an email from Syntax, the makers of "TotalNet advanced Server", a | 
|---|
| 213 | commercial SMB server. They told me that they had a trademark on the | 
|---|
| 214 | name SMBserver and I would have to change the name. I ran an egrep for | 
|---|
| 215 | words containing S, M, and B on /usr/dict/words and the name Samba | 
|---|
| 216 | looked like the best choice. Strangely enough when I repeat that now I | 
|---|
| 217 | notice that Samba isn't in /usr/dict/words on my system anymore! | 
|---|
| 218 | --------------------- | 
|---|