On Thu, Jun 30, 2016 at 1:57 PM, Marc Rochkind <rochkind(a)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.