For starters, your Macintosh has a fixed amount of memory installed in it, which acts like desk space for things you are currently working on. In real life, when you want to work on something you might take it out of your filing cabinet and put it on your desk where you can work on it effectively. This is similar to what a computer does: all of your programs and documents are stored on your hard disk, and when you want to work on them they are read in from disk and placed in memory.
Life being what it is, you can’t have everything. You only have a limited amount of memory that must be rationed out to the programs that you run. In fact, each program you run grabs a fixed chunk of memory when it loads, and it doesn’t let go of the memory until you quit the program. This is the application’s world to do with as it pleases. This is also known in technoweenie terms as a heap.
Each application is said to have its own memory heap. You can set the size of this heap (how much memory the application will use, or how much of your desk space you’re giving up to use the program). You can do this for any program by choosing "Get Info" for it in the Finder and entering how much memory you want it to use. That assumes you are running under System 7 or System 6’s MultiFinder. Under older systems (sometimes called UniFinder) the programs that you run use all of your Macintosh’s memory, so you can only run one program at a time.
Well actually I just lied. Sorry about that, I realize I hardly know you and I’ve lied to you already. Your Macintosh has another heap that is always around (even if you aren’t running any programs) called the System Heap. This is important. The System Heap is a chunk of memory that the system software (the nitty gritty, low level stuff) uses for its own purposes. Things with nasty names like device drivers, ROM patch code, etc. dwell there. It is a murky, convoluted place of which only Apple knows every nook and cranny, but a very important one nevertheless.
So, a portion of your computer’s memory (or RAM) is always occupied by the System Heap, an area of memory designated for the low-level system software from Apple and other nasties. The rest of your computer’s memory is rationed off in chunks to the applications that you run on a first-come, first-serve basis. Normally, we developers stay in our own little application heaps, insulated from the complexities of system-level software. There are times however that the only possible way to write the programs we dream of is to delve into the world of system software and the System Heap. Yes friends, we are talking about INITs (you knew I’d get around to it some day, right?).