OSNews reader Jim Strawberry writes: “The BSDvault guys did an interview with Jordan Hubbard not to long ago — unfortunately it was done as an IRC conversation and was posted as such — making it rather hard to read & follow. For this reason it didn’t really get much attention. The other day I took it upon myself to transform this IRC log into a real interview.” Jim received authorization by the original posters, BSDVault, and asked us to publish his revised and cleaned-up version of the interview with Apple’s & FreeBSD’s Jordan Hubbard.
BSDVault: We have all heard rumours about the upcoming FreeBSD 5.0 and the new features it will have. The most discussed and anticipated is probably SMPng and filesystem improvements. What do you feel is the “coolest” new feature, and which feature/improvement do you think will be the most noticable? Is SMPng and background fsck along with the filesystem tweaks really all it’s cracked up to be? Will FreeBSD be able to compete with other os’es that are typically used on multiple-cpu machines, such as Solaris and HP-UX, when it comes to SMP performance?
Jordan Hubbard: I think the coolest feature of 5.0 will be the ferret thread. This is a kernel thread which runs around throughout the system and randomly moves things around, playfully changes file modes, “bites” through open connections and just generally raises havok. We feel that this feature will make the computer more of a pet than a simple inanimate object.
Sorry. To be honest, I really don’t expect 5.0 to be something which really stands out to anyone but geeks. In other words, if it’s done correctly there will be very little visible impact, though there will hopefully be some visible performance gains. The biggest advance will be internally, how things are put together and how scalable the internal mechanisms are. This will allow 5.1 and other 5.x releases to perhaps be much more visibly impressive in some way.
What is the current status of SMPng? How do you think SMPng will fair against Linux 2.4.x’s SMP support when it is stable?
Well, if I had to sum it up in a nutshell, I would say “on target, though late”. The aims of SMPng are pretty grandiose; The complete multi-threading of the kernel, a rewrite of the scheduler, full preemptability and fine-grained resource locking. Naturally, everyone wanted to tackle all of the classic problems with making SMP scalable, not just one of them. So far, interrupt threading is working very well and a lot of the finer-grained locking has been done or is in progress. The scheduler rewrite is about to hit its first major milestone with KSE 3, which will be presented and discussed at BSDCon.
What remains now is a lot more irritating lock-pushdown work and performance improvements to some of the locking code. I think that in around 6 months, it will be very fair to compare it to the Linux 2.4.x code, I’m hoping even superior in a number of ways (both from a performance and a stability perspective).
Doesn’t having a fully preemtable kernel add the possibility of reducing overall data throughput? That’s what the Linux pre-emption code seemed to do.
No, since you’re not going to change reality. Fundamentally just because you can be preempted, you frequently
are. It just makes it possible to deal with real-time and asyncronous events in a much cleaner and more natural fashion. I don’t expect it to affect overall data throughput.
How do you deal with interrupts being disabled / locks being held for long time with preemption ?
1. You don’t disable interrupts for a long time.
2. In the worst case where you’re contesting a lock, you generally just get put back to sleep and the preemption essentially refused. Though, of course, you’d be instrumenting the hell out of the kernel in order to find those sorts of lock contentions and fix them.
What do you think about TrustedBSD on Freebsd 5.0?
I think TrustedBSD will continue to merge code into 5.x; That’s their charter. Other than that, it’s up to them to set their
Is the drm-kmod (hardware support for XFree86 4.x DRI) port going to be integrated into the core kernel/modules in 5.0?
I don’t specifically know if this is planned for 5.0, but I can say that critical mass for such a thing certainly seems to be building and it’s something which could easily get done in time for 5.0 — I use it myself with a Matrox G400 card and it
Does anything stand-out that is on radar for post 5.0?
I’m interested in what having a truly preemptable kernel will allow. It means there will be a potential for real-time applications, and perhaps interesting A/V work for example. Being able to leverage multiple CPUs in a truly useful way will make the n-way stuff much more interesting, whether it’s n-way internally (inside the CPU itself) or externally.
How do you feel about X [windows] ? Would it be feasable to mimick some of the better attributes of the OS X GUI with GNUStep or perhaps a BSD liscensed implementation?
Well, I certainly have been using the X window system for a long time and have written a fair amount of software for it; For what it does, it rocks but for what it doesn’t do, it really sucks. Don’t even talk to me about font handling or printing. I think that before you’re going to see X really get some decent applications, you’re going to have to finish the missing 5% of X — the part that was scheduled to take 90% of the time and so nobody got around to it. Plus, the whole UI war thing needs to end — Adobe is never going to port photoshop while nobody can answer “Which GUI environment is dominant and therefore recommended for use?”. I think X will probably remain the DOS of window systems.
When will sendmail be replaced by a more reliable MTA such as postfix?
I don’t think it will ever be _replaced_ but I fully expect the MTA to be an option in future FreeBSD releases. We’ve talked about it for quite a long time, so you can consider sendmail, postfix or even possibly (gak) qmail to soon be selectable options.
Recently, a Brazilian FreeBSD user group had posted a set of tools to make “live versions of freebsd” – FreeBSD ready to run on CDs – very easy to customize, etc. The tool set really works, and it seems as a good alternative to PicoBSD. Anyone considering it on the FreeBSD source tree like PicoBSD is today?
Well, first off, it’s not really an alternative to PicoBSD. PicoBSD can be embedded in very small (deliberately small) configurations, like flash cards or 1.44MB floppy disks. This Brazilian effort uses some of the same technology but is more of a “demo CD” feature. Other OSes, like Yggdrasil Linux, have had that going for years, so it’s not exactly a new thing, but I still think it’s cool.
There seems to be a lot of new I/O implementations at all levels on the way (3gio, hypertransport, serial ATA), are any of them definitive and close enough to start work on within FreeBSD? Is FreeBSD ever consulted about these types of proposals for standards?
I would say that of those, only serial ATA is really close. We have people already looking into it, although we don’t exactly get consulted about this kind of thing in advance.
When will we get Blowfish, AES, or whatever for user password encryption? Are export restrictions the problem?
I believe that’s already supported now. I see AES and blowfish support in libcrypto, although I’m not sure how one sets ones default password format to use them.
Does apple have any plans to help the freebsd project in any way? Funding, code, etc? They did use freebsd 3.2 as a starting point for Darwin, after all, it seems only fair to give something back to the community that made MacOS X possible.
The answer is “I don’t know”. I know Apple would certainly like to find ways of helping where it can, but people don’t fling money around much in this economy.
What effects, if any, have your ties to Mac and OSX have had on the Freebsd project? How do you feel towards the other BSD projects? Why when NetBSD was just starting did you feel it necessary to start the FreeBSD project?
There haven’t been a _lot_ of effects on FreeBSD from my Mac OS X work, but there have certainly been more lines of communication set up, and there’s a definite advantage to being able to communicate important bits of information back and forth — like security advisories and such. Some code has flowed in both directions, like the cool filesystem exersizer that Apple had which the FreeBSD folks were able to use to turn up 4-5 really bad long-term bugs in NFS, and even one in the soft-updates code that Kirk had been chasing for months. That was a very simple thing to do, but it had major effects. I hope to do more things like that as the opportunities come up.
As to NetBSD, we both started around the same time and didn’t even know about one another until we got big and well-organized enough to show up on each others radar. By that time we’d already formed a group and decided on a mission. It was becoming increasingly clear that each group had a very different mission in mind — You can’t force volunteers with dissimilar interests to work together when they’d rather just communicate and work with some other set of engineers who share the same interests. The net is big enough that you can reach critical mass without having to force fundamentally incompatible particles together.
What are your thoughts on pf and ipf?
I think there should have been more effort put into resolving the license issues, as we did, before going off and writing a whole new IP filter. Now we have 3, ipfw, ipf and pf. Whether pf had its genesis before or after OpenBSD adopted it [is besides the point], we now have 3 mainstream filters, and that seems a little silly.
I read recently that you were considering improving the startup scripts by following a paper from the NetBSD project. What other things have NetBSD and OpenBSD done that influenced you to implement them as well?
We take all kinds of stuff from NetBSD and OpenBSD, that’s what open source is about. I think the NetBSD startup stuff, for example, is pretty cool. We’re just trying to find enough bodies to finish that (the merge). I’m sure the NetBSD folks would like over 6000 ports in their ports collection too, but they have the same problem — we all share as much code as we have time to integrate.
Would you care to comment on what you are currently working on for FreeBSD?
Right now I’m just sort of taking some time to look at FreeBSD with a bit more objectivity than I’ve had in the past, and thinking about what I’d still like to see it achieve. Hopefully I’ve got at least one more ports-collection type of idea in me.
Do you still do any “REAL” development work with FreeBSD? What would he suggest to someone who was new to coding and that wanted to get involved and help out with the project / development?
I no longer do any REAL development work with FreeBSD, which is unfortunate since that’s the only part I ever really enjoy, so I’m trying to get away from the grunt work again and more into the mode of doing small bursts of “real” work.
What I would suggest would be to lurk on the mailing lists for awhile and just listen to what people are talking/complaining about. It’s a bit like crossing a busy street – the best way to learn how is to become good at judging your moment and jumping in. There’s nothing like being hit a few times to teach you that lesson, so don’t get discouraged if your first few efforts meet with scorn or indifference.
Is FreeBSD your os of choice? Do you still keep a windows box around for gaming?
FreeBSD for firewall, services, Unix desktop. Mac OS X for main desktop, office stuff and gaming.
How many people work full-time on the FreeBSD project?
I would estimate perhaps 20 on average, and at least a couple of hundred unique contributors each month.
I noticed there are not many females that contribute to the project, why is that?
Yes, why is that, I always ask. I have no idea. We’ve tried very hard to recruit some but the only two female committers we ever had wandered off without doing anything. There seems to be some time conflict involved, which I think has to do with the fact that most females try to have a life, where as guys the same age are quite willing to forgo any semblance of one. It must be a hormonal thing.
Do you have any worries about elitism in the FreeBSD community being damaging to the projects goals? Especially when dealing with linux users?
Nope. Slashdot has been complaining about elitism in the *BSD community since day one, and even before Slashdot it was something I heard was going to bring about the end of the world — We’re still here.
I recall an article a short time ago where the navy was pledging support for FreeBSD development. What do you know about the navy’s relationship with FreeBSD?
We have a strictly don’t ask, don’t tell relationship with the Navy; Sorry, no, in truth I don’t know — I haven’t heard much about that project in quite some time.
Can you comment on the general attitudes of companies when they are approached for a FreeBSD port — such as Nvidia for example?
Well, Nvidia has its own rep when working with the open source folks is concerned, so I won’t elaborate any more on that. Where we can make some kind of business case for it, they’re generally pretty receptive. It’s just making a business case that’s hard, and you can’t really blame the company for wanting to hear one.
Has Microsoft planned to implement an official version of their OS with BSD ?
It would certainly explain why Bill’s been looking at me strangely every time we have had lunch lately.