Devices

All devices are accessed in a consistent manner by both users and programmers. For example, sending output to a file is accomplished using the same commands as sending it to a window (the window is created automatically if necessary), the parallel port, the internal speech synthesizer, a pipe, or any other device. Both synchronous and asynchronous I/O are supported by all devices.

A flexible device driver system allows multiple filesystems to be accessed via the same physical device. For example, when the floppy disk is referred to as device DF0, an Amiga filesystem is used. When accessed as MS0, an MS-DOS filesystem is used. The user may install new filesystems simply by editing a ``Mountlist'' file and then executing the mount command. (Of course, new filesystems must be written by a programmer.)

New device drivers may be installed simply by placing them into the DEVS: directory and issuing the mount command. No recompilation of the kernel is needed.

Interesting note: when examined closely, device drivers and shared libraries are almost identical internally.