CS Ramble — Set 3b - operating systems

This is post is part of set 3 of A Ramble Around CS.

We’ll get to processes, threads, and fibers soon, but first we need to talk about how all the things your computer is doing at any given time are organized.

What is an Operating System?

Early personal computers more or less gave the currently-running program full control of the machine.

For instance, a simplified map of the memory of the Apple II computer looks like this:

Free RAM Text screen data Graphical screen data Free RAM (not to scale) “Memory” that controls devices ROM
Apple II Memory Map

Within limits1, your code was pretty much free to use the Free RAM (“Random Access Memory”) however it wanted.

We’ll discuss TBD in the next part.

  1. The ROM (“Read-Only Memory”) used certain locations to keep track of things like the current position on the screen, current drawing color, etc., so you had to avoid those if you wanted to keep using the ROM routines. ↩︎