Since the introduction of the first iMac model, Macintosh system software has used a design based on ROM in RAM and Open Firmware. With this approach, a small ROM contains the code needed to initialize the hardware and load an operating system. The rest of the system code that formerly resided in the Mac OS ROM is loaded into RAM from disk or from the network. For more information, see the references listed in ROM-in-RAM Architecture and Open Firmware.