4

I'm working on a project to write a small OS based loosely on the functionality of CP/M. I want to better understand a few things about the early home computing market, as well as to understand operating systems concepts. I'm using a Cortex M0+, which has, among other things, 8K of RAM. From this perspective, the Cortex M0+ can't even run CP/M, which required a minimum 16K of RAM. However, it is also much faster, at 48MHz, plus a bunch of modern enhancements. So here's the question: can this microcontroller be used in a meaningful way to explore these concepts, or is it so different from what came before that the changes I'll have to make to my OS compared to early ones would be too significant?

Second, was there an early OS that ran on something with 8K of RAM that still had a reasonable user interface? Or perhaps a better question, why did CP/M require 16K of RAM? What did it use all of it for?

Ostensibly I can just buy a bigger microcontroller, but part of what I'm trying to do is better understand the need for efficiency. Today, I could just write the OS for an old laptop or something and have access to GB of memory, but that's not the point!

2
  • 4
    I'm afraid this is too broad to be answered here. For a start, the first OS I wrote on had 256bytes of RAM. The Sinclair ZX80 had 1kb. 8kb was unimagined luxury. Writing your own OS is as simple or as complex as you wish to make it. I would suggest asking more specific questions about specific features that you wish to study.
    – Chenmunka
    Feb 6 '17 at 12:12
  • Fair point. I'm still in the exploratory phase, so I guess I should try to be more specific. My goal with this first OS is to explore how user programs load from disk, run, and return. My minimal functionality would have a console IO, file system, and single tasking runtime environment. I'm compiling all user programs on the PC. I also would like a simple system call framework, at least for printing to the console and file IO. Were there any features of early OS's that "defined them" that I might be missing? Feb 6 '17 at 12:49

Browse other questions tagged or ask your own question.