On Thu, Jun 30, 2016 at 1:57 PM, Marc Rochkind <rochkind@basepath.com> wrote:
Dan Cross: "... even if they didn't use Unix directly, it was an existence proof that such a thing was possible".

Indeed it was. IBM contracted with Interactive Systems (Heinz Lycklama's company, in Santa Monica) to produce PC/IX, which was complete System 3 for the IBM PC. 8088, 4.77MHz, and 512K of RAM (if I'm remembering the numbers correctly). It was my primary development system for the first edition of Advanced UNIX Programming.

As for why "IBM" didn't do something other than MS-DOS originally: It depends what you mean by "IBM". The PC was not originally strategic, although it might have become that way after a few years. It was just a small group in Boca Raton (as I recall) that whipped it out pretty quickly. MS-DOS was a good choice within the class of what then were known as personal computer operating systems (CP/M being the leader for 8080/Z80 Intel systems).

I don't think PC/IX would have run on a floppy-only system. And, if it would, it would have been a demonstration only--entirely impractical. IBM didn't provide a PC with a hard drive until later, and that's when PC/IX came along.

Don't forget that the IBM PC completely dominated office use where personal computers were needed. A runaway success. That makes me think that the technical solutions were correct for what the project was supposed to achieve.

When I tried to write responsive software for UNIX and UNIX-like OSes running on PCs, I could never achieve good results because the display support was inadequate. Typically, you treated the display like a terminal (escape sequences). MS-DOS allowed me to write to display memory directly, which what was made PC software so responsive.

To say it another way, UNIX on a PC was always just a port. No consideration was given to providing support for the way PCs were actually used. That didn't happen until Xerox PARC started to produce PCs (at a much higher cost, of course). The first decent "PC" was the Macintosh SE. The earlier Macs were dogs.

Sorry, I don't think I was being clear in my earlier post. I get that IBM (for the definition that is the group that built the PC) did not ship a Unix port and frankly probably wouldn't have. But what irks me is that they didn't produce an ersatz operating system that could support Unix-like functionality: for example, support multiple processes, have a real system-call interface, etc. In other words, why didn't they have a more capable kernel than MS-DOS? Surely a motivated team could have produced a floppy-only system capable of running multiple processes, etc. It wouldn't be Unix, it wouldn't even necessarily be a clone of Unix, but it could have been something better than MS-DOS.

My impression was that DOS programmers had to jump through a lot of hoops due to the anemia of the "INT 21h" services, the memory model of the 8088/8086, and lack of a system-standard programming library: I suspect a lot of them ended up using DOS as little more than a filesystem. Consider the display issue you mention: as I understand it, programmers could interact with the display adapter by simply reading and writing to well-known addresses (did this require special IO instructions? I don't believe so). Suppose instead that the OS provided a "system call" to "map" the display memory into one's process and return a small structure describing it (e.g., base pointer, rows, columns, a bitmap of capabilities [color and so on]), or -1 on failure. If the mapping were successful, the programmer could indirect through this pointer and treat the display as one would in DOS (perhaps with a library to facilitate application development). On the 8088 that wouldn't be protected, of course, so it could be bypassed but the 80286 came along fairly shortly after and had an on-chip MMU with protected mode. Again, it doesn't have to be Unix, but DOS didn't really help the programmer a lot here as far as I can tell.

I'm not sure I would assert that their success was due to good technical decisions; this was the era where IBM dominated business and as the saying went, "no one ever got fired for buying IBM." The IBM brand added de facto legitimacy to the personal computer in the workplace at a critical time when it was just starting to make inroads into business: surely their success had a lot more to do with that than choosing to use the 8088 and DOS? The VHS vs. Betamax argument may apply here.

        - Dan C.