OpenBSD SMP In The Works
Cajal writes "Four students at the University of Waterloo are working to add SMP support to OpenBSD as part of the Spinlocks project. More information is available in a story
at the OpenBSD Journal's site. They expect to have an initial working MP kernel in January."
And it makes for a good research project as well.
But I ask here, as an honest interested person, why one would wait until SMP is correctly and efficiently implemented into OpenBSD when they could simply use any old recent version of Windows or Linux on SMP hardware to get symmetric multiprocessor support for a high-load server?
I understand that Research -> Products -> Corporate $$$, but is this perhaps too little too late for OpenBSD?
If you celebrate Xmas, befriend me (538
It doesn't matter which CD set you buy, what's important is that the project gets the money.
You can always get the latest release by FTP.
So why don't you just buy the current release now.
-jfedor
Troll.
OpenBSD has had IPv6 since version 2.7 out in June 2000.
And for the record, FreeBSD has had IPv6 since March, 2000, version 4.0
And let's not forget who brought you OpenSSH.
SMP isn't the top priority. Giving up stability and security for the latest and greatest features are not what everyone wants. A friend of mine complained about FreeBSD not having good SMP support, I asked him if he had an SMP machine, he said "No." I hope that is enough to illustrate my point.
Sorry to go off on this, but mod the parent down if you mod me down please. People always trounce on any of the BSD's while praising Linux here.
Hear that? That's my karma in the toilet. Flush.
Ok, I grant your comment is funny, but I'm a Linux user (and sympathizer :) who grew up on BSD, and it really pains me to think that any OS (Solaris, Linux, HP/UX, etc) needs to be viewed as a competitor to BSD rather than a fellow citizen in the realm of UNIX and UNIX-derived OSes.
Each has its niche, and while some of those niches wane over time (e.g. SCO, IRIX, DG/UX), others flourish (Linux, FreeBSD, Solaris) and that's a good thing. They continue to flow into the containers that they define, rather than having to attack eachother as many products do.
It might. Even if Theo doesn't accept these patches, the patches will still be available. I just hope they keep maintaining them and keep them up to date if Theo says no for any reason.
OTOH, it may be that SMP code is more difficult to audit, and that this is the reason it won't make it in. Remember, SMP allows for the possibility of race conditions within the kernel itself, which would be a nightmare to validate for security.
If Theo would deny this work, it would probably be on those grounds. It was indeed one of the reasons he mentioned to me.
The most likely place for race conditions to occur on SMP systems is with threading. I have yet to see a totally solid threading implementation that is totally devoid of race conditions of any kind wrt locking/freeing/semaphores/etc. Usually kernel developers solve most of the problems by passing one big lock around (like linux does, and FreeBSD (ever heard of Giant?))
All in all good news that these guys are working on it indeed. My main concern is seeing this project die because it has the chance of being shot down by Theo. I really hope they persist in pushing Theo to accept it. I also hope they have a lot of patience while dealing with Theo, he's also not the easiest to get along with :)
There are some ego questions, Theo used to work on NetBSD. As smart as he is, and productive as he is, they found him abrasive and let him go. He hasn't changed much, and isn't likely to, and the world's a better place for having OpenBSD. From what I understand FreeBSD and NetBSD forked around the same time from the original BSD code, and 386/BSD. 386/BSD was kind of showing its rough edges, and people wnated to clean it up. FreeBSD went the x86 route, NetBSD always tried to be multiplatform.
/etc/rc startup, pioneered in NetBSD. A lot of the userland is the same, and there's some action on getting a standard ports system.
That said, there is a lot of code sharing. The USB core is exactly the same in both Net and Free, probably OpenBSD as well. systrace was originally slated for NetBSD, ended up in Open. 5.0 is getting a new
In some respects, there's more sharing in BSD than in some of the Linux distros. Since all the owners of the BSDs are essentially non-commercial, there's no real incentive to make proprietary stuff. In some situations, the BSD license is easier to share stuff, but it really doesn't in this case - if they were all GPL they could share things.
I understand what you're saying, that it diverts attention and resources. But you also have to realize they pick up thing as well. There's some cross pollination. I believe the SMP stuff is kind of taken from BSDi, if not the actual code then at least the general idea.
The other thing is "one-size fits all" gives you a huge XXXXL product. If all the things went into just one or the other, it would be pretty bloated. The focus of FreeBSD (optimized for Intel) is in respects incompatible with NetBSD (ultra-portability). Ask anyone who's worked on gcc about the problems of optimizing portable code.