Jeremy Allison - interview

From LXF Wiki

Keeping the faith

He's an open source hero for quitting Novell, but Jeremy Allison just wants to work on Samba. And play Half-Life.

The Linux world was still pondering the significance of Novell's alliance with Microsoft when news broke last December that Jeremy Allison, Samba co-creator and Novell employee, had quit the company in protest over this "mistake" which he saw as "damaging to Novell's success in the future" It was clear that this alliance would have strong reverberations throughout Linux.

Allison, widely applauded by many normally disparate factions of the computing sphere for taking such a principled stand, found that he was completely unable to square Novell's patent agreement with his free software background. "My main issue with this deal is I believe that even if it does not violate the letter of the licence it violates the intent of the GPL licence the Samba code is released under, which is to treat all recipients of the code equally." he wrote at the time in his actual email of resignation. His objections on behalf of Samba raised some interesting questions about the tension between corporation and community, and how hackers can continue to balance their free software contributions with paid day jobs, even if, in Allison's case, the day job involved interesting and valuable work such as corporate adoption of SUSE Enterprise Linux.

As has been widely reported, Allison has since moved on to Google, where again he is given full licence to work on Samba, the interoperability technology. Nick Veitch met him at the LinuxWorld conference in New York.

Linux Format: So, where shall we start?

Jeremy Allison: [Laughs] I don't know.

LXF: Let's start with the painful stuff ­ the not-working-for-Novell-anymore business. Do you think that it is possible to pursue commerce in the Linux space without coming into a possible conflict of interest?

JA: Sure, yeah. I'm hoping that once the GPL v3 comes out and some projects move to that, that things will change and Novell will... Basically, things will be happy again.

LXF: Do you think Novell will sign up for GPL 3 happily?

JA: Yeah. From what I understand, the GPL v3 things aren't going to hurt Novell's business at all. Note that I'm only talking about Samba stuff here.

LXF: I guess GPL 3 will clear a lot of things up.

JA: I think so. I think we need it.

LXF: Some of the people who have been criticising GPL 3 seem to be doing so because it contains political language as well as legal.

JA: But the GPL always has. Remember, it's the GPL Manifesto in the original licence. It's a political statement, and that has always been the case.

LXF: It's impossible for it not to be political. But in some ways I think it does put people off. They think: "Do I really have to sign up for this?"

JA: Here's the way I look at it. I was at the London conference [LinuxWorld] October, I think it was ­ and there was a lawyer there saying: "Oh, the GPLv3 is this horrible Communist Manifesto of evil proportions, compared with the wonderful, easy-to-understand GPL 2 it's awful." And I just burst out laughing. Over the past 15 years I have sat and talked to so many corporate lawyers who were like: "GPL v2: this is communism, it's horrifying!" And I said to him: "How do I know that in ten years' time you're not going to be saying that the GPL v4 is terrifying ­ not like this sensible, moderate GPL v3!"

LXF: I had an argument with someone about hardware. He was complaining that Linux was still difficult and horrible to use, and people didn't understand it. He tried it, but it didn't work with any of his stuff.

JA: What, Red Hat 5.1 was that?

LXF: It was Ubuntu ­ quite a recent version I think. But he said, "It won't work with my iPod," for example, and I told him that there are various things you can install that will happily share information with the iPod. And he said: "Yeah, but it won't play any of my music because it's all in AAC" or some other stupid DRMed format. I could not convince him that that was Apple lock-in rather than Linux not working.

JA: So Linux doesn't work for him. He's essentially got an application that he needs. There are a lot of people who need Windows for the same reason. If there's an application that Linux doesn't do or whatever, I'm fine with having to say: "OK, use Windows." I don't want to make people do stuff... Except my mother, who I use as a test bed!

LXF: It's just annoying sometimes when people assume that Linux is being rubbish when there's no way in the world that it's ever going to play DRMed files from iTunes.

JA: Going back to Novell here, the thing that I don't think has been made enough of is the deployment of 20,000 Linux desktops at Peugeot by Novell. You can't say that Linux isn't ready for the business desktop when Peugeot is rolling out 20,000 business desktops. That was a project I was working on before I left, and I played a very small part in it. And you're not talking about desktop machines here that aren't going anywhere, that are only going to be used by a graphic designer or someone who expects to use Linux tools: you're talking about people with laptops who expect to be able to take them home, work disconnected, use them in hotels, use VPNs ­ and all this stuff works.

LXF: Of course, Novell has deployed Linux on its desktop already.

JA: If you want to know about Linux on the desktop, to be honest, right now they're the people you talk to. Or my mother.

LXF: What's her favourite flavour of Linux right now?

JA: At the moment she's touring SUSE 10.1, but I shall probably migrate her over to Ubuntu. I'm thinking of giving her one of those Mini PCs.

LXF: Let's talk about Samba for a bit: what's going on with Samba?

JA: There's a lot of development. The development has been ratcheting up and up and up. There are now four independent CIFS clients, independent from Windows. So there's Steven French's CIFS in Linux, there's a client in Mac OS 10; I wonder if I can talk about the other one... let's just say that A. N. Other big Unix developer is also taking the Darwin code and creating another CIFS client, and I really want to help them do that. Then of course HP have their Sharity-based client.

So there are four different CIFS clients; all of which are implementing the Unix extensions. At that point it gets interesting enough for people like NetApp and EMC to say, "If you write all these extensions up on an RFC, maybe we can put them in our code." Then you have essentially an alternate version of the CIFS protocol to run on the desktop. Because my theory is: everyone is going to run CIFS on the desktop. NFS v4 or the other file-sharing protocols for the back-end, that's fine. But on the desktop, everyone has to have Windows, so they're already running CIFS, and to to make the other desktop systems play well with that they're going to have to run CIFS too. But if you could have a variant of CIFS that's tailored for Posix, then essentially you've embraced and extended that protocol to be more useful for yourself. Having four independent clients doing that is a diverse enough codebase that it shakes out a lot of bugs, it shakes out a lot of implementation details, and it basically gives a strong ecosystem. And then there are all the variants of Windows that everyone has to support anyway.

So there's that going on, there's all the stuff with the Winbind disconnect operation, which was pioneered at Novell and is used in the rollout in Europe, that stuff is so cool. I don't work there any more, but that stuff is really cool.

Then there's the clustered Samba that Tridge [Andrew Tridgell] is working on [CTDB], so I've been learning some good coding habits.

LXF: At last!

JA: At last, yes! I'm in a place full of people all saying to me: "You're an idiot ­you should be doing it this way!" And I'm like: "You know what? You're right!" We're actually refactoring a lot of the internals in Samba. It's a bit like cleaning out the Aegean Stables: you do it one stall at a time. We're cleaning out all the old code. I liken it to being on one aeroplane and building another aeroplane at the same time ­ transferring the parts over while trying to keep them both flying. Which is fun.

LXF: You obviously still enjoy it as well.

JA: Yes. I like doing the code.

LXF: How long is it you have been working on it now?

JA: I think it's about 12 years, maybe 15. It's been a while.

LXF: How do you manage to keep motivated to do it?

JA: Because it's always changing. It's like plumbers: some people enjoy being plumbers because they're really interested in sewage, and I'm one of those people. You just polish stuff, and it's like: "Well, that's shiny, but we could make it shinier. We could bang this part of the pipe and make it smoother." I don't know. Why does Linus like doing the kernel? Why do the Apache guys like doing Apache? You lose some people along the way, you gain some people along the way, but it's a fun project; it's still fun to do. It's cool that you can go in to Fry's and there are all these boxes and you know they're running your code. And then you buy one of them and have a look at it and go: "Oh my God, they're running 3.02! That thing's got so many bugs in it!" One of the NAS vendors talked to me recently, because Vista came out, and everything broke for them. And I was like: "Why did this break? We tested this and tested this!" And it turns out that they were running it in shared security mode. "Didn't you guys get the memo? We deprecated that five years ago!"

LXF: No one ever complained before.

JA: That's right, yes, so we're fixing it. It's fun; there's so much to do.

LXF: Do you never get the urge to do something else for a while?

JA: I remember going off into the Kerberos world for quite a while ­ that was back in '95, '96 ­ and also doing some of the Cygwin stuff. If it were just doing the same file-serving code over and over again, yes, I probably would have got bored. But Samba now includes massive chunks of Kerberos, LDAP, dynamic DNS update, crypto stuff, doing POSIX CIFS extensions, helping out with the Linux kernel, helping the Mac guys out with the Mac stuff, stream support... What's that Japanese game ­ Katamari Damacy, something like that ­ where you're rolling a big ball around the place and the goal is to get more stuff stuck to you? It's kind of like that.

LXF: There's almost a complete OS there.

JA: My joke was that at one point we would rename SMBD to NTOSKRNL.EXE and have done with it. That's not very politically correct, but... The Winbind stuff is leading us into replacement of the NSS interfaces, because I don't know whether you've noticed this, but NSS sucks (that's the name server switch interface). This is one area where Windows really has it right and they are way, way ahead of Linux and Unix. The one thing that Windows has got right is that they deploy extremely large directory services around the world. Look at a modern Windows interface: you want to add an ACL on to a file, right? Previously in NT4 and some of the earlier stuff, you'd bring up a dialog box and it would say, you know, List Users, right? There is no List Users box any more. The reason for that is that to list the entire set of users that you could possible apply to a file could mean contacting DCs (Domain controllers) in Europe, Bangalore, Japan ­ you simply can't do that. It might take tens of minutes. Half of them might be down, you know?

So what you have now is a search interface. If you want to add a user, you enter a search query. This is what is needed. Right now we are constrained to the POSIX/NSS interfaces, which are "start enumerating user, get the next one, get the next one, get the next one" There's no, "find me all users beginning with V" for instance.

LXF: Is it still more beneficial in some ways to see what the Windows guys implement and learn from the errors that they're making?

JA: Oh yeah, absolutely. And hopefully they learn from the things that we do as well. The whole point, at least for me, is to learn from each other and use the scientific method to make everybody's software better. For me that's what open source is: it's the scientific method applied to creating software. You don't get that by only looking at the stuff that you do; you have to look at many other different systems to learn what they did right and what you can possibly learn from them.

LXF: What exciting things are you looking to for this year? Is anything exciting going to happen?

JA: What, you mean in Samba? There's just a ton of work, a ton of work. I want to make it easier to provision remotely, so you can roll out Samba servers really easily. What I'm hoping is that this year will be the year that the distros take Windows interoperability seriously. Novell showed than the way on that, so I'm hoping that Ubuntu and Red Hat will say: "Hey, we need that too!"

LXF: I think the Ubuntu guys are already working on that.

JA: If at the end of the year seamless Windows interoperability ­ fitting in to Active Directory or whatever ­ is a given, and everyone has it, everyone can do disconnected operation with their laptop, that would be very exciting for us.

LXF: Is that achievable?

JA: Yes. And especially because I don't have to do the work! The code is there, it needs adapting, it needs putting into the distros and they need to come up with management interfaces for it. And that's the stuff we do an awful job at: we're terrible at it. I like Ubuntu: it's nice, it's pretty. It's one of those distros where everything worked out of the box, that was nice. I've got this HP photoprinter and that worked out of the box; there's a camera plugged in and I've imported everything into F-Spot, I've got a movie camera plugged in and I copy the MPEGs off and burn a DVD ­ it just works.

LXF: You'd be hard pushed to do that on Windows even.

JA: I know. The problem with some of those apps is that they're different from some of the apps that Windows users use, and people don't like change. And the games suck. You can't play, I don't know, whatever the games are. I keepup with Half-Life, but...

LXF: That's going back a bit!

JA: Well, Half-Life 2. I will put whatever effort necessary into Wine to get that to work! That's probably what takes most time away from Samba.

LXF: But I'm sure a quick spot of shooting big guns gives you great ideas...

JA: No, I just like killing things. LXF