Re: boot banner project

From: Charles Swiger <cswiger_at_mac.com>
Date: Wed, 4 May 2005 19:56:55 -0400
On May 4, 2005, at 6:36 PM, Warner Losh wrote:
>> NEXTSTEP never did; and neither does OS X:
>
> Nexstep is mach based, not BSD based.

I've seen NEXTSTEP listed in some BSD family trees, and not in others.

NEXTSTEP, or NeXTSTEP, or NextStep, (the all-caps is easiest, and makes 
publishers happier) was a BSD-4.3-reno userland, libc, and BSD system 
call layer as part of a Mach kernel, intermediate between the CMU Mach 
2.0 and 2.5 releases, lightly salted with a few SysV-ism's from Sun 
(who also provided the code for RPC, NFS, and NIS).

I still have a 33MHz NeXT TurboStation on my desk.  It makes a very 
nice greyscale display for handling lots of Terminal windows logged 
into other machines for monitoring and remote CLI administration.  
NEXTSTEP is a BSD-based Unix.

> OS X is FreeBSD based, so clearly they changed it :-)

Since neither of us are nitpicking :-), be aware that OS X (aka 
"Rhapsody" at the time) was originally derived mostly from stock 
BSD-4.4lite and NetBSD by Wilfredo Sanchez, Justin, and others on 
Apple's BSD team-- NetBSD had better portability towards PPC, and a 
lower integration threshold, since the FreeBSD sources are more tightly 
integrated and somewhat more difficult to migrate.  Other parts came 
from OpenBSD, and FreeBSD, and since then, OS X has tracked FreeBSD 
more closely. [1]

Perhaps Jordan Hubbard has something to do with that, too.

>> Likewise for the majority of UNIX systems I am familiar with (Solaris,
>> Ultrix, HP/UX).  In the case of Linux, or a few other systems, they
>> would use a POSIX shell like bash or ksh instead, which are almost
>> entirely backwards-compatible with /bin/sh.
>
> Ultrix/mips and Ultrix/VAX did have /bin/csh as their root shell, at
> least in early versions that I used in the late 1980's.  Solaris is
> SYSV based with some BSD bits added to that base, so isn't of BSD
> orgin.  HP/UX likewise.

I infer that POSIX compliance is not very important to you.

> I'm not looking for a catalog of systems.  I'm telling you why
> we are where we are today, and why things haven't changed: There's
> really no need and inertial keeps things BSDish.  Most people never
> use the root shell directly, and all shell scripts are /bin/sh
> anyway...

The fact that the /etc/rc scripts, cron, and similar tools involving 
root's environment are all run using /bin/sh is one of the primary 
reasons why root shell ought to be /bin/sh.  There are newgroup FAQs 
for various platforms which recommend against changing root's shell 
from being a /bin/sh.

-- 
-Chuck

[1]: I'm quite familiar with this history, since at the time I had a 
Darwin commit bit because I submitted a security bugfix for a race 
dereferencing ../ in namei(), IIRC.  And I did a little bit in libc-- 
fixed some printf problems with %g and buffer overflow checking with 
snprintf()-- and with lint and the Makefiles, handling includes and 
shared library versioning when building stuff to understand framework 
layout, but Darwin wasn't self-hosting at the time (at least not 
without wizard-level knowledge of how to integrate the pieces), so I've 
spent more time with FreeBSD and NetBSD since then.
Received on Wed May 04 2005 - 21:59:28 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:34 UTC