home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!spool.mu.edu!agate!ucbvax!mtxinu!taniwha!paul
- From: paul@taniwha.UUCP (Paul Campbell)
- Newsgroups: comp.arch
- Subject: Re: <None> (Should be Open Systems, bloody NEWS system...)
- Message-ID: <1367@taniwha.UUCP>
- Date: 28 Dec 92 22:22:51 GMT
- References: <id.CG2W.R8A@ferranti.com> <1992Dec23.212321.26522@ryn.mro4.dec.com> <id.SQ3W.IB6@ferranti.com>
- Organization: Taniwha Systems Design
- Lines: 42
-
- In article <id.SQ3W.IB6@ferranti.com> peter@ferranti.com (peter da silva) writes:
- >In article <1992Dec23.212321.26522@ryn.mro4.dec.com> Peter.Mayne@cao.mts.dec.com writes:
-
- >And in UNIX the analog is a "signal". Now, a signal is a little "safer" than
- >an AST (at least as under RMX), in that it's guaranteed to run in your task
- >context.
-
- Well VMS user-mode ASTs run just like signals. Actually each AST runs in
- it's tasks context - it's just that it's possible to create an AST for
- another task. Not much use in user mode (ie like signals) but very usefull as
- a kernel mechanism where you WANT something to happen in the context of
- another process.
-
- I once implemented a complete port of Unix that ran within a single VMS process,
- the Unix kernel ran in a VMS process in supervisor mode, it ran multiple Unix
- processes in user mode, supervisor mode ASTs were used for Unix 'interrupts'
- (for example for input characters from terminals, disk IO completeions etc etc)
-
-
- >Much of the *C* run-time in *any* language is non-reentrant, and I would
- >be surprised if the VMS library was any better. If I get an AST while I'm
-
- Yeah this is a major design flaw in the Unix/C world - an operating system
- that returns more than 1 thing from its system calls is implemented in
- a language that only returns 1 thing from a call. This doesn't mean that
- C shouldn't have been used for Unix - just that the API should have been
- designed differently for example:
-
- (act_len, errno) = read(file, data, len);
-
- probably should have been done as:
-
- errno = read(file, data, len, &act_len);
-
-
- Paul
-
- --
- Paul Campbell UUCP: ..!mtxinu!taniwha!paul AppleLink: CAMPBELL.P
- "Finally after much thought he tied a dollar bill to the top of the tree, it
- seemed to fit - after all it was the premier capitalist holiday, besides after
- the 'fall' of communism a star didn't seem appropriate anymore ..."
-