This document came about because of the System Heap/INIT paranoia I've seen lately. It represents the total sum of the knowledge I have accumulated from writing system level software (INITs/cdevs/System Extensions) for three years and is accurate based on my experience and the experiences of many other Macintosh programmers.
It will help you make rational decisions about resolving INIT conflicts, dispel some common myths, teach you a thing or two, and explain what really happens with all this System Heap stuff.
Neophytes, forgive me if I confuse you with the programmer-speak necessary to explain this topic
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
If a program wants to achieve some kind of a global effects (like QuicKeys allowing you to define macros that work in any program), it has to find out how to graft itself into your system and keep a portion of memory for itself that will stay around even when a program quits (remember folks, the memory a program allocates for itself is freed up again when it quits).
We are talking sophisticated stuff here
When an INIT causes a problem, you'll hear ten people shout in unison, "Have you increased the size of your System Heap?" There are utilities out there that let you manually make the System Heap bigger in an effort to fix crashes due to INITs
Many people do not realize this, but with all versions of MultiFinder, the System Heap can actually grow even after start up time, easing INIT memory conflicts
Properly written INITs shouldn't exhibit any of the above stated problems. But if your Macintosh needs a little tweaking to get it working smoothly again, there is nothing wrong to giving a little more memory to the System Heap