Difference between revisions of "Samba"

From Dan Shearer CV
 
(25 intermediate revisions by the same user not shown)
Line 1: Line 1:
  +
== So many Samba successes ==
The [[:wikipedia:Samba (software)|Samba Project]] is nearly 30 years old. It started by me discovering some unmaintained but interesting open source software, as [https://git.samba.org/?p=samba.git;a=blob_plain;f=docs-xml/archives/history;hb=HEAD documented in the Samba source tree].
 
   
 
In 2024, the [[:wikipedia:Samba (softwarOvere)|Samba Project]] is nearly 30 years old and has conservatively a billion users. It started by discovering some unmaintained but interesting open source software for sharing files and printers with workstation computers. Microsoft wanted to monopolise all computer networking and I didn't know what else to do! This history is [https://git.samba.org/?p=samba.git;a=blob_plain;f=docs-xml/archives/history;hb=HEAD documented in the official Samba repository].
Samba became a story of reverse engineering, IP rights, threats from Microsoft, cybersecurity, a giant European court case, startup companies, lawyers and engineering excellence. I was a co-founder of Samba because I needed it to solve my own problem. I could see that there was a bright future for something that could be a drop-in replacement for Microsoft network servers, and some talented engineers agreed with me. It was an interesting ride for many years!
 
   
  +
Samba wasn't just a clever idea, it was implemented by some very talented computer scientists and software engineers with a very large number of total contributors. I was not one of the Samba core engineers, not being good at intensive protocol analysis combining encryption, obfuscation, historical anomalies and sheer overwhelming volume of old-school RPC design. I was (and remain) more interested in interoperability architecture and design, the ''why'' these things are needed and make sense to users. For its first decade Samba was ''one of the highest-prestige projects in the present open-source world is Samba'', as described in the influential essay "The Cathedral and the Bazaar". Certainly Samba was a factor in holding back absolute hegemony by Microsoft, despite their aggressive attempts to destroy compatible technologies.
Samba was the first software to have the right of compatibility affirmed by the EU Court of Justice, after an epic series of cases finishing in 2012. The EU Commission learned then that it could fight a giant American corporation and win, something it is continuing to do in the privacy against Google, Amazon, Apple and others today.
 
   
 
Samba became a story of [https://www.sitepoint.com/adversarial-interoperability adversarial interoperability], protocol analysis often called [https://www.samba.org/samba/docs/myths_about_samba.html reverse engineering], IP rights, threats from Microsoft, cybersecurity, a giant European court case, startup companies, lawyers and engineering excellence. I got involved with Samba because I needed it to solve my own problem sharing files and printers at the University of South Australia, which was increasingly having its infrastructure taken over by the Microsoft monopoly. I could see there was a bright future for drop-in replacements for Microsoft network servers, and fortunately some engineers with talents beyond my own agreed with me. It was an interesting ride for many years!
== Both Success and Failure ==
 
   
 
Samba was the first software to have the right of compatibility affirmed by the EU Court of Justice, after an epic series of cases finishing in 2012. The EU Commission learned then that it could fight a giant American tech corporation and win, something it is continuing today in battles around monopolies, privacy and dumping.
Samba is still developed and is still impressive. Samba has conservatively a billion users due to its inclusion in many embedded devices and storage systems. Samba is the second and only other complete implementation of Microsoft's Active Directory. Samba Team engineers continue to release reliable code, with a core team of around 30 members funded by many companies.
 
   
  +
== Comprehensive failure by its own measure ==
And yet, Samba has also fallen far short of its promise to be a drop-in replacement for Microsoft servers, which would have made it ubiquitous in every company in the world. Microsoft and Amazon's hybrid cloud solutions would have looked very different - and Amazon did try hard to engage with the Samba team to make it work for them. Unfortunately the time for Samba to rule the world has passed, and the reasons are instructive.
 
   
 
Samba has fallen far short of its promise to be a "drop-in replacement" for Microsoft servers in the full sense including ease of deployment, which would have made it ubiquitous in every company and home in the world. Microsoft and Amazon's hybrid cloud solutions would have looked very different. Unfortunately, no matter how advanced Samba becomes now, the opportunity for Samba to rule the world seems to have passed (or has it? see further down for news in 2024 ...)
== Reverse and Forwards Engineering ==
 
   
  +
<blockquote><big>'''The Samba Project is thus a thriving open source project with a billion-plus users, which nevertheless fails in its original primary objective. '''</big> </blockquote>
Samba started as a reverse engineering project, to provide users with the same experience as having a Microsoft server, with some additional benefits due to being based on Linux and open source. After the final court case in 2012, Microsoft started publishing the written standards for how to communicate with their servers. At last we could really know what we were doing in developing Samba! Microsoft would no longer control all file servers and directory servers in the world!
 
   
 
Samba is still developed and is still impressive. The estimate of a billion users is due to its inclusion in many embedded devices (eg printers, photocopiers and cameras) and giant file storage systems. Only Samba and Microsoft completely implement Microsoft's vastly complex Active Directory specification, which is at the heart of a majority of the world's corporate IT infrastructure. Samba Team engineers continue to release reliable code, with a core team of around 30 members, who are volunteers and also developers funded by many companies.
But it didn't quite turn out that way.
 
   
 
== Reverse and Forwards Engineering/Protocol Analysis ==
Part of the reason Samba fell short stems from the social and psychological difficulty of turning a '''reverse engineering''' project into '''forwards engineering''', once full documentation for the SMB protocols became available. The architectural possibilities are very different and the development cadence should have changed completely to reflect that. Companies were very keen to participate in this new opportunity, and deployments in the cloud were an obvious next step. None of that happened, because Samba had stopped being the only alternative in the market, driven by the brilliance of dogged individual discovery. Additional skills were needed for Samba to become as ubiquitous as Microsoft in the server market, and that never quite happened.
 
  +
 
Samba started as a protocol analysis project (not strictly "reverse engineering", which is incorrect as noted above) to provide users with the same experience as having a Microsoft server. There were some additional benefits for users due to being based on Linux and open source. After [https://curia.europa.eu/juris/liste.jsf?num=T-201/04 the astonishing 13-0 loss] in the [https://en.wikipedia.org/wiki/Court_of_Justice_of_the_European_Union EU Court of First Instance] (now the General Court) in 2007, Microsoft started sharing the written standards for how to communicate with their servers. At last we could really know what we were doing in developing Samba! Microsoft would no longer control all file servers and directory servers in the world!
  +
 
But it didn't quite turn out that way, really disappointingly so.
  +
 
Part of the reason Samba fell short stems from the social and psychological difficulty of turning a '''reverse engineering''' project into '''forwards engineering'''. That is inevitably what happened when the full documentation for the SMB protocols became available. The architectural possibilities are very different if you have the documentation. The development cadence should have changed completely to reflect that. Companies were very keen to participate in this new opportunity, and deployments in the cloud were an obvious next step. None of that happened, perhaps because Samba was no longer the only alternative in the market, and was no longer driven by the brilliance of dogged individual discovery. Additional skills, such as user interfaces, were needed for Samba to become as ubiquitous as Microsoft in the server market, and those skills were never applied.
  +
 
Nevertheless I am very proud of Samba, and I enjoy seeing its continued technical growth. Samba seems like it has plenty of future yet.
  +
  +
== Wonderful news in 2024 ==
  +
  +
Germany's Sovereign Tech Fund has [https://www.sovereigntechfund.de/tech/samba has made Samba a substantial grant] to be used for protocol engineering. While constant and advanced protocol engineering keeps Samba as a drop-in replacement on the network, or close, this probably still won't make Samba the seamless drop-in product replacement because that would require a user interface project and the Samba code is now elderly. But perhaps it will, and in any case it is possible that ways will be found to keep the large and complicated Samba codebase fresh. Samba has been built on a tiny fraction of the budget of the Microsoft network engineering team even if you count the volunteer hours, and maybe this will balance things out a little. I hope so!
   
Nevertheless I am very proud of Samba, and it has plenty of future yet.
 
   
 
[[Category:Software Development]]
 
[[Category:Software Development]]
[[Category:Legal]]
+
[[Category:Law]]
 
[[Category:CyberSecurity]]
 
[[Category:CyberSecurity]]

Latest revision as of 13:52, 11 October 2024

So many Samba successes

In 2024, the Samba Project is nearly 30 years old and has conservatively a billion users. It started by discovering some unmaintained but interesting open source software for sharing files and printers with workstation computers. Microsoft wanted to monopolise all computer networking and I didn't know what else to do! This history is documented in the official Samba repository.

Samba wasn't just a clever idea, it was implemented by some very talented computer scientists and software engineers with a very large number of total contributors. I was not one of the Samba core engineers, not being good at intensive protocol analysis combining encryption, obfuscation, historical anomalies and sheer overwhelming volume of old-school RPC design. I was (and remain) more interested in interoperability architecture and design, the why these things are needed and make sense to users. For its first decade Samba was one of the highest-prestige projects in the present open-source world is Samba, as described in the influential essay "The Cathedral and the Bazaar". Certainly Samba was a factor in holding back absolute hegemony by Microsoft, despite their aggressive attempts to destroy compatible technologies.

Samba became a story of adversarial interoperability, protocol analysis often called reverse engineering, IP rights, threats from Microsoft, cybersecurity, a giant European court case, startup companies, lawyers and engineering excellence. I got involved with Samba because I needed it to solve my own problem sharing files and printers at the University of South Australia, which was increasingly having its infrastructure taken over by the Microsoft monopoly. I could see there was a bright future for drop-in replacements for Microsoft network servers, and fortunately some engineers with talents beyond my own agreed with me. It was an interesting ride for many years!

Samba was the first software to have the right of compatibility affirmed by the EU Court of Justice, after an epic series of cases finishing in 2012. The EU Commission learned then that it could fight a giant American tech corporation and win, something it is continuing today in battles around monopolies, privacy and dumping.

Comprehensive failure by its own measure

Samba has fallen far short of its promise to be a "drop-in replacement" for Microsoft servers in the full sense including ease of deployment, which would have made it ubiquitous in every company and home in the world. Microsoft and Amazon's hybrid cloud solutions would have looked very different. Unfortunately, no matter how advanced Samba becomes now, the opportunity for Samba to rule the world seems to have passed (or has it? see further down for news in 2024 ...)

The Samba Project is thus a thriving open source project with a billion-plus users, which nevertheless fails in its original primary objective.

Samba is still developed and is still impressive. The estimate of a billion users is due to its inclusion in many embedded devices (eg printers, photocopiers and cameras) and giant file storage systems. Only Samba and Microsoft completely implement Microsoft's vastly complex Active Directory specification, which is at the heart of a majority of the world's corporate IT infrastructure. Samba Team engineers continue to release reliable code, with a core team of around 30 members, who are volunteers and also developers funded by many companies.

Reverse and Forwards Engineering/Protocol Analysis

Samba started as a protocol analysis project (not strictly "reverse engineering", which is incorrect as noted above) to provide users with the same experience as having a Microsoft server. There were some additional benefits for users due to being based on Linux and open source. After the astonishing 13-0 loss in the EU Court of First Instance (now the General Court) in 2007, Microsoft started sharing the written standards for how to communicate with their servers. At last we could really know what we were doing in developing Samba! Microsoft would no longer control all file servers and directory servers in the world!

But it didn't quite turn out that way, really disappointingly so.

Part of the reason Samba fell short stems from the social and psychological difficulty of turning a reverse engineering project into forwards engineering. That is inevitably what happened when the full documentation for the SMB protocols became available. The architectural possibilities are very different if you have the documentation. The development cadence should have changed completely to reflect that. Companies were very keen to participate in this new opportunity, and deployments in the cloud were an obvious next step. None of that happened, perhaps because Samba was no longer the only alternative in the market, and was no longer driven by the brilliance of dogged individual discovery. Additional skills, such as user interfaces, were needed for Samba to become as ubiquitous as Microsoft in the server market, and those skills were never applied.

Nevertheless I am very proud of Samba, and I enjoy seeing its continued technical growth. Samba seems like it has plenty of future yet.

Wonderful news in 2024

Germany's Sovereign Tech Fund has has made Samba a substantial grant to be used for protocol engineering. While constant and advanced protocol engineering keeps Samba as a drop-in replacement on the network, or close, this probably still won't make Samba the seamless drop-in product replacement because that would require a user interface project and the Samba code is now elderly. But perhaps it will, and in any case it is possible that ways will be found to keep the large and complicated Samba codebase fresh. Samba has been built on a tiny fraction of the budget of the Microsoft network engineering team even if you count the volunteer hours, and maybe this will balance things out a little. I hope so!