1: it was the incumbent
2: there were no hardware drivers for any other operating system
3: there was software for Microsoft operating systems, and no useful software for any other OS
4: Microsoft has legal contracts with the hardware manufacturers which required that a icense fee be paid regardless of whether or not Windows shipped with each machine.
5: probably more reasons
As an outcome of the above it turned out to be impossible for any other OS to get a foothold on the PC. It's hgard for people to understand now, but there was still an opening for some other OS to get a foothold.
In the end, another OS turned up and started making major headway on the PC. It succeeded against Windows in the way that such battles tend to be played out - by playing to a different set of rules. That OS of course was Linux and its rules were to be free, to have a collaborative development model, to be server focused, and to have the fortunate timing of being at the start of the era of connected computing. I remember being startled that I could get a free operating system by buying an issue of a computer magazine at the newsagent with a CDROM on the front containing Linux.
Eventually the seemingly impossible happened and an OS came along that beat Microsoft on the desktop, or at least competed effectively with Microsoft Windows - and that of course was OSX. And OSX against succeeded by playing to its own rules. No need for hardware drivers for every device under the sun because they it only ran on Apple hardware. It had applications from the Macintosh user base (and Microsoft), and turned out to be a really nicely integrated and functional OS (IMO).
Its a pity GEOS didn't make headway, at the time I really wanted SOMETHING, ANYTHING to give Microsoft effective competition because it looked back then like it was going to be 1,000 years of Microsoft in first place with no second, third or fourth place runners up.
BeOS also gets points for having a try at competing with Microsoft.
Both windows and geos mostly relied on DOS and BIOS for things like filesystem and block device access, so for scsi disks, zip drives and similar you either needed DOS driver or just correct BIOS ROM module on the card.
This only changed with Windows 95, which still could use DOS drivers, but reliability and performance suffered in that case. Native 32bit windows drivers were built on top of Plug and Play model, which has the unfortunate feature that given device is either recognized by windows automatically or needs specific driver for that specific device (surprising amount of these "drivers" are plain text files that just map the device id onto some standard windows driver).
Microsoft sidestepped the issue at first by building Windows on top of DOS but even they had to tackle it head on for Windows 95, as you say. Everyone else, though, was basically doomed to be locked out of the market because of this issue.
It was a pretty amazing piece of code that made that 8086 very usable for a few more years.
Not really speaking from a position of expertise on the matter, since I've only ever seen (and never used) a Video Toaster and the only NeXT machine I've ever used is the one in the computer museum in Google's NYC office.
GEOS was a competitor to Windows 2/3 (a DOS add-on) and OS/2 was a competitor to Windows NT.
It's even an optional extra for FreeDOS, if you want to try it in a VM: http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/dist...
Desqview was neat it allowed you to multitask dos apps, but dos 5 basically included same functionality in a more restricted forms (basically how MSFT did to all of Quarterdeck's stuff). Desqview/X was nice if you were in an unix environment, but vast majority of users were not. GEM was along the same lines as geoworks, but recall it being less usefull.
Edit: This was in 1997. We were writing a web browser for the Brother Geobook which was a device with late 90s PDA capabilities in the form factor of a late 90s laptop. I don't think that it was a particularly successful product.
(If you don't know what I'm talking about, I thought you were someone I briefly used to work with. Sorry.)
> OK: I went to the University of Washington and [then] I got hired by this company called Geoworks, doing assembly-language programming, and I did it for five years. To us, the Geoworkers, we wrote a whole operating system, the libraries, drivers, apps, you know: a desktop operating system in assembly. 8086 assembly! It wasn't even good assembly! We had four registers! [Plus the] si [register] if you counted, you know, if you counted 386, right? It was horrible.
> I mean, actually we kind of liked it. It was Object-Oriented Assembly. It's amazing what you can talk yourself into liking, which is the real irony of all this. And to us, C++ was the ultimate in Roman decadence. I mean, it was equivalent to going and vomiting so you could eat more. They had IF! We had jump CX zero! Right? They had "Objects". Well we did too, but I mean they had syntax for it, right? I mean it was all just such weeniness. And we knew that we could outperform any compiler out there because at the time, we could!
> So what happened? Well, they went bankrupt. Why? Now I'm probably disagreeing – I know for a fact that I'm disagreeing with every Geoworker out there. I'm the only one that holds this belief. But it's because we wrote fifteen million lines of 8086 assembly language. We had really good tools, world class tools: trust me, you need 'em. But at some point, man...
> The problem is, picture an ant walking across your garage floor, trying to make a straight line of it. It ain't gonna make a straight line. And you know this because you have perspective. You can see the ant walking around, going hee hee hee, look at him locally optimize for that rock, and now he's going off this way, right?
> This is what we were, when we were writing this giant assembly-language system. Because what happened was, Microsoft eventually released a platform for mobile devices that was much faster than ours. OK? And I started going in with my debugger, going, what? What is up with this? This rendering is just really slow, it's like sluggish, you know. And I went in and found out that some title bar was getting rendered 140 times every time you refreshed the screen. It wasn't just the title bar. Everything was getting called multiple times.
> Because we couldn't see how the system worked anymore!
http://steve-yegge.blogspot.com/2008/05/dynamic-languages-st...
That said, I encourage everyone to fully read the section that is pulled from. The whole article, actually. Very nice talk and I think it contains some very insightful points. In particular, the idea to keep the system small and the rest will fall out of that.
Assembly has if. It has JL, JLE, JG, JGE. Sure you had to calculate the compound statement yourself, and do a CMP BX, 0
And this is way more registers than the Z80 load store machine had. Coming from that it was awesome.
I picked mine up at a garage sale, too.
As an aside: I just learned/remembered that the original Nintendo Game Boy ran at roughly four times the CPU frequency of the C64.
…am I the only one that made a double-take at this? I don't associate OOP with being lightweight. It's either oxymoronic or irrelevant.
This is also what doomed GeoWorks; much of OS was written so low-level is was impossible to port PC/GEOS from 8086 to newer processors.
Another example:Drag a file to trashcan was object oriented.
At the time WYSIWYG was a bullet point promise that never delivered. Seeing it actually happen was amazing. That it was in a product that had the feel of "Of course it does it that way, because that's how it should be done"
I often lament that it was never an Open Source project. It got passed around companies looking to use it in some niche or other while it slowly decayed. It had enough enthusiasts that as an open project it would have developed.
http://www.mw-software.com/icon-tech/Products/TechWriter/Tec...
So while your peers were just about getting a 386 with DOS/windows 3, you had a 32-bit ARM workstation with full anti aliased font rendering and production grade print capability.
Shame the kernel was poo and the file system so disparate to everything else or it may have taken off.
http://toastytech.com/guis/nd32.html
and the Breadbox Ensemble which was built from the ashes of GeoWorks:
http://toastytech.com/guis/bbe.html
were not at all bad, and for low powered older machines were actually a godsend.
I recall the paint program, with its textured fills, and all the simple bitmap tools everyone is familiar with today in MS Paint. The word processing app, really more like desktop publishing. The general file management and window system...
It seems all rather forward thinking for 1986. It seems like the concepts for most of our software tends to be around for long before we have the technology to do it properly. All the pre-internet machines I had later just did what my Commodore 64 and GEOS did, but faster and with more colors.