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