home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!noc.near.net!hri.com!spool.mu.edu!uwm.edu!ogicse!das-news.harvard.edu!cantaloupe.srv.cs.cmu.edu!sqhilton.pc.cs.cmu.edu!beatty
- From: beatty@sqhilton.pc.cs.cmu.edu (Derek Beatty)
- Newsgroups: comp.sys.next.sysadmin
- Subject: Mach vs. BSD (was PGP v2.1 and NeXT)
- Message-ID: <Bz7y5y.E79.2@cs.cmu.edu>
- Date: 13 Dec 92 22:22:33 GMT
- References: <WARLORD.92Dec12021232@deathtongue.mit.edu>
- Sender: news@cs.cmu.edu (Usenet News System)
- Reply-To: beatty+@cs.cmu.edu
- Organization: School of Computer Science, Carnegie Mellon
- Lines: 40
- Originator: beatty@sqhilton.pc.cs.cmu.edu
- Nntp-Posting-Host: sqhilton.pc.cs.cmu.edu
-
- In article <WARLORD.92Dec12021232@deathtongue.mit.edu> writes:
- > First of all, the NeXT is neither Mach nor BSD! It is a BSD-ish UNIX
- > signal server on top of Mach.
-
- This isn't precisely correct in all detail. The NeXT runs Mach, but not
- Mach 3.0. I think NeXT started from Mach 2.0 and picked up most of the
- CMU changes through 2.5 or so, except for external pagers.
-
- I don't know what a "signal server" on top of Mach might be. Perhaps
- "single server" was intended? This is a Mach 3.0-ism and refers to an
- emulation architecture where Unix system calls are implemented in a single
- Mach task that's in some ways a Unix kernel moved into user address space.
- The other possibility is "multiple server" where you'd have one mach task
- to handle filesystems, perhaps another to handle tty's, others providing
- the networking calls, etc. The distinction is moot here, though, because
- on the NeXT the BSD-isms are implemented in the kernel, and not in a
- process or processes running in user mode. (And they're probably not
- BSD-ish, but real BSD. I'd bet that if you had the kernel sources, they'd
- have the UC Regents' copyrights at the top.) One of the goals of Mach
- development at CMU has been to keep compatibility with BSD binaries. As a
- user, I'd say they've had great success!, probably due to the fact that
- the BSD calls are implemented with BSD code.
-
- Practically all of the trouble I've ever had porting code to the NeXT has
- been with header files. Except for the "absence" of sbrk(). It's
- actually there, at least in 2.1, though you have to understand what it
- really means in the Mach memory model. (Basically, it means that sbrk()
- can fail long before the heap hits the stack.) However, I could be
- biased, since I've been porting and developing code under Mach for 6
- years. (I usually want my code to be portable, so I just pretend it's
- BSD.)
-
- The version numbering of NeXTstep (e.g., 2.1, 3.0) has nothing to do with
- the version numbering of Mach. Version 3.0 of the NeXT software is not
- version 3.0 of Mach. This seems to be a constant source of confusion.
-
- -- Derek Beatty
- (not, and never, a member of the Mach project, but a satisfied user)
- --
- Derek_Beatty@cmu.edu ABD Comp Sci, CMU, 5000 Forbes, Pgh, PA 15213 USA
-