Most of the Amiga's OS routines are organized into groups of shared run-time libraries. The Amiga also has specialized function groups called devices and resources that programmers use to perform basic I/O operations or access low-level hardware. Devices and resources are similar in concept to a shared run-time library. They are managed by Exec and must be opened before they can be used. Their functions are separate from the programs that use them and are accessed dynamically at run time. Multiple programs can access the device or resource even though only one copy exists in memory (a few resources can only be used by one program at a time.) ________________ ________________ | | | | | AmigaDOS CLI | | Workbench | | & utilities | | Icons/Drawers/ | | | | Utilities | |________________| |________________| | |_________ | | | _________|______| | | | ___|____ | | | / \ | | | / Console \ | | | | Device | | | | \ / | | | \________/ | | | |______ | ______|___|_____ ___|___|________ | | | | | AmigaDOS | | Intuition | | Processes, | | Windows,Menus | | File System | | Gadgets,Events | |________________| |________________| | ______| | |______ | ___|____ | _______|________ | / \ | | | | / Input \ | | Layers | | | Device | | | Library | | \ / | | | | \________/ | |________________| | | | ______| | | _____|___|______ | | | | | | | Graphics | | | | Rendering | | | | Text, Gels | | | |________________| ____|___ ___|____ | ________ ________ / \ / \ | / \ / \ / SCSI & \ / Keyboard \ | / Audio \ / Serial \ | Trackdisk | | & Gameport | | | Device | | & Parallel | \ Device / \ Devices / | \ / \ Devices / \________/ \________/ | \________/ \________/ | | | | | ______|_____________|____________|_____________|______________|______ | | | Exec: Tasks, Messages, Interrupts, I/O, Libraries and Devices | |_____________________________________________________________________| | | | | | ______|_____________|____________|_____________|____________|________ | | | | | | | Disk Control | Keyboard | Graphics | Audio | I/O Ports | | | & Mouse | | | | |______________|____________|_____________|_____________|_____________| Figure 1-1: Amiga System Software Hierarchy Devices and resources are managed by Exec just as libraries are. For more information on devices and resources, see the chapter on Exec Device I/O later in this book or refer to the Amiga ROM Kernel Reference Manual: Devices for detailed descriptions of each device. _____________________________________________________________________ | | | What Every Amiga Programmer Should Know: | | ---------------------------------------- | | The functions in the Amiga OS are accessed through shared run-time | | libraries. Libraries must be opened before their functions may be | | used. The system's master library, Exec, is always open. The Exec | | function OpenLibrary() is used to open all other libraries. | |_____________________________________________________________________|