SOS is a single-tasking single-user operating system. It makes the resources of the Apple III available in the form of a menu-driven utility program as well as a programming application programming interface. A single program is loaded at boot time, called the interpreter. Once loaded, the interpreter can then use the SOS API to make requests of the system. The SOS API is divided into four main areas:
File Calls: Create, destroy, rename, open, close, read, write files; set, get prefix ; set, get file information; get volume information; set, set mark, EOF, and level of files
Device Calls: Get status, device number, information of a device; send device control data
Memory Calls: Request, find, change, release memory segment; get segment information; set segment number
Utility Calls: Get, set fence ; get, set time; get analog data; terminate.
Device-handling commands: copy, rename, format, verify volumes ; list devices; set time and date
File-handling commands: list, copy, delete, rename files; create subdirectories; set file write protection; set prefix
System Configuration Program : configure device drivers.
SOS has two types of devices it communicates with via device drivers: character devices and block devices. Examples of SOS character devices are keyboards and serial ports. Disk drives are typical block devices. Block devices can read or write one or more 512-byte blocks at a time; character devices can read or write single characters at a time.
Boot sequence
When powered on, the Apple III runs through system diagnostics, then reads block number zero from the built-in diskette drive into memory and executes it. SOS-formatted diskettes place a loader program in block zero. That loader program searches for, loads, and executes a file named SOS.KERNEL, which is the kernel and API of the operating system. The kernel, in turn, searches for and loads a file named SOS.INTERP and SOS.DRIVER, the set of device drivers to use. Once all files are loaded, control is passed to the SOS.INTERP program. Apple ProDOS uses the same file system as SOS. On a disk formatted by ProDOS, the ProDOS loader and SOS loader are written to blocks zero and one, respectively. The ProDOS loader includes code that can execute on an Apple III, and which will chainload the SOS loader from block one, so SOS and ProDOS can co-exist on the same volume. Some software, such as ADTPro, makes use of this to store Apple II and Apple III versions of a program on the same disk, which is then bootable on both systems.