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.0 required=5.0 tests=MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 27888 invoked from network); 2 Aug 2021 17:34:11 -0000 Received: from minnie.tuhs.org (45.79.103.53) by inbox.vuxu.org with ESMTPUTF8; 2 Aug 2021 17:34:11 -0000 Received: by minnie.tuhs.org (Postfix, from userid 112) id 4F68A9CA93; Tue, 3 Aug 2021 03:34:06 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id 3696D9CA64; Tue, 3 Aug 2021 03:33:34 +1000 (AEST) Received: by minnie.tuhs.org (Postfix, from userid 112) id 060459CA63; Tue, 3 Aug 2021 03:33:32 +1000 (AEST) Received: from junk.nocrew.org (junk.nocrew.org [51.15.56.219]) by minnie.tuhs.org (Postfix) with ESMTPS id 4FBE49CA60 for ; Tue, 3 Aug 2021 03:33:31 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=junk.nocrew.org) by junk.nocrew.org with esmtp (Exim 4.86_2) (envelope-from ) id 1mAbof-0002VO-7e; Mon, 02 Aug 2021 17:33:29 +0000 From: Lars Brinkhoff To: Andrew Warkentin Organization: nocrew References: <20210731142533.69caf929@moon> <40763c2d-52ad-eb01-8bf8-85acf6fee700@case.edu> Date: Mon, 02 Aug 2021 17:33:29 +0000 In-Reply-To: (Andrew Warkentin's message of "Sun, 1 Aug 2021 18:13:18 -0600") Message-ID: <7wh7g73g5y.fsf@junk.nocrew.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [TUHS] Systematic approach to command-line interfaces 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" John Cowan wrote: > Andrew Warkentin wrote: > > There's a third kind of primitive that is superior to either spawn() > > or fork() IMO, specifically one that creates a completely empty > > child process and returns a context that lets the parent set up the > > child's state using normal APIs. > In that case you don't need *any* primitive except create_empty_process(): > you can do exec() by opening the file, writing to /proc//mem That's almost exactly what what ITS does. You open the USR: device and get a file descriptor (not really, but close enough) into the child process (inferior job).