Device Driver Tutorial

Devices Directories

The Oracle Solaris OS includes both /dev and /devices directories for device drivers. Almost all the drivers in the /dev directory are links to the /devices directory. The /dev directory is UNIX standard. The /devices directory is specific to the Oracle Solaris OS.

By convention, file names in the /dev directory are more readable. For example, the /dev directory might contain files with names such as kdb and mouse that are links to files such as /devices/pseudo/conskbd@0:kbd and /devices/pseudo/consms@0:mouse. The prtconf(1M) command shows device names that are very similar to the file names in the /devices directory. In the following example, only selected output of the command is shown.


% prtconf -P
        conskbd, instance #0
        consms, instance #0

Entries in the /dev directory that are not links to the /devices directory are device nodes or special files created by mknod(1M) or mknod(2). These are zero-length files that just have a major number and minor number attached to them. Linking to the physical name of the device in the /devices directory is preferred to using mknod(1M).

Prior to the Oracle Solaris 10 OS, /devices was an on-disk filesystem composed of subdirectories and files. Beginning with the Oracle Solaris 10 OS, /devices is a virtual filesystem that creates these subdirectories and special files on demand.

For more information about the devices file system, see the devfs(7FS) man page.