26

I was recently looking at some documentation for programming the Apple Lisa: https://lisa.sunder.net/LOS_Reference.pdf and I was surprised how advanced it was for the time. It had a lot of features that didn't make it to the Mac until much later. For example, multiple processes and the ability to do IPC with named pipes on the filesystem. But, the documentation on pipes warns me not to use them for any new development because they were expected to be removed from the future releases of the Lisa OS that the author expected were forthcoming.

Pipes will not be supported in future releases of the operating System. Do not use the pipe mechanism if you want your software to be upward-compatible.

So, what was wrong with Pipes on Lisa? Were they implemented badly? Did they cause some problems? Did something about the Lisa architecture make them impractical? Obviously, modern Unix and MacOS X retain the feature, so they clearly weren't a terrible idea or too difficult for programmers to use in general.

  • I know almost nothing about Lisa OS, but I owned and supported Lisas running UniSoft's UniPLUS+ UNIX. That operating system did support pipes on the Lisa. Nothing was very snappy, running off a 10MB ProFile in 1MB of RAM, but it did work. – jeffB Aug 6 at 14:52
  • 1
    I suspect a lot has to do with the Lisa's successor having only 128K of RAM. – supercat Aug 6 at 16:01
  • 4
    In the document you link to, it says (Notes 2.2) "all the inter-process communication (IPC) features provided by pipes are also provided by event channels". Perhaps the rationale was to avoid duplicated function? – another-dave Aug 7 at 0:04
  • 1
    @supercat- not in this case, the Mac didn't offer any sort of pipes at all, and was a different OS in any case. as the OP notes, the original OS was surprisingly advanced, which, sadly IMHO, is why we had a Mac. – Maury Markowitz Aug 9 at 16:03
6

As the manual explains:

Pipes (See Section 2 .. 9) The pipe facility has been removed. MAKE_PIPE has:been deleted, and any attempt to OPEN an old pipe object will return an error number 948. All the inter-process communication (IPC) features provided by pipes are also provided by event channels.

This is a bit interesting for the simple reason that the event channels were not designed to be a pipes replacement, but were dedicated to short, well understood data. I suspect one could stuff free-form data just as easily though. With the same basic functionality being duplicated, but only one of the APIs being widely used, the lesser-used pipes was redundant.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.