|
Grex > Oldcoop > #361: OpenBSD: Discussion of appropriateness for grex and technical merits. | |
|
| Author |
Message |
| 25 new of 80 responses total. |
nharmon
|
|
response 25 of 80:
|
Sep 8 01:15 UTC 2006 |
Microsoft Windows 2003 Data Center isn't an option for Grex? *duck*
|
tod
|
|
response 26 of 80:
|
Sep 8 07:04 UTC 2006 |
re #24
So am I done with Devil's Advocate here or should I keep rooting OpenBSD?
|
twenex
|
|
response 27 of 80:
|
Sep 8 15:40 UTC 2006 |
What about OpenSolaris? If not, why not?
|
nharmon
|
|
response 28 of 80:
|
Sep 8 19:25 UTC 2006 |
Ever tried to install it on x86 hardware?
|
cross
|
|
response 29 of 80:
|
Sep 8 20:51 UTC 2006 |
Regarding #26; No, someone should do it. By all means, go ahead. If you make
someone scratch their head, that's a good thing.
Regarding #27; Becasue, frankly, no one is interested in OpenSolaris.
|
tod
|
|
response 30 of 80:
|
Sep 9 00:50 UTC 2006 |
re #27
I had coffee with Peter Gregory this morning so maybe I could talk him into
coming here to tweak it. I'm sure he'd be glad to do that right after he
reports this zoo to the CDC for its obvious threat to the Internet's mental
health.
|
cross
|
|
response 31 of 80:
|
Sep 9 05:40 UTC 2006 |
Grex is too insignificant for that.
|
tod
|
|
response 32 of 80:
|
Sep 9 15:31 UTC 2006 |
I'm just a bbs user.
|
naftee
|
|
response 33 of 80:
|
Sep 9 17:53 UTC 2006 |
i'm a party pooper
|
twenex
|
|
response 34 of 80:
|
Sep 9 21:59 UTC 2006 |
Re: #28, 29, correct, despite protestations au the contraire.
|
steve
|
|
response 35 of 80:
|
Sep 12 01:04 UTC 2006 |
So, I finally have extra free time to respond to this item.
First, I'll agree that the two only real choices for Grex are
OpenBSD and FreeBSD. I actually like FreeBSD, and its absolutely
the second best op system I know of. Had OpenBSD not been around
I'm pretty sure that both Marcus and I would have advocated that.
The comments Dan has made about the faults in OpenBSD are
interesting, so I'll comment on them:
- Potential admins less familiar with it. Thats true to a point,
but the biggest differences in maintaing the system are the lowest
level things, like disk management. I'm not sure that counts for
much, because anyone who wants to be staff (or a system administrator
in general) should be versed in multiple OS's.
- Differences between FreeBSD's and OpenBSD's ports system. Yup,
thats right, and the changes in the ports system by Marc Espie has
been nothing short of incredible. You can update a bunch of packages
now with really complete checking of dependencies, such that everything
is updated correctly.
- Significantly fewer ports available. In terms of raw numbers,
yes, OpenBSD trails, but I think the overall quality of them is very
good, and for Grex, most of what we have been using is already compiled.
The 4.0 package collection consists of 3600+ items for i386. Are there
other things which Grex might benefit from having that aren't in the
tree right now? Sure! But we can port them, and its a whole lot easier
to get stuff to OpenBSD than SunOS was becoming. So not perfect but
very good.
- Deficient Java. That is just flat out WRONG. Kurt Miller has done
a great job of keeping Java 1.3, 1.4 and 1.5 working. Java and OpenBSD
is an excellent combination.
- A less stable system because of overall less testing. Again, I think
that is just plain wrong. A lot of testing goes on for OpenBSD by a lot
of people, and when you don't have hardware problems, OpenBSD is just
rock rock solid. My main webserver at work will be seven years old in
a couple of months with zero problems, and less than 4 hours of downtime
in that period. My own testing of OpenBSD, keeping more than 100 processes
running continuously for more than 3 months last year proved to be more
reliable than MSUs power. Are there bugs? Again, sure.
- The engineering is less polished. I'm not sure how to respond to that.
I certainly don't think it is, but I'l quite willing to talk of specifics.
One of the reasons Marcus and I pushed for OpenBSD was to be in an
environment of trying to do things "right" over speed and flashy items
was important. Security comes from a lot of things, but attention to
little details, like string manipulation is important and provides
benefits that aren't readily forseen, ie fixing problems just because
something was done in a bad way. This means that various items in OpenBSD
aren't as advanced as in FreeBSD or others. Dan's examples of 1, 2 and 3
are correct in that there is room for improvement. I can't agree that
SMP support is "weak": I've seen multi processor systems and they
scream. They'd scream even more with kernel threads, yes indeed. Marcus
has bemoaned the lack of this for a long time. 6 starts to get into
areas where I can't comment that much on; I'm learning about more
kernel stuff. Suffice it to say that I'll agree that there is room
for improvement.
|
steve
|
|
response 36 of 80:
|
Sep 12 01:38 UTC 2006 |
Commenting on this comment:
>#13 of 34: by Michelangelo Giansiracusa (spooked) on Sun, Sep 3, 2006
(07:18): > If Grex moved to a more modern, flexible operating system you may
see > more staff members interested. There are no guarantees, however! > > The
fact that OpenBSD was pushed for its 'security hardness' has strained > the
interest of at least a few current and former staff members. And, > given
that, we have seen it has hardly proven a fortress either! Being > a security
expert, I can tell you for a fact that most security issues > are the result of
poor configuration and lack of diligent > maintenance/monitoring --- something
we have been lacking. OpenBSD (and > its push by a couple of former/current
staff memebers) has lost not only > the interest of others in terms of
participation, but also limited our > software base and chance of
modernisation.
I am utterly perplexed as to this statement. I don't see how OpenBSD could
be much more "modern"--hardware support in 4.0 has increased dramatically
with lots of new ethernet cards, Wireless cards, SATA and IDE componenets/
controllers supported, including some "1 Wire" devices, SD cards, audio
and GPS devices. There was a Slashdot article recently where some Linux
people were decrying the fact that OpenBSD better supported wifi than
they did.
So although a lot of the above isn't relevant to Grex, a whole lot of
modern hardware is supported. POSIX complance is very good. The "man"
pages are at the very top if not the top in terms of quality and accuracy.
I've given OpenBSD to many people and have gotten at least 10 comments
about how good the documentation is.
In terms of expandability, I don't see how Grex would EVER touch the
limits that it has. SCSI U320 controllers are supported, which is why
I spec'd out U320 disks -- we can have better disk throughput for less
than $300 if we wanted. PAE mode is now supported, so how much memory
would you like on Grex? 8G? 16G? We could do that (which would be nuts).
AMD64 support is excellent as well, meaning Grex could jump to that
platform far easier than our jump from SunOS to i386 OpenBSD.
I suppose you can fault the 1TB disk limit that OpenBSD's ffs has, but
again, Grex doesn't need that kind of storage.
So in terms of hardware flexability, there aren't any issues for Grex.
Software is of course another item, and here we've crashed into some
problems. There is a bug in the soft update code. *I* can't duplicate
it on some test systems I have, but Grex has bumped into it. Around
the time that we had some crashes relating to this I went looking in
the FreeBSD CVS repository and found that they've made changes to
the code, and I've found a person who has seen some of the problems
we've had with an earlier version of FreeBSD. Thats an issue, but
after turning it off we didn't notice a difference. The other issue
may be quotas. I'm not sure about that and need to investigate that
more.
pulling a paragraph from the quote:
> given that, we have seen it has hardly proven a fortress either! Being
> a security expert, I can tell you for a fact that most security issues
> are the result of poor configuration and lack of diligent
> maintenance/monitoring --- something we have been lacking.
This is only partly true. If the OS has problems, then no amount of
diligence is going to keep you safe. My example there is Windows. It's
definitely true however that if you don't do things right you're going
to have problems. OpenBSD isn't and can't be any different in that
regard. I applied a patch to the kernel in Janurary; there are
possibly others that should be, but on the other hand there are no
actual exploits for any of the problems listed in the securtiy updates
page, and if anything exists which can screw up OpenBSD, it gets
plastered very loudly: witness the OpenSSH bug in version 3.1. This
is NOT to say that we shouldn't be better than we have been about things
like updates. We need to upgrade to 4.0.
Something to remember is that the vast (better than 90%) Grex's crashes
have been due to faulty hardware, ram. I take a large amount of the
blame of that because I didn't correctly sniff the crashing to be ram
and I should have, as I've dealt with it before. Lately, Grex has had
uptimes of 72 days and currently 40 days. We didn't have enough process
table space which has since been corrected. Now that this has been
changed, Grex is stable. I note that some of the people who've complained
about OpenBSD have been strangely silent on this issue.
|
mcnally
|
|
response 37 of 80:
|
Sep 12 02:22 UTC 2006 |
I believe what mic mostly means by "modern" is "good Java support."
|
steve
|
|
response 38 of 80:
|
Sep 12 02:30 UTC 2006 |
Well, it does have that.
|
cross
|
|
response 39 of 80:
|
Sep 13 21:24 UTC 2006 |
It's the nature of grex that you can't easily see what you're responding to as
you respond. So, I'll respond to Steve's posts in parts, so that I can
actually see what I'm replying to.
I'll first thank Steve for responding. I always find these technical
discussions (really, they're more like debates) on grex fun. But that's just
me.... However, I do find that his post reads more like an advertisement for
OpenBSD and less like a seriously thought out technical argument. But more on
that as I go on.
The problems for potential administrators isn't just confined to low-level
interfaces; in fact, I find that the from the sysadmin point of view, the disk
structures are nearly the same (except that FreeBSD got rid of block I/O
devices a while back). While it is indeed good for a sysadmin to be familiar
with more than one system, as I think I acknowledged when Jeff posted it, it's
also useful for a system to conform to standard interfaces to minimize
differences. For instance, on grex, the BSD login.conf mechanism is used to
deal with grex's weird password hashing algorithm. But this is different
from, say, the PAM system used on FreeBSD and almost every other Unix-like
system out there. So administrators who want to deal with Grex's
authentication system have yet another - and in this case, not so trivial -
interface to master. Is this bad? Maybe not; but in a disaster, it might be
a real achilles heal.
OpenBSD's ports system is nice when it comes to the updating stuff, but I'll
say that (a) this is relatively recent (like, OpenBSD 3.6 or 3.7 or
something) and certainly wasn't a consideration when grex was switching to
OpenBSD several years ago. However, lack of port coverage, or outdated ports
certainly was, and certain applications (like aspell) were ported to grex by
hand instead of using the ports collection. Consequently, the process for
putting grex together required many manual steps that, on FreeBSD, could have
been automated. Why expend precious staff time and energy porting
applications to OpenBSD when they're already ported to FreeBSD? And the
OpenBSD 4.0 packages collection isn't particularly useful to look at, since
OpenBSD 4.0 hasn't been released yet (though, if I'm not mistaken, it should
be out soon).
If Java support is so good, why hasn't it been in the ports collection until
recently? Users have asked for Java since this version of grex went online,
which has been over a year (i *think* nearly two now). Attempts to install it
from ports haven't met with much success - because it hasn't been in ports.
Indeed, it's not in /usr/ports on grex right now.
And of course OpenBSD is less tested. Quite simply, FreeBSD goes through more
cycles in a day than OpenBSD probably does in a week or maybe even a month.
That's just more testing, whether formal or not. And experience with grex has
shown that OpenBSD is anything but "rock rock solid." Indeed, the softupdates
related crashes weren't due to hardware by any accounts, and yet the system
crashed more than once from it (sometimes staying down for very long times
indeed). Since moving to OpenBSD, we've seen several extended outages that
were not related to hardware bugs: this is not the hallmark of a reliable
operating system. Now, it's true that grex could have benefited from more in
the way of server class hardware (and I never understood why, after all the
noise that was made by Marcus about ECC memory, non-parity memory was
purchased instead), but it's also impossible to deny that the software has
been unreliable at times. Empirically, Steve's claim that the software is
reliable enough for grex have already been shown to be false - on grex itself.
As for the engineering being less polished, this is my sense rather than
something I can formally define. My impression is that there's a small group
of individuals who guard the source base diligently. They are quite "good" at
what they do in some senses, but leave out things like formalized process,
setting project milestones and tracking them, etc. On the other hand, FreeBSD
actually has something resembling a process and a design guiding their
implementation. OpenBSD is more, "hey, I thought this was cool, so I made it
happen...." My experience is that that can work, but only to a point, and
after a while, you hit a critical mass point where the model breaks down and
you need to impose some sort of order onto the process. OpenBSD just isn't
there.
With respect to SMP being deficient, I was specifically referring to the lack
of fine-grained locking in the kernel and the fact that most of the kernel can
only run on one processor at a time. This inherently limits scalability in an
SMP setting. This is what Steve refers to as, "kernel threads": a multi-
threaded kernel. Unfortunately, problems in Unix's basic design are so
deep it requires massive effort to get a truly multithreaded kernel going
without starting from scratch.
Given the above, I fail to see how OpenBSD is doing things "right." So they
audit their source base looking for string problems and using some sophmoric
routines they wrote to fix them: so does the FreeBSD team (indeed, members of
the FreeBSD team read the OpenBSD commit logs and track those changes, too,
applying them to their own source base!). Some of the responses Steve makes
to my issues with OpenBSD weren't valid at the time OpenBSD was chosen for
grex, and have only recently become factors: ie, OpenBSD is only now catching
up. Hmm.
Yes, OpenBSD leaves lots of room for improvement, but what's the point of
sticking it and waiting for them when FreeBSD already gives you all the
benefits today? And why, *really* was it chosen over three years ago to
run grex?
|
twenex
|
|
response 40 of 80:
|
Sep 13 23:48 UTC 2006 |
STeve mentions that "FreeBSD is the second best [OS]" he knows of. What I'd
like to know is, what's wrong with NetBSD, either as GrexOS or in general?
|
steve
|
|
response 41 of 80:
|
Sep 13 23:49 UTC 2006 |
Why was it chosen? In just a few words, paying attention to security
issues, starting with strcat(). I'm in a meeting right now. More later.
|
cross
|
|
response 42 of 80:
|
Sep 14 01:10 UTC 2006 |
But FreeBSD does the exact same thing. Strlcpy() and strlcat() are certaily
in libc on FreeBSD, and as I said, the FreeBSD team tracks the OpenBSD source
changes - as well as doing their own auditing.
How about a comparison of exploitable bugs between the two since the time grex
has been online running OpenBSD?
|
steve
|
|
response 43 of 80:
|
Sep 14 03:43 UTC 2006 |
Right, but where did they come from? OpenBSD. FreeBSD *does* do a whole
lot right. I have said before and will say again that its a great operating
system, and absolutely the second best choice for Grex. You might be surprised
to learn that I steered a friend from OpenBSD to FreeBSD, given the nature and
load of a web site being spec'd out. But for Grex, I think--I know--that we
need every bit of help we can get.
A comparison might be interesting, but there is more to things than
a numeric count. I'm running out of time right now, sigh. A lot of
the external things (sendmail, bind, openssl) are going to be very
similar, so I'll bet that the majority of interesting differences is
going to be kernel/library things in each os.
|
spooked
|
|
response 44 of 80:
|
Sep 14 10:34 UTC 2006 |
What Dan says a couple of posts back I have said previously in a shortened
version, and I agree 125%
Grex does not need OpenBSD (even for security)... and OpenBSD has proven
to be horrendously unreliable.
Oh, I only have to laugh (because it beats crying) your comments of 'full
Java support'.
And, I'm rather peeved - let it be said Steve that you promised me when I
first joined Grex staff to show me the reeping process (and despite many
reminders) you never did. That is not even mentioning your bias and
zealous towards OpenBSD...
|
cross
|
|
response 45 of 80:
|
Sep 14 11:44 UTC 2006 |
Regarding #43; You totally discount FreeBSD's own auditing efforts. They
don't *just* "get it from OpenBSD." And I'd say that their auditing effort
is roughly contemporaneous with OpenBSD's and has been going on for years.
They even audit many of their ported applications, and release security
advisories for insecure ports. Can you point to any independently verifiable
data that says that OpenBSD is more secure (by any metric) than FreeBSD? Or,
again, is this your intuition? I'm not saying that intuition is bad, but
given OpenBSD's less than stellar track record on grex, I think some
justification beyond, "they do it better" (which has empirically been shown
to be false) is warranted.
|
cross
|
|
response 46 of 80:
|
Sep 14 12:43 UTC 2006 |
Regarding #36; Jan Wolter, who did much of the early work preparing grex to
move to OpenBSD, found that the documentation was actually quite poor. Either
things weren't documented or, worse, were documented incorrectly in many of
the programming interfaces that mattered to us.
With respect to stability now: Sure, now that the bugs in the OS have been
worked around, it's fairly stable. Now that we've upgraded, we've fixed the
issue where users could cat /dev/tty* and see passwords being typed in. Since
turning off softupdates (a very useful feature for a system like grex) the
filesystems hasn't caused us any crashes. Since increasing the sizes of
various tables in the kernel, the system hasn't paniced from having too many
processes running (why would that cause a panic, anyway?). It's clear that
we can *make* OpenBSD relatively stable.
But why doesn't anyone ever ask the question of WHY we have to do that in the
first place? The other operating system under review does't seem to have
these same issues, so why patch OpenBSD when we can just run something that
doesn't crash? I would *really* like to see some sort of sound technically
oriented answer to this question. If you want to say that FreeBSD would crash
in the same way, I'd like to see proof: my contention is that it would not.
As for the bad RAM.... Originally, when the question was what platform to
move to, one of the major objections that Marcus had to i386 was lack of ECC
memory. I continually responded that one could get ECC memory for the i386,
one just had to choose the right motherboard. Regardless, I think it was you,
Steve, who suggested non-parity memory. In retrospect, this seemed like a
very bad idea.
|
steve
|
|
response 47 of 80:
|
Sep 14 16:58 UTC 2006 |
Mic, how the in the world is OpenBSD "horrendously unreliable"? We had
hardware problems earlier. NO OPERATING SYSTEM IS GOING TO WORK WELL WITH
BAD MEMORY. Say whatever else you want about OpenBSD, but to so completely
misrepresent the stability problems we've had as endemic to the operating
system itself shows that you either don't understand the issues here, or
you are really blinded by your dislike of OpenBSD.
We've had crashes due to hardware problems, a failed disk, an obscure bug
in the soft dependency code and kern.maxproc not set high enough. I still
can't reproduce the softdep bug myself, and that I know of no one else has,
else it would have very likely been in the OpenBSD bug tracking system.
Every OS needs to be tuned to some extent. Now that we've done that we've
had uptimes of 72 days, and currently 42 days.
That is "horrendously unreliable"? Give me a break.
|
steve
|
|
response 48 of 80:
|
Sep 14 17:02 UTC 2006 |
As for my not showing you the reaping process, I guess I never did.
Thats my fault, though I'll point out that crabbing at me more might
have done something (maybe). Still, I should have done that, and you
are right. As for Java, take a look at the current state of Java and
tell me what is missing. Yes, its 4.0 and not what we're running
right now, but its there. Yes, we need to upgrade. The open source
world is a moving target.
|
steve
|
|
response 49 of 80:
|
Sep 14 17:29 UTC 2006 |
Re #45: I do not totally discount FreeBSD's auditng efforts. I keep on
saying--and you don't seem to hear me--that FreeBSD is a very good operating
system, second only to OpenBSD. I'm getting tired of having to say this.
If Grex magically appeared on a FreeBSD system in the next hour, it would
work. I hope I'm getting through. It's a matter of degrees.
Crap, I'm out of time at the moment.
|