[geeks] State of the BSDs (Was: [rescue] Transplanting a Sun Fire V210 motherboard - PSU requirements?)

microcode at zoho.com microcode at zoho.com
Thu Feb 28 03:10:39 CST 2013


On Thu, Feb 28, 2013 at 03:51:05AM -0500, Mouse wrote:
> > If you're careful (in the OS) to preserve existing interfaces then
> > application code shouldn't break.
> 
> To cite the kind of breakage I've most often run into that violates
> this, adding a new call can easily produce conflicts with code that
> used the (formerly unused) name for its own purposes.
> 
> The most recent example of this I've run into is actually in the
> kernel, timer_tick, but I've run into it in userland too.  (Not
> recently enough to remember enough details to find an example.)

I guess this happens fairly often in UNIX. It's just another thing we never
have to deal with because of good documentation and conventions and
sensitivity to the issues of dealing with very large pieces of software, and
an OS that's developed very carefully with upward compatibility as an
absolute requirement, not an option. Everything that ran yesterday MUST run
tomorrow, without changes of any kind.

UNIX naming has always been an ugly problem. But this is all self-inflicted,
there are other worlds where this doesn't happen. 

> > But if you stay within the system as it's meant to be used,
> 
> I'm not sure how "meant to be used" is a coherent concept, here.  If
> the system provides the interfaces, how are they not meant to be used?

I meant, if you use OpenBSD as it's meant to be used, by relying as much as
possible on their ports tree, you're less likely to bang your head against
the wall. If you want your own OS you have to do what you've apparently
already done and then you're going to have other problems like getting newer
stuff you want to run on it. TINSTAAFL. Old news.

> Certainly there are potential interfaces which are neither advertised
> nor supported, such as (to pick an extreme example) calling pieces of
> libc with horrors like (*(int (*)(const char *, int))0x00721480)(".",2).
> 
> Any system on which compiling and running my own code is an unadvertised
> and unsupported interface is crippled to the point I'm tempted to call it
> outright useless to me.

Nobody is suggesting that. That gets back to the point of doing OS
enhancements and maintenance by paying attention and being careful not to
change interfaces gratuitously. Obviously some projects are better than
others at this. I thought that was what we were talking about, given some of
us aren't happy with Free or Net. 


More information about the geeks mailing list