SMP On OpenBSD, Coming Soon
Lord of the OpenBSD writes "At long last, SMP development on OpenBSD looks to be gearing up. One person is now doing full-time funded development on SMP. Project leader Theo de Raadt is now asking for funding for a second developer. Theo has announced that SMP support for i386 is planned for the OpenBSD 3.6 or 3.7 release, the first of which is due in 8 months."
-Truth
I had a steady B+ in my AI class until I failed the Turing test...
I played around with obsd a few years ago, and I liked how small and tight the system is. At one point I even setup an obsd web server, but the thing kept crashing. Never did find out if it was softare or hardware related (it was located offshore and nobody in the vincinity could troubleshoot it effectively). Other than that, I really liked the OS. The man pages are absolutely top-notch, unlike some of the Linux man pages (in Debian, lots of man pages say stuff like: "this page is a placeholder; there is no documentation" or refer you to the GNU info docs). I also like the firewall more than iptables, which was really confusing at first. /etc, and having to figure out which files were added or deleted since the last version. Lots of room for error, there. Compared to Debian, which can be upgraded by only typing two commands, it's just no fun. Especially if you're trying to upgrade a server that's thousands of miles away, and can't afford to fuck up.
Anyway, the main thing that bugs me about obsd is that it uses the ports system. It does the job and all, but when it comes time to upgrade your OS, it's a real PITA. I remember having to manually edit files in
who said they are going to reinvent the wheel?, porting kernel space stuff is not simple, and the common base between the *BSD is not that common anymore.
OpenBSD does not have a good track record of major architecture improvements. For example, in the wake of the PR FreeBSD got for John Dyson's VM work, OpenBSD adopted Chuck Cranor's UVM system, integrating it into the last of the 2.x releases. Cranor is a very smart guy, but OpenBSD's stewardship of Cranor's code has been pretty awful --- lockups, panics, and various other problems remain in evidence, each answered with de Raadt's "UVM was just a research project from Cranor, it's not our fault" excuse.
FreeBSD has years worth of head-start on OpenBSD in SMP right now, and a much larger (and more experienced) core team. In addition, FreeBSD has corporate sponsorship (from Juniper and Apple, to name two). Despite these major advantages, FreeBSD SMP remains a work in progress.
de Raadt has had a religious perspective on SMP ("most modern applications aren't compute-bound! SMP is not the way to scale large applications, lots of individual machines are!") for almost a decade. What evidence do we have that he has seriously changed his mind? This seems like more of a desperation move, trying to ensure that OpenBSD doesn't fall behind NetBSD to become the least-used open source operating system available.
I predict years of instability and excuses.
FWIW: OpenBSD has its roots as a splice from NetBSD; both it and NetBSD very similar, but in some respects NetBSD has "modernised" itself more than OpenBSD, yet OpenBSD has focused on security (and spawned the OpenXYZ series
Compared to FreeBSD, they're different beasts: NetBSD and OpenBSD fit the niche of embedded products, AP's, firewalls, home gateways, etc - all very good nice (NetBSD's portability and OpenBSD's security). FreeBSD is enterprise class, you don't typically see it used for embedded products / etc, but more in hosting and server.
Compared to Linux: Linux strength is that does all of the above across the board (it fits everything) and has a better user/desktop experience, but it doesn't do as well as any in any of the individual niches above.
I'm a long-time OpenBSDer (I'm even way up near the beginning on their donations page, which is as close as I'll get to being cool -- it's far more important than a low Slashdot UID, which I also have, as you can see), and I remember Theo mentioning a couple years ago that he was thinking (at the time, anyway) about having the second processor do nothing but crypto.
What's his plan now? Just typical SMP, I'd guess -- but I thought his other idea was cooler. On-the-fly encoding and decoding and hiding of jpegs from wives and whatnot. Very useful to... ahem... some of us. Not me of course.
Just wondering about the current prospects for something to keep my uh.. important financial documents... from, uh... the government? Yeah, the government, that's it.
I'm not normally an irrational zealous dickhead, but I figure "When in Rome..."
which is something i don't understand. why haven't they been able to incorporate other BSD code for SMP? i understand the GPL limitations, but BSD code doesn't have the same burden (forced gpl'ing, etc.). isn't that the whole point of open source?
My problem? I was perfectly gruntled, until some numbnuts came by and dissed me.
SMP is so old a technique that almost all of it is so old that any patents have expired twenty years or more ago. The one exception in the Linux case is RCU, which is a scaling technique patented by IBM for which GPL use rights were granted but not I believe BSD use rights.
Bad SMP can be done in a couple of weeks by anyone, good SMP is a little harder and its nice to see OpenBSD joining in the game as SMP is now at the on processor level so it is becoming important.
I think it's pretty fast, given that it's doing much more than most other systems. All that crypto and random goodness doesn't come for free. From "Practical Cryptography": "There are already enough fast, insecure systems. The world doesn't need another one."
Even on UP systems, it's still slower than almost everything else in key areas (disk performance being the big one).
Have you tested that with softupdates enabled? OpenBSD's default disk performance reminds me of FreeBSD's old performances before softupdates became a standard setting. It's another security-vs.-performance tradeoff: the BSDs mount their filesystems in synchronous mode and highly discourage using async, while most Linux systems use async by default.
Dewey, what part of this looks like authorities should be involved?
As I understand it, OpenBSD diverged from NetBSD before SMP was available for any nonproprietary BSD. The divergence in the codebases that has taken place since then makes it impossible to simply import much of another strain's implementation.
Maybe there will be some re-use of code (and ideas), but I suspect the OpenBSD team will be building this thing from the ground up.