Path: utzoo!attcan!uunet!snorkelwacker!usc!brutus.cs.uiuc.edu!rpi!batcomputer!cornell!ken From: ken@gvax.cs.cornell.edu (Ken Birman) Newsgroups: comp.os.mach Subject: Re: Combining UNIX-style and MACH-style messaging Message-ID: <39068@cornell.UUCP> Date: 26 Mar 90 18:52:50 GMT Sender: nobody@cornell.UUCP Reply-To: ken@cs.cornell.edu (Ken Birman) Distribution: comp Organization: Cornell Univ. CS Dept, Ithaca NY Lines: 46 Joe Boykin at Encore answered my questions as follows: 1) I can't get "select" to run on a Mach port; have to fork off a thread for each port-set on which I want to do a read (or perhaps for each port) and structure my code to interrupt the select if a message comes in this way. 2) I need to use the environment manager to pass the receive rights, or build some equivalent mechanism into ISIS to map from ISIS addresses to mach ports. My guess is that (1) translates to a lot of code for me, (2) seems pretty straightforward. Probably, I will do this, but as an aside to the Mach group let me make the following points. For a project like mine, there is no major advantage to Mach except speed: it is a more elegant operating system, granted, but my code already was working just fine, and portability is very important to me. So, to the extent that I specialize I am going to have to combine UNIX and Mach features, and will do it mostly for some overwhelming performance advantage. The scheme Joe outlined actually implies a fairly substantial amount of code in ISIS: I would estimate 1-2 weeks full time for someone without much Mach experience. On the other hand, if Mach offered me an AF_MACH socket type from UNIX, I could benefit from Mach performance without adding a zillion ifdef's to use the various special Mach facilities that I seem unable to avoid. As I see it, there seems to be some inconsistency between Rick (who recently explained that he views Mach as a core system, with interfaces like UNIX, VMS, and even OS/2 layered around it for those who want them) and Joe, who seems to be more of a purist (if you want the speed, do it our way). Personally, I want do minimize the amount of work I do and maximize portability for my UNIX code, while also benefiting from Mach performance... And, the bottom line is that this will only benefit ISIS users who run ISIS over Mach: a small minority of our community. So how about it, Rick? Why not give me an AF_MACH socket type and a make_unix_fdes(port-no) system call, so that I can do select and just hack my recvfrom/sendto code... I bet that there are more people like me than you realize. Sure, I like your system, but I'm just too busy to do everything differently to make use of it. And, unless a lot of people do redo things, it looks to me as if the major Mach advantages are very hard to "experience" without a big investment. That is, if you are doing UNIX over Mach, why not do it right? Ken