Go to main content

man pages section 4: Device and Network Interfaces

Exit Print View

Updated: Wednesday, July 27, 2022



Intro, intro - introduction to special files


This section describes various device and network interfaces available on the system. The types of interfaces described include character and block devices, STREAMS modules, network protocols, file systems, and ioctl requests for driver subsystems and classes.

This section contains the following major collections:


The system provides drivers for a variety of hardware devices, such as disk, magnetic tapes, serial communication lines, mice, and frame buffers, as well as virtual devices such as pseudo-terminals and windows.

This section describes special files that refer to specific hardware peripherals and device drivers. STREAMS device drivers are also described. Characteristics of both the hardware device and the corresponding device driver are discussed where applicable.

An application accesses a device through that device's special file. This section specifies the device special file to be used to access the device as well as application programming interface (API) information relevant to the use of the device driver.

All device special files are located under the /devices directory. The /devices directory hierarchy attempts to mirror the hierarchy of system busses, controllers, and devices configured on the system. Logical device names for special files in /devices are located under the /dev directory. Although not every special file under /devices will have a corresponding logical entry under /dev, whenever possible, an application should reference a device using the logical name for the device. Logical device names are listed in the FILES section of the page for the device in question.

This section also describes driver configuration where applicable. Many device drivers have a driver configuration file of the form driver_name.conf associated with them (see driver.conf(5)). The configuration information stored in the driver configuration file is used to configure the driver and the device. Driver configuration files are located in /kernel/drv and /usr/kernel/drv. Driver configuration files for platform dependent drivers are located in /platform/`uname -i`/kernel/drv where `uname -i` is the output of the uname(1) command with the -i option.

Some driver configuration files may contain user configurable properties. These properties may be set in user-administered driver.conf files, which may be added in /etc/driver/drv to supplement the vendor driver configuration. To inform the system of a change to a driver's configuration, use update_drv(8). This utility can reread a driver's configuration and detach all instances of the driver so the new configuration can be applied on attach. If not all instances can be detached, it can selectively detach those that can be. Alternatively, a driver can be removed and re-added (see rem_drv(8) and add_drv(8)) or rebooted to effect the driver configuration change.


This section describes the programmatic interface for several file systems supported by Oracle Solaris.


This section describes ioctl requests which apply to a class of drivers or subsystems. For example, ioctl requests which apply to most tape devices are discussed in mtio(4I). Ioctl requests relevant to only a specific device are described on the man page for that device. The page for the device in question should still be examined for exceptions to the ioctls listed in section 4I.


This section describes STREAMS modules. Note that STREAMS drivers are discussed in section 4D. streamio(4I) contains a list of ioctl requests used to manipulate STREAMS modules and interface with the STREAMS framework. Ioctl requests specific to a STREAMS module will be discussed on the man page for that module.


This section describes various network protocols available in Oracle Solaris.

Oracle Solaris supports both socket-based and STREAMS-based network communications. The Internet protocol family, described in inet(4P), is the primary protocol family supported by Oracle Solaris, although the system can support a number of others. The raw interface provides low-level services, such as packet fragmentation and reassembly, routing, addressing, and basic transport for socket-based implementations. Facilities for communicating using an Internet-family protocol are generally accessed by specifying the AF_INET address family when binding a socket; see socket(3C) for details.

Major protocols in the Internet family include:

  • The Internet Protocol (IP) itself, which supports the universal datagram format, as described in ip(4P). This is the default protocol for SOCK_RAW type sockets within the AF_INET domain.

  • The Transmission Control Protocol (TCP); see tcp(4P). This is the default protocol for SOCK_STREAM type sockets.

  • The User Datagram Protocol (UDP); see udp(4P). This is the default protocol for SOCK_DGRAM type sockets.

  • The Address Resolution Protocol (ARP); see arp(4P).

  • The Internet Control Message Protocol (ICMP); see icmp(4P).

See Also

add_drv(8), update_drv(8), rem_drv(8), Intro(3), ioctl(2), socket(3C), driver.conf(5), arp(4P), icmp(4P), inet(4P), ip(4P), mtio(4I), st(4D), streamio(4I), tcp(4P), udp(4P)

Managing System Services in Oracle Solaris 11.4

STREAMS Programming Guide

Writing Device Drivers in Oracle Solaris 11.4