??? 01/09/07 03:29 Read: times |
#130471 - What's an OS? Responding to: ???'s previous message |
Richard,
The question has to be asked... What is an OS? CP/M as fond as some may be of it, almost doesn't qualify. It was a glorified program loader. It provided some I/O primatives that abstracted the hardware. That's about it. When you ran a program, the program owned the machine. No memory protection/management, no multitasking, etc... Implementing things like memory protection, execution scheduling, etc.., all take hardware bits that the MCS-51 doesn't and never will possess. (Ok... you could probably do a fair scheduler...) I think the best you could hope for is some kind of generic embedded BIOS. That's really what the 8 bit machines of old implemented. A BIOS, with a generic common abstraction layer on top with a command interpreter, mistakenly called a "OS". Embedded systems generally don't require the command interpreter. If you wrote down a requirements list for your proposed RTOS, you's find yourself constrained to one category of '51 variant, with specific HW attached, or you'd have a generic BIOS that was too bloated for general use. Probably both. Say I set the following requirements: 1. SPI I/O routines 2. I2C I/O routines 3. CAN I/O routines 4. Serial I/O library w/autobaud Now say that by some miracle, all those routines end up being the same size (unlikely). If I only used 1 of the routines in any given project, the "BIOS" code is 75% bigger than it needs to be. In volume, the difference between a 89S2051 and 89S53 is huge. Yet they have a code store size difference smaller than the size of a CP/M BIOS. We're better off picking and choosing what to roll into our embedded app. Rob (Unix Guru, 8051 hobbiest/amateur) |