thought food
Posted: Fri May 31, 2002 1:59 pm
I have terminated the baby steps series, but there were a few (random) items that I was going to get to that I wanted to mention, for whatever it's worth.
The first computer I ever programmed was a KIM-1, which featured a MOS 6502 microprocessor. You entered hex values at the keypad, but since you could control each segment on the LED display, you could actually make it show text. It had an assembler in ROM. It could save the bit sequence out to a cassette player and read them back in. This was completely done through hardware. There was no software interface for this.
Although Apple produced a pre-assembled microcomputer kit, the TRS-80 was really the only game in town (due to cost and availability). It was the use of its optional disk drive (invented by Alan Shugart) that made an operating system necessary (and much less importantly, memory accesses needed it).
As more hardware options were added over the years, Disk Operating Systems became increasingly more integral to the usefulness of a microcomputer. There were many flavors of these, but CP/M (by Gary Kildall) was really the one that started to emerge as a standard (template is probably a better description).
When Apple began implementing its GUI (along with many other ideas from Alan Kay at Xerox), it needed a system that could run multiple full-blown programs (as opposed to TSRs). Although 'visionary' in the sense that it's what we expect a computer to be nowadays, it made programming hellish -- something Microsoft devotees would painfully experience eventually. To their credit, the Apple engineers made the best of a bad situation. The abstractions made for serious overhead with limited advantage in reality (i.e. nobody gave a hoot). They were eventually vindicated of course when they came out with their laser printer, which when combined with their interface, started the Desktop Publishing craze. Even though MS-DOS would continue to be the operating system of PC's for almost another decade, this is probably what made Microsoft pinch the idea of a GUI-OS (Apple had actually struck a deal with Xerox).
Back on the college computer scene all the while was Unix. It's raison d'etre was supposedly allowing many programmers to use a single computer simultaneously to minimize machine downtime. There's more to that story, but Unix could certainly be considered the jumping off point for "multitasking". For consumer machines, however, Apple was still the only significant player in OS concepts. A major evolutionary step came with NeXT, where Apple (Xerox) concepts met Unix on a consumer chip, but sadly people are sheep and the machines were too expensive anyway.
With the advent of game consoles, PDAs, the development of WWW as a mall and a library, and ubiquitous email, I think we see a change. I have watched the PC continuously justify itself for twenty plus years. Throughout this period, it has developed into a jack-of-all-trades as it develops new identities to keep the industry expansion alive. Its latest incarnation with the pouring of billions into the spread of the Internet has perhaps signaled the end of the general-purpose machine. Development machines will continue, much as they are used for microcontroller and console work. But consumers probably won't have any use for such things.
Something, perhaps, to ponder as you work on your operating system.
The first computer I ever programmed was a KIM-1, which featured a MOS 6502 microprocessor. You entered hex values at the keypad, but since you could control each segment on the LED display, you could actually make it show text. It had an assembler in ROM. It could save the bit sequence out to a cassette player and read them back in. This was completely done through hardware. There was no software interface for this.
Although Apple produced a pre-assembled microcomputer kit, the TRS-80 was really the only game in town (due to cost and availability). It was the use of its optional disk drive (invented by Alan Shugart) that made an operating system necessary (and much less importantly, memory accesses needed it).
As more hardware options were added over the years, Disk Operating Systems became increasingly more integral to the usefulness of a microcomputer. There were many flavors of these, but CP/M (by Gary Kildall) was really the one that started to emerge as a standard (template is probably a better description).
When Apple began implementing its GUI (along with many other ideas from Alan Kay at Xerox), it needed a system that could run multiple full-blown programs (as opposed to TSRs). Although 'visionary' in the sense that it's what we expect a computer to be nowadays, it made programming hellish -- something Microsoft devotees would painfully experience eventually. To their credit, the Apple engineers made the best of a bad situation. The abstractions made for serious overhead with limited advantage in reality (i.e. nobody gave a hoot). They were eventually vindicated of course when they came out with their laser printer, which when combined with their interface, started the Desktop Publishing craze. Even though MS-DOS would continue to be the operating system of PC's for almost another decade, this is probably what made Microsoft pinch the idea of a GUI-OS (Apple had actually struck a deal with Xerox).
Back on the college computer scene all the while was Unix. It's raison d'etre was supposedly allowing many programmers to use a single computer simultaneously to minimize machine downtime. There's more to that story, but Unix could certainly be considered the jumping off point for "multitasking". For consumer machines, however, Apple was still the only significant player in OS concepts. A major evolutionary step came with NeXT, where Apple (Xerox) concepts met Unix on a consumer chip, but sadly people are sheep and the machines were too expensive anyway.
With the advent of game consoles, PDAs, the development of WWW as a mall and a library, and ubiquitous email, I think we see a change. I have watched the PC continuously justify itself for twenty plus years. Throughout this period, it has developed into a jack-of-all-trades as it develops new identities to keep the industry expansion alive. Its latest incarnation with the pouring of billions into the spread of the Internet has perhaps signaled the end of the general-purpose machine. Development machines will continue, much as they are used for microcontroller and console work. But consumers probably won't have any use for such things.
Something, perhaps, to ponder as you work on your operating system.