boot banner project
Charles Swiger
cswiger at mac.com
Wed May 4 16:59:28 PDT 2005
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.
More information about the freebsd-current
mailing list