Re: OpenTransport...
Re: OpenTransport...
- Subject: Re: OpenTransport...
- From: "Quinn \"The Eskimo!\"" <email@hidden>
- Date: Fri, 25 Oct 2013 11:11:43 +0100
On 24 Oct 2013, at 20:43, Jens Alfke <email@hidden> wrote:
> It was all designed around the limitations of the incredibly primitive Classic OS, especially its lack of multithreading. It’s also not based on the common Unix socket API at all; I think the inspiration was a “streams” API from, um, maybe Solaris?
You have to distinguish between the API and the implementation. There are two APIs:
o XTI, and the Open Transport API, which is just a Mac OS flavour of XTI
o BSD Sockets
There are two implementations:
o STREAMS
o BSD networking
Both implementations could host both APIs. STREAMS implementations almost invariably ship with a BSD Sockets API (a notably example being Solaris) and, much to everyone's amazement, Apple managed to support the Open Transport API on BSD Networking (-:
XTI is a bit of a weird API, but so is BSD Sockets when you start looking at it in detail. The real issues with the Open Transport API were:
o lack of blocking semantics
o listening for incoming connections (what a frikkin' nightmare)
The first was more to do with traditional Mac OS than the XTI API per se. And, ironically, the message from Apple in recent years is to avoid blocking semantics anyway.
Apple solved the second problem with some nifty STREAMS module trickery ("tilisten").
On the implementation front, Mentat STREAMS was awesome. Whenever I work inside BSD Networking (not very often these days), I'm reminded how much I miss it.
Share and Enjoy
--
Quinn "The Eskimo!" <http://www.apple.com/developer/>
Apple Developer Relations, Developer Technical Support, Core OS/Hardware
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Macnetworkprog mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden