This event has ended. Create your own event → Check it out
This event has ended. Create your own
View analytic
Wednesday, August 19 • 10:25am - 11:15am
Everything's a File Descriptor - Josh Triplett

Sign up or log in to save this to your schedule and see who's attending!

The classic UNIX philosophy, "everything's a file", allows tools and system calls that operate on files to work on devices, /proc, and other objects. This doesn't mean everything has a filename; /dev, /proc, and /sys expose devices and kernel structures with filenames, but many new system calls offer file descriptors that serve as userspace handles for kernel structures without any corresponding filename, including signalfd, timerfd, and eventfd. The resulting file descriptors can be used with event loops using poll, epoll, or select.

Thiago Macieira and I implemented "clonefd", which turns processes into file descriptors and turns waitpid() into poll or read. These descriptors serve as race-free, container-safe process identifiers.

This talk will present clonefd, fd-based API design, and discuss other kernel APIs that would benefit from file descriptors.

avatar for Josh Triplett

Josh Triplett

Josh Triplett hacks on system software, including the Linux kernel, BITS, X, Git, Sparse, Debian, and Chrome OS. Josh enjoys using software for unconventional purposes, such as running Python directly on BIOS without an OS (https://biosbits.org). Josh works for the Intel Open Source Technology Center (OTC) as the Chrome OS Architect, making Chrome OS more awesome on Intel hardware. (Not speaking for Intel.)

Wednesday August 19, 2015 10:25am - 11:15am
Willow B