LLMpediaThe first transparent, open encyclopedia generated by LLMs

/dev/poll

Generated by GPT-5-mini
Note: This article was automatically generated by a large language model (LLM) from purely parametric knowledge (no retrieval). It may contain inaccuracies or hallucinations. This encyclopedia is part of a research project currently under review.
Article Genealogy
Parent: Lighttpd Hop 4
Expansion Funnel Raw 54 → Dedup 0 → NER 0 → Enqueued 0
1. Extracted54
2. After dedup0 (None)
3. After NER0 ()
4. Enqueued0 ()
/dev/poll
Name/dev/poll
TypeSystem facility
Introduced1997
DeveloperSun Microsystems
OsSolaris, illumos, OpenIndiana
GenreI/O multiplexing

/dev/poll

/dev/poll is an operating-system kernel facility and character device interface for scalable I/O event notification introduced in the late 1990s. It serves as an alternative to traditional mechanisms such as select (system call), poll (system call), and later influences designs like epoll and kqueue. Implementations appear primarily in operating systems descended from Solaris (operating system), with related work in projects such as OpenSolaris, illumos, and Oracle Solaris.

Overview

The facility provides an interface exposed to userland processes via a character device that accepts arrays of file descriptors and returns sets of ready descriptors. Sun Microsystems engineers designed it to reduce the overhead present in select (system call) and poll (system call), inspired by scalability requirements observed in network servers and event-driven frameworks used by organizations like Netscape Communications Corporation, Sun Microsystems, and later adopted patterns in projects from Google and Facebook. It occupies a place in the evolution of event notification alongside epoll (Linux), kqueue (FreeBSD), and IOCP (Windows), and has been cited in academic work from institutions like MIT, Stanford University, and UC Berkeley.

Interface and Usage

Users interact with the device through open, ioctl-style operations and read/write semantics that accept arrays describing interest sets and return arrays of ready events. Typical usage patterns mirror those of poll (system call), select (system call), and epoll (Linux), enabling event loops used by servers implemented by teams at Yahoo!, Akamai Technologies, LinkedIn, and Twitter. Libraries and runtime systems — for example codebases from Apache Software Foundation, Nginx, Lighttpd, and the Node.js ecosystem — map their abstraction layers to /dev/poll semantics to leverage reduced kernel-user copying, similar to integration patterns seen in libevent and libuv.

Implementation and Operation

Kernel-side, the facility manages kernel data structures that track registered file descriptors and their event masks to avoid repeated user-kernel data transfers; these structures are conceptually similar to those used in epoll (Linux), kqueue (FreeBSD), and earlier mechanisms explored in research from Bell Labs and universities like Carnegie Mellon University. The device accepts batched updates describing interests and provides batched readiness notifications, reducing per-descriptor overhead seen in select (system call) and edge-triggered/level-triggered semantics compared across epoll and kqueue. Implementations in Solaris (operating system) and forks such as OpenIndiana and illumos integrate with kernel subsystems like the STREAMS (Unix), Network File System, and network stack components maintained by teams associated with Sun Microsystems and later Oracle Corporation.

Performance and Scalability

Designed for workloads with large numbers of idle connections, the facility reduces system-call overhead and memory bandwidth by minimizing copying between user and kernel spaces, addressing scalability concerns highlighted by practitioners at Yahoo!, Akamai Technologies, Facebook, and Google. Benchmarks and comparative studies by researchers at University of California, Berkeley, Princeton University, and ETH Zurich show /dev/poll providing competitive latency and throughput against epoll (Linux) and kqueue (FreeBSD) in scenarios dominated by large descriptor sets and frequent inactivity. Performance trade-offs include wakeup strategies and fairness policies that system architects from Cisco Systems, Juniper Networks, and Intel Corporation consider when choosing between /dev/poll, epoll, kqueue, or platform-specific I/O completion frameworks such as IOCP (Windows).

Compatibility and Portability

The interface is native to Solaris (operating system), OpenSolaris, illumos, and distributions like OpenIndiana, and is not universally available on Linux (kernel), FreeBSD, or Microsoft Windows. Portability layers in middleware such as libevent, libuv, and server frameworks from Apache Software Foundation and NGINX, Inc. abstract over /dev/poll, epoll, and kqueue differences to provide cross-platform compatibility used by projects from Mozilla Foundation, Dropbox, and Microsoft. Emulation and compatibility shims have been constructed in research projects and by contributors associated with OpenBSD, FreeBSD, and Linux kernel developers to present similar semantics where native support is absent.

History and Development

The facility originated at Sun Microsystems in the context of scaling network services and was documented in engineering notes and talks given by Sun engineers and collaborators at conferences such as USENIX, IEEE INFOCOM, and ACM SIGCOMM. Subsequent evolution occurred through community efforts in OpenSolaris and forks like illumos and distributions such as OpenIndiana, with stewardship shifting following Oracle Corporation’s acquisition of Sun. The design influenced and was influenced by contemporaneous work at Bell Labs, University of California, Berkeley, and vendor projects from IBM, HP, and Microsoft, contributing to the broader landscape of event notification APIs used in high-performance servers and research prototypes developed at MIT and Stanford University.

Category:Operating system internals