From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HTML_MESSAGE,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 8061 invoked from network); 17 Feb 2021 06:51:49 -0000 Received: from minnie.tuhs.org (45.79.103.53) by inbox.vuxu.org with ESMTPUTF8; 17 Feb 2021 06:51:49 -0000 Received: by minnie.tuhs.org (Postfix, from userid 112) id 93D3B9CA69; Wed, 17 Feb 2021 16:51:47 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id 01E8C9B966; Wed, 17 Feb 2021 16:50:48 +1000 (AEST) Authentication-Results: minnie.tuhs.org; dkim=pass (1024-bit key; unprotected) header.d=eschatologist.net header.i=@eschatologist.net header.b="0HibR0nc"; dkim-atps=neutral Received: by minnie.tuhs.org (Postfix, from userid 112) id 057029B966; Wed, 17 Feb 2021 16:50:46 +1000 (AEST) Received: from donkey.elm.relay.mailchannels.net (donkey.elm.relay.mailchannels.net [23.83.212.49]) by minnie.tuhs.org (Postfix) with ESMTPS id 3D18C9B95A for ; Wed, 17 Feb 2021 16:50:44 +1000 (AEST) X-Sender-Id: dreamhost|x-authsender|cmhanson@eschatologist.net Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 198DE541C5C; Wed, 17 Feb 2021 06:50:43 +0000 (UTC) Received: from pdx1-sub0-mail-a89.g.dreamhost.com (100-96-11-20.trex.outbound.svc.cluster.local [100.96.11.20]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id A633A542798; Wed, 17 Feb 2021 06:50:42 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|cmhanson@eschatologist.net Received: from pdx1-sub0-mail-a89.g.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384) by 100.96.11.20 (trex/6.1.1); Wed, 17 Feb 2021 06:50:43 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|cmhanson@eschatologist.net X-MailChannels-Auth-Id: dreamhost X-Interest-Irritate: 593a61a1503828a0_1613544642928_2732395864 X-MC-Loop-Signature: 1613544642928:4169035539 X-MC-Ingress-Time: 1613544642928 Received: from pdx1-sub0-mail-a89.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a89.g.dreamhost.com (Postfix) with ESMTP id 6C3DB856D9; Tue, 16 Feb 2021 22:50:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=eschatologist.net; h=from :message-id:content-type:mime-version:subject:date:in-reply-to :cc:to:references; s=eschatologist.net; bh=qKckcvZrskm4lr/q83ADG 0otxEk=; b=0HibR0nc2a8ODnvuS0AiGITw8pXeoMTtw5uFWQLGQZJfBDzR36lzy 4vUuMaMGqt/l2SmlJU4X+1ZXf2w7jnj/sUhgErhfb1mZ57wDB0jlmsyXq47iN9U+ NUZrUy5UGhuGKN9knmgbgLcOUbvuXed1bRskJ0vVvK0QJe+YlunVZU= Received: from [10.0.1.205] (c-76-126-113-109.hsd1.ca.comcast.net [76.126.113.109]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: cmhanson@eschatologist.net) by pdx1-sub0-mail-a89.g.dreamhost.com (Postfix) with ESMTPSA id F19DE856D6; Tue, 16 Feb 2021 22:50:41 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a89 From: Chris Hanson Message-Id: <56624C4D-B5DE-4664-A522-5D8E3BDF320A@eschatologist.net> Content-Type: multipart/alternative; boundary="Apple-Mail=_FA6056B4-78B3-45F2-B40F-AF77D69207B1" Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.60.0.2.21\)) Date: Tue, 16 Feb 2021 22:50:40 -0800 In-Reply-To: <202102161959.11GJxWC5676454@darkstar.fourwinds.com> To: Jon Steinhart References: <202102151956.11FJuRIh3079869@darkstar.fourwinds.com> <202102161959.11GJxWC5676454@darkstar.fourwinds.com> X-Mailer: Apple Mail (2.3654.60.0.2.21) Subject: Re: [TUHS] Abstractions X-BeenThere: tuhs@minnie.tuhs.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: The Unix Heritage Society mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: TUHS main list Errors-To: tuhs-bounces@minnie.tuhs.org Sender: "TUHS" --Apple-Mail=_FA6056B4-78B3-45F2-B40F-AF77D69207B1 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 On Feb 16, 2021, at 11:59 AM, Jon Steinhart wrote: >=20 > The original Apple Macintosh API was published in 1985 in a = three-=C2=AD > volume set of books called Inside Macintosh (Addison-=C2=ADWesley)= . The > set was over 1,200 pages long. It=E2=80=99s completely obsolete; = modern > (UNIX-based) Macs don=E2=80=99t use any of it. Why didn=E2=80=99t = this API > design last? I think this is a little bit of a red herring; most of the original = Macintosh Toolbox APIs would not be considered "system calls" then or = now. The Macintosh Operating System APIs were a much more tightly-scoped = set on top of which was the Toolbox. For example, in the original filesystem and device driver interfaces, = you had _PBOpen, _PBClose, _PBRead, _PBWrite, and _PBControl. Sound = familiar? One major difference is that these took a struct full of = arguments (a parameter block in Macintosh API terminology) and could be = used either synchronously or asynchronously with a callback, unlike the = core UNIX filesystem calls. A more oranges-to-oranges comparison would be to look at the Macintosh = Operating System and Toolbox API surface compared with, say, the SunOS = and SunWindows API surface=E2=80=A6 And then, of course, there's the question of how long the design lasted: = The Carbon API set is a direct descendant of the original Macintosh = Operating System and Toolbox API set, and was supported for the entire = lifetime of 32-bit executables on the Mac. I ported plenty of OS & = Toolbox code to Carbon and it was mostly a matter of updating UI metrics = and replacing direct structure accesses with equivalent function calls. -- Chris --Apple-Mail=_FA6056B4-78B3-45F2-B40F-AF77D69207B1 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8 On = Feb 16, 2021, at 11:59 AM, Jon Steinhart <jon@fourwinds.com> = wrote:

= The original = Apple Macintosh API was published in 1985 in a three-=C2=AD
volume set of books called Inside Macintosh = (Addison-=C2=ADWesley). The
= set was over = 1,200 pages long. It=E2=80=99s completely obsolete; modern
(UNIX-based) Macs don=E2=80=99t use any of it. Why didn=E2=80=99= t this API
design last?

I think this is a little bit of a red = herring; most of the original Macintosh Toolbox APIs would not be = considered "system calls" then or now. The Macintosh Operating System = APIs were a much more tightly-scoped set on top of which was the = Toolbox.

For = example, in the original filesystem and device driver interfaces, you = had _PBOpen, _PBClose, _PBRead, _PBWrite, and _PBControl. Sound = familiar? One major difference is that these took a struct full of = arguments (a parameter block in Macintosh API terminology) and could be = used either synchronously or asynchronously with a callback, unlike the = core UNIX filesystem calls.

A more oranges-to-oranges comparison would be to look at the = Macintosh Operating System and Toolbox API surface compared with, say, = the SunOS and SunWindows API surface=E2=80=A6

And then, of course, there's the = question of how long the design lasted: The Carbon API set is a direct = descendant of the original Macintosh Operating System and Toolbox API = set, and was supported for the entire lifetime of 32-bit executables on = the Mac. I ported plenty of OS & Toolbox code to Carbon and it was = mostly a matter of updating UI metrics and replacing direct structure = accesses with equivalent function calls.

  -- Chris


= --Apple-Mail=_FA6056B4-78B3-45F2-B40F-AF77D69207B1--