Raw device

Special kind of logical device to allow storage device to be accessed directly

In computing, specifically in Unix and Unix-like operating systems, a raw device is a special kind of logical device associated with a character device file that allows a storage device such as a hard disk drive to be accessed directly, bypassing the operating system's caches and buffers (although the hardware caches might still be used). Applications like a database management system can use raw devices directly, enabling them to manage how data is cached, rather than deferring this task to the operating system.

In FreeBSD, all device files are in fact raw devices. Support for non-raw devices was removed in FreeBSD 4.0 in order to simplify buffer management and increase scalability and performance.[1]

In Linux kernel, raw devices were deprecated and scheduled for removal at one point, because the O_DIRECT flag can be used instead.[2] However, later the decision was made to keep raw devices support since some software cannot use the O_DIRECT flag.[3] Raw devices simply open block devices as if the O_DIRECT flag would have been specified. Raw devices are character devices (major number 162). The first minor number (i.e. 0) is reserved as a control interface and is usually found at /dev/rawctl. A command-line utility called raw[4] can be used to bind a raw device to an existing block device. These "existing block devices" may be disks or CD-ROMs/DVDs whose underlying interface can be anything supported by the Linux kernel (for example, IDE/ATA or SCSI).[5]

References

  1. ^ "FreeBSD Architecture Handbook: 9.4. Block Devices (Are Gone)". Retrieved 2017-06-29.
  2. ^ Day, Robert P. J. (2007-02-16). "[PATCH] Remove obsolete raw device support". Retrieved 2017-06-29.
  3. ^ Jones, Dave (2007-05-13). "undeprecate raw driver". Retrieved 2017-06-29.
  4. ^ "util-linux: raw(8)". August 1999. Retrieved 2017-06-29.
  5. ^ "The Linux 2.4 SCSI subsystem HOWTO: Chapter 11. Raw devices". Linux Documentation Project. 2004-09-13. Retrieved 2017-06-29.
  • v
  • t
  • e
Linux kernel
Organization
Kernel
Support
Technical
Debugging
Startup
ABIs
APIs
Kernel
System Call
Interface
In-kernel
Userspace
Daemons,
File systems
Wrapper
libraries
Components
Variants
Virtualization
Adoption
Range
of use
Adopters
  • icon Linux portal
  •  Free and open-source software portal
  • Category
  • v
  • t
  • e
Linux kernel
Controversies
Distributions
Organizations
Adoption
Media
Professional related certifications
  • icon Linux portal
  •  Free and open-source software portal
  • Category
  • v
  • t
  • e
Operating
systems
BSD
Linux
System V
Other
Compatibility
layers
  • Italics indicate discontinued systems. Category
  • Commons


Stub icon

This Linux-related article is a stub. You can help Wikipedia by expanding it.

  • v
  • t
  • e