Skip to content


Why Mono and Samba Are Patently Different

October 08, 2008

Posted by: Glyn Moody


Here's a very good question: why are people (including me) nasty to Mono, but nice to Samba?

The Mono project has been branded as evil, a sellout, a product of a Microsoft-loving lackey from its inception. I think this is a misguided attitude that is rooted in a mistrust of the power of FOSS, and especially the GPL.

The Samba project, like Mono, provides a cross-platform alternative to closed Microsoft technologies. It is equally vulnerable to the (increasingly toothless) Microsoft patent threats and arbitrary changes in the protocols. Yet Samba is admired. Perhaps the difference is merely in the words of each project's leaders-- the Samba team have never praised Microsoft's technologies, while Miguel de Icaza, the leader of Mono, has.

The PR aspect may have something to do with it, but I don't think it's the main reason. To understand the principal difference between Samba and Mono, we need to explore what they do, and how they do it.

Samba grew out of a classic hacker's itch. Its creator, Andrew Tridgell, wanted to connect his PC to a departmental Sun machine, and knocked up a bit of server code for the latter to make that possible. It was only later that he discovered – to his amazement – that his program also worked with PCs running Windows.

This meant that Samba, running on GNU/Linux, could function as a file and printer server for Windows users, which was why it became one of the first free software programs to find its way into enterprises, since it was effectively a drop-in replacement for more expensive Windows-based solutions. In other words, Samba is a free implementation of some protocols used by Windows, and was created so that free code could be used instead of Microsoft's.

Now consider Mono. Like Samba, it aims to reproduce functionality available on the Windows platform, so that people can use free software instead: a laudable goal in itself. But the end-result, which depends on Microsoft's work, is something that encourages developers to write *yet more* code that uses Microsoft's approach. In benighted countries where software can be patented, this means that any patents that Microsoft has in the .NET framework are like to apply to any code developed with Mono. Like an infectious disease, the intellectual monopoly is spread wider.

That's not the case with Samba: even if there were software patent issues with Samba's implementation, they wouldn't spread to other code (unless that code were based *directly* on Samba), because the program is standalone. But in fact, there are *no* patent issues, because last year Samba officially received from Microsoft the full protocol documentation, under the terms of the agreement with the European Commission:

Today the Protocol Freedom Information Foundation (PFIF), a non-profit organization created by the Software Freedom Law Center, signed an agreement with Microsoft to receive the protocol documentation needed to fully interoperate with the Microsoft Windows workgroup server products and to make them available to Free Software projects such as Samba.

Microsoft was required to make this information available to competitors as part of the European Commission March 24th 2004 Decision in the antitrust lawsuit, after losing their appeal against that decision on September 17th 2007.

Herein lies the big difference between Samba and Mono: where the former played a crucial role in liberating the protocols it uses to ensure that there is no knock-on effect for users in terms of intellectual monopolies, the Mono project propagates Microsoft's software patent claims even wider.

This is what makes Mono so dangerous: developers that use this framework are, in fact, helping to disperse the poison of Microsoft's intellectual monopolies across the free software ecosystem. I'm sure that's not the aim of the Mono developers, who doubtless have the best of intentions, but sadly it is the inevitable result. And that is why developers and users need to be warned off Mono in a way that is not necessary for Samba.


Follow highlights from ComputerworldUK on Twitter
Sign up for our Daily Newsletter
The UK IT News widget Get it for your site!

<<newer entry | back to blogs indexolder entry>>

Advert

close

Email this article to a friend or colleague:




PLEASE NOTE: Your name is used only to let the recipient know who sent the story, and in case of transmission error. Both your name and the recipient's name and address will not be used for any other purpose.

close
  • This article is now being printed.
close

What are your views on this subject? Use the form below to post a comment on this article up to 1000 characters.


Characters remaining:

close

Click below to add 'Why Mono and Samba Are Patently Different' to your blog.



If you do not have a ComputerworldUK Account and would like to use this feature, please Register.

If you are a registered, logged-in user, this will post the title and first paragraph of this story to your blog to share with your readers.

What is this?

Comments received

Jack Hughes said on Wednesday, 08 October 2008

I'd be pretty surprised if Sun doesn't hold patents on the Java runtime & language which doesn't seem to cause anybody any problems. I personally don't understand why people have problems with mono...

Glyn Moody said on Wednesday, 08 October 2008

You're right that that's a problematic area, which is why RMS was so vehementaly against programming in Java initially. The fact that Java has gone GPLv2 with RMS's blessing suggests those issues have been resolved.

The Open Sourcerer said on Wednesday, 08 October 2008

Perhaps is can be simplified to something like:

Samba helps Windows with FOSS.

Mono "helps" FOSS with Windows...

When I wrote the How to Remove Mono from Ubuntu piece I had NO IDEA how popular that was going to be. It is the most read article on my blog of all - by page views - and yet it has only been there for 2 months. It just goes to show how much reticence there really is for Mono.

Cheers

Adam Dickison said on Wednesday, 08 October 2008

Why help Windows with FOSS when everybody seems to hate Windows so much? It seems more 'radical' to leverage Windows to help FOSS and undermine it. I have to admit that I really don't understand the hatred for MONO outside of the standard line of rhetoric. If people don't want MONO then don't use it. If they do, let them use it. Isn't that what freedom is really about?

Glyn Moody said on Wednesday, 08 October 2008

I think the issue is that people may be using Mono without realising it: not many people worry too much about the intellectual monopolies hiding unter the user interface of an app (nor should they).

The problem is that Mono programmers are helping to spread Microsoft's claimed software patents more widely, and the danger is that that could prove hugely damaging once Microsoft gets desperate enough to start moving behond vague threats about patent infringement.

Igor said on Wednesday, 08 October 2008

You're comparing apples and oranges... Samba and Mono have different goals

Glyn Moody said on Wednesday, 08 October 2008

Indeed - and different knock-on consequences.

Tim Holloway said on Wednesday, 08 October 2008

Samba provides a narrowly-defined function. It's immaterial that that function is essentially to communicate with Microsoft OS's.

Mono, on the other hand is an open-ended framework rooted in the Windows OS. In theory, it's a lot like Java, but Java was never designed to be closely entwined with Solaris, whereas, .Net was the exact opposite.

They days have long since passed since Sun could wrench Java around at whim. On the other hand, an indispensable .Net subsystem bound exclusively to Windows low-level code is an omnipresent danger.

As long as .Net comes in two flavors - Windows with the full DLL kit and non-Windows with a limited subset, .Net is a risky proposition.

Sum Yung Gai said on Wednesday, 08 October 2008

I'm with you, Glyn. I stay as far away from Mono as I can. That's also why Red Hat doesn't include it by default in RHEL. They don't want to help Microsoft's patent FUD program, and I don't blame them one bit.

You summed up the difference between Samba and Mono very well. I don't know why a great hacker like Miguel is so in love with Microsoft. By contrast, Tridge and Jeremy Allison are emphatically not, and indeed, the whole point of their project, as they've said, is to make it no longer necessary.

That's the difference.

--SYG

Tony McGrath said on Thursday, 09 October 2008

What Miguel is in love with is a technology. Unfortunately, that technology was developed by Microsoft. Does that mean that Miguel loves Microsoft? I very much doubt it.

Mono uses the published specification for the CLR that is available from ECMA that has an unfortunate encumbrance with a set of software patents that Microsoft alleges it holds.

Everything else has been reverse engineered, exactly the same as Samba. So, where is the beef?

Software patents are everywhere. MPEG4 is encumbered as well, but is anybody yelling about FOSS MPEG4 implementations?

The only evil here is the concept that software can be patented. This leads to the idea that any FOSS project that could possibly use potentially patented concepts is also evil by association.

I find it concerning that somebody would judge my morals simply because I favour to use a particular technology.

Samba violates EULA, Mono doesn't said on Thursday, 09 October 2008

Samba uses a fair amount of reverse engineering to achieve what it does. Mono implements an ECMA standard specification that happens to be from Microsoft. I think you've got your risk analysis a bit backwards to say the least.

Ken said on Thursday, 09 October 2008

I agree with you Glyn. This is one of the main reasons I don't install Gnome on any of my computers. I won't know if Mono is being "sneaked-in" by some photo management software of music software etc.

Of course, Gnome in itself is not to blame but too many of its to-die-for apps seems to depend on Mono and I always read the suffix -poly after that!

Chris said on Thursday, 09 October 2008

Nonsense. Mono is free software. Writing software in Mono means contributing to free software, full stop.

This article is just another sad attempt to scare people with ominous 'patent issues' that don't really apply to Mono.

It's tiring how people who don't have a grasp of the legal side of the issue - and often don't make the attempt to read up on it - try to spread FUD around.

Glyn Moody said on Thursday, 09 October 2008

Samba certainly used a lot of reverse engineering initially, but now that it has the official specs from Microsoft, presumably that's not necessary.

Glyn Moody said on Thursday, 09 October 2008

@Toney: you mention MPEG4, but again the issue is that these patents don't propagate (as they don't with Samba) - they only affect software that implements them directly.

And I'm not passing judgement on anyone's morals, merely pointing out that Mono represents a danger for free software in a way that Samba does not.

Glyn Moody said on Thursday, 09 October 2008

@Chris: Here's what one of the people named on the .NET patents says:

http://web.archive.org/web/20030424174805/http://mailserver.di.unipi.it/pipermail/dotnet-sscli/msg00218.html

The problem, as Eben Moglen has pointed out, is that Microsoft can rescind the "royalty-free and otherwise RAND" grant it has made on the patents, leaving it just RAND, which is useless for free software.

akf said on Thursday, 09 October 2008

I think the better comparison would be Mono versus Winelib. The difference is: Winelib is promoted as means to port Windows apps to GNU/Linux. That is a good goal.

Nobody suggests to use Winelib to write portable applications... or even "native" GNU/Linux apps. That is the difference.

Glyn Moody said on Thursday, 09 October 2008

@akf: interesting comparison. I used Samba because my jumping-off point did.

Spaulding Smails said on Thursday, 09 October 2008

The difference; Samba is needed, Mono isn't.

I would even go so far as to say that Windows doesn't REALLY need dotnet. As everything moves online there is less and less of a need to have a desktop ui language (which dotnet is really only useful for) and have apps written in PHP, python, ruby or any of the other far superior scripting languages out there.

dotnet and mono are simply last minute grabs by Microsoft at locking users into a has been industry; the stand-alone PC.

David Gerard said on Thursday, 09 October 2008

I'm very pleased that the free software Java is now included in all significant GNU/Linux distros by default.

Jeremy Allison said on Thursday, 09 October 2008

Samba has *never* used reverse engineering. It's a common FUD item spread against us. Please don't repeat it. Samba uses network analysis to determine how the protocols work.

The difference is easily explained here, in tridge's wonderful "french cafe" paper, which was submitted to the EU case as evidence.

http://www.samba.org/ftp/tridge/misc/french_cafe.txt

So no EULA has ever been violated. In fact, as Microsoft has yet to fully document the interface between their CIFS and NTFS layers, we still use this technique to determine exactly how things work (as the documentation is not yet entirely accurate).

Jeremy.

Glyn Moody said on Thursday, 09 October 2008

I stand corrected: "network analysis" it is....

DiBosco said on Thursday, 09 October 2008

Aside from patent threats, it seems to me that .net and mono are for lazy programmers to produce bloaty software. For me that is enough to eschew them both. Qt offer cross platform tools that don't have the same kind of bloat and make apps that don't need the frameworks installed on the users' machines to run the application.

I don't like Java as it's a big overhead on the PC.

>> dotnet and mono are simply last minute grabs by Microsoft at locking users into a has been industry; the stand-alone PC. <<

The stand-alone PC is far from dead. There's no way I'd trust my sensitive data with on-line storage. Plus you can't run lots of applications fast enough with on-line apps. This doesn't even tackle the fact that if you can't get on-line you can't get at your data.

Rambo Tribble said on Thursday, 09 October 2008

While I have deep reservations regarding the Mono project, it might be argued that it can act as a bridge to a more open environment. As long as it is recognized that it is a bridge that must be condemned for safety reasons, its temporary use might be excused.

Glyn Moody said on Thursday, 09 October 2008

The danger is it won't be temporary: people get lulled into a false sense of security, and eventually lose sight of the dangers....

Nitin DB said on Thursday, 09 October 2008

I'm no expert, but if Beagle and Gnome-Do were produced using Mono and C#, then I'm all for mono. Good shit can be developed using this shit! Granted, these are pretty small applications but I've used M$ Expression Web and Expression Design (Developed using C#) on windows and it surprised me how light and speedy it was on my antique machinery. Compared to Adobe Dreamweaver it was flying! I was similarly impressed with M$ Silverlight, which I saw as a real solid alternative to Adobe Flash. The prospect of having this technology available for developing linux applications is exciting.

Bill Smith said on Friday, 10 October 2008

I'd say a better argument is, why is Wine so loved, but Mono despised? They're essentially the same thing, except that Mono has the added advantage of conforming to ECMA and ISO standards (and it's associated licensing protections) while Wine has no such protection *at all*.

paul (the unverified) said on Friday, 10 October 2008

It amazes me what convenient memories people have. (In case anyone is worried, this is not a moral judgment, okay? I guess this is just a fact of life and human behavior.) A company like m$ can consistently abuse their mono-poly power and yet, if they (ie, m$) put a little shiny bauble out there, people (even FOSS advocates) flock to them again willing to forget the past. Just how naive are these people?

It's hard for me to believe that people that are clever enough to develop software are so naive when it comes to a convicted mono-polist.

Do these people NOT see what m$ has done to I$O? Did they NOT see what m$ did recently to Codeplex? Redmond is not learning to play nice w/FOSS nor do they want to. They are clearly using their classic 3E strategy again. Yeah, all they want to do is embrace FOSS a little here and a little there. Then maybe extend it just a little here and there. Hey, it's all good, isn't it? See how easy it is for us to get a long.

humdinger said on Friday, 10 October 2008

This whole debate rests on the false assumption that Mono uses patented techniques. It doesn't.

If M$ - or anyone else, for that matter - should accuse Mono-devs of violating a specific patent they will work around it. That's the way such things are handled in the free software world. Got anything against that?

humdinger said on Friday, 10 October 2008

BTW, can anyone explain why you don't damn WINE which is a reverse-engineered Windows that allow people to continue using their un-free Windows apps on Linux?

Jack Hughes said on Friday, 10 October 2008

>The problem is that Mono programmers are >helping to spread Microsoft's claimed >software patents more widely, and the >danger is that that could prove hugely >damaging once Microsoft gets desperate >enough to start moving behond vague >threats about patent infringement.

Glyn, if you take your argument to its logical conclusion you could make the same argument for linux. Microsoft no doubt holds a ton of patents on operating design and I wouldn't be surprised if linux violates some of them. So, by your logic, using Linux is equally spreading Microsoft's claimed patents more widely.

Glyn Moody said on Friday, 10 October 2008

@humdinger: I hope to write about Microsoft's patents in Mono and elsewhere next week.

As far as WINE is concerned, that's covered in a comment above.

Glyn Moody said on Friday, 10 October 2008

@Jack: I think there's a difference. The first is FUD: patents that Microsoft claims are infringed by GNU/Linux are unknown, probably obvious and probably covered by prior art. The patents that Microsoft claims to have in .NET may not be valid in sensible jurisdictions, but are in others. So there is a clear danger in re-implementing them in a way that there is not with GNU/Linux.

akf said on Saturday, 11 October 2008

As I see more comments suggesting mono was the same as wine, let me think a little how it would be, if this were true.

If mono was like wine, it would be only used to port Windows software to GNU/Linux. I would have nothing against it. BTW: GTK# would never have been written then.

On the other hand, if wine was treated like mono: GNU/Linux distributions would start to include EXE files which need wine to run and GNU/Linux developers would be invited to write their programs for wine, because... well, whatever. *Then* I would also start to complain about that.

BTW. there are actually *much more* programs, that need wine to run, than there are programs that need mono to run. The difference is in how they are treated by distributions.

Jose_X said on Friday, 17 October 2008

>> Nonsense. Mono is free software. Writing software in Mono means contributing to free software, full stop.

You are repeating yourself from boycottnovell. Nothing has changed since then. Free software is free software, but that doesn't mean it is all good. Not all free software licenses are the same as you imply. BSD and GPL are very different. Who are the copyright holders and project leaders matter a lot. Developer mind share matters a lot or have you not seen how passionate the fights can get across competing free software projects. People don't dump or pick up a set of API over night.

Fact is that mono and dotnet favors Microsoft in various ways over every other vendor. You advocate favoring them over other commercial and noncommercial vendors if you advocate mono and dotnet spreading.

Writing free software that favors Microsoft is a waste of time, a distraction from time spent improving those things that don't favor Microsoft.

Jose_X said on Friday, 17 October 2008

cont

I'm sure you've noticed that Microsoft is the biggest threat to Linux and to FOSS. [FOSS on Windows doesn't exist because of the requirement to delegate to closed source Windows routines to carry out even the most fundamental procedures.]

>> It's tiring how people who don't have a grasp of the legal side of the issue - and often don't make the attempt to read up on it - try to spread FUD around.

Chris, either you fail to grasp some very important concepts yourself or you are being duplicitous which is worse.

Jose_X said on Friday, 17 October 2008

>> I'm no expert, but if Beagle and Gnome-Do were produced using Mono and C#, then I'm all for mono. [blah blah blah]

Nitin DB, obvious commercials are best served from from the sidebars. And make sure to add some graphics.

Jose_X said on Friday, 17 October 2008

>> What Miguel is in love with is a technology.

Balanced article, a reply from Miguel, replies from me (which would substitute as reply to quote above):
http://server.ericsbinaryworld.com/blog/2008/10/14/moonlight-whats-the-big-deal/

Honestly, I'd have to believe Microsoft developers or managers or someone would not be very skilled collectively if they could not find ways to keep important (lock-in) secrets between their interacting products and unexposed to any third party. I would also expect them to be shifting things around dynamically and statically with software updates to their products.

[Maybe their oldest products are mostly tamed, but I would not want to think about some hypothetical "reverse-engineering" half-time for their newer products, especially if that would vary over time. Yuck. This alone would be reason for me to want to use open source protocols. Other reasons being to defend against EEE, surrender no advantage, preserve/leverage existing investments, ...

Jose_X said on Friday, 17 October 2008

>> ..half-time..

lol, that should have been "half-life"

now for the half-time

Goblin said on Monday, 24 November 2008

I would liken Mono to a tame wolf. It may sit on command, but you wouldnt leave it with your chickens overnight.
MS (IMO) needs to be kept in check. It may sound petty to some when people talk about boycotting Mono, but I think it was this type of attitude that allowed MS to become the digital monster that it is today. Make no mistake, MS (IMO) doesnt want people using Linux. It wants everyone to be 100% to the core. You cant blame it, thats the nature of business. Does anyone think for one minute that if Mono was so great for the Opensource/Linux community, Novell would be sponsoring it? Its common knowledge (IMO) that Novell is the mistress of MS so why would MS sit back and allow sponsorship of something that would be good for Linux?

Am I being paranoid, or is this another way the tenticles of MS are reaching into Linux? Let us not forget Sun is pimping MSlive toolbar, whats next? Gnome packaged with Windows Messenger?

Advert

WHITE PAPERS

  • Legal risks: Employee use of the internet and email
    Exploring the challenges facing IT Mangers today and vital steps to ensure safe internet an email use by employees.
  • Phishing for victims
    This White Paper examines the phenomenon of phishing. It explains the potentially catastrophic threat it presents to all kinds of organisation. Exploding some widespread myths, it lights up the murky waters where phishing first emerged and where it continues to evolve. But it also highlights what your business can do to blunt the threat.
  • Challenges and opportunities of PCI
    The control framework implicit in the Payment Card Industry Data Security Standard (PCI DSS) provides an enterprise structure for improving operational, security, and audit performance.
  • Social CRM comes of age
    Who is this “social customer”? What strategies and tools does the new breed of CRM provide to do something about this?
  • Risk Management: Protect and Maximize Stakeholder Value
    What has held organisations back from a broader adoption of risk management programs?
*