Linux Device Drivers Demystified
People new to Linux often hear that it has excellent support for all kinds of cards and that the device drivers are stable and fast. Sometimes, though, setting up devices under Linux is often not all plug-and-play. Below we try to demystify Linux device drivers, with the aim of smoothing device selection during installs.
Everything is a file
Skip this section if you aren't interested in the inside technical details.
Many modern operating systems have a method for installing special files to make hardware work. On the Apple Mac, for instance, the drivers for the hardware devices are usually special files that go in the System Extensions folder. Linux also has special files that it uses to control the hardware.
Linux device drivers work through special kernel code that directly accesses the hardware. To make the services that the card or other device offers available to normal user programs, the kernel uses the special files in
One end of the file in
/dev can be opened normally and the other end is attached to the kernel. That is of course an oversimplification, but I think you get the general idea: hardware, kernel, special file, user program and the same path back from user program to hardware. There are two forms of the kernel portion of this equation: compiled-in drivers that are coded in permanently when the kernel is built, and modules.
Solid state disks (SSDs) made a splash in consumer technology, and now the technology has its eyes on the enterprise storage market. Download this eBook to see what SSDs can do for your infrastructure and review the pros and cons of this potentially game-changing storage technology.
- 1Linux Top 3: GNOME 3.12 and New Betas for Ubuntu 14.04 and OpenMandriva Lx 2014.0
- 2Linux Top 3: Linus Lashes out, Linux 3.14 Gets PIE and Ubuntu One is Done.
- 3Linux Top 3: Ubuntu 14.04, Debian Gives Squeeze More Life and Red Hat Goes Atomic
- 4Linux Top 3: CoreOS, Oracle Enterprise Linux 7 and Ubuntu 14.10
- 5Linux Top 3: Knoppix 7.3, Slacko Puppy 5.7 and PC-BSD 10.0.1