x
Loading
 Loading
Hello, Guest | Login | Register
Kernel
Graphics into the kernel?
Debugging
Expand Your Debugging Toolkit with Kernel Probes
Tried of booting a debug kernel? Kprobes can intrude into your kernel code and extract debug information or apply run time medication.
Kexec can spawn a kernel-over-a-kernel without the overhead of boot firmware, while kdump can reliably collect a crash-dump using the services of kexec.

Profiling helps find code bottlenecks. Trace tools provide the ability to extract and interpret details about code execution.
Debuggers make kernel internals more transparent. On Linux, they come in different flavors: The Kernel debugger, kdb, the Kernel GNU debugger, kgdb, the GNU debugger, gdb, and JTAG- based debuggers. Learn how to use the former three in this month’s column.
Device Drivers
The Linux Device Model
Many Linux subsystems, such as the /dev filesystem, hotplug, module autoload, and microcode download have undergone significant changes with the introduction of the new device model. Learn about udev, sysfs, kobjects, classes, and more.
Technologies like Wi-Fi, GPRS, and miniature storage devices are ubiquitous today as PCMCIA or CF cards. The Linux kernel supports PCMCIA devices on a variety of architectures.
Some of the recent Intel microprocessors have the capability of correcting specific hardware bugs by loading a sequence of bits called a "microcode update" into the CPU. This feature is available on all processors in the Intel P6 family, including Pentium Pro, Celeron, Pentium II, Pentium III, Pentium II Xeon, Pentium III Xeon, and the newly released Pentium 4. This feature is applicable to both single-processor and multi-processor (SMP) systems.
The Universal Serial Bus, or USB, is a new type of peripheral interconnect that has become popular in recent years and is now standard equipment on most PCs and laptops. USB is an external interface, in that USB devices plug into ports outside of your PC's case; this is as opposed to internal interfaces, such as PCI.
Last month I began to develop a very simple camera driver as an illustration of Linux's video-capture interface. What we need to do now is to provide the functions to control the use of the device and to query its facilities. As with the radio driver, the major control interface is via the ioctl() function (Listing One). Video-capture devices support the same tuner calls as radio devices, and also support additional calls to control how the video functions are handled. In this simple example the card has no tuners, to avoid making the code complex.
Last month I talked about how to write a device driver for radio-tuner cards. This month, I'll cover video-capture devices, which share the same interfaces as radio devices.
In last month's article, we looked at writing a basic Linux SCSI driver -- one that basically sucked. Actually, this driver was worse than planned because it contained a bug which anyone running on an SMP box would have found pretty quickly.
Top Stories
Whether or not the graphics subsystem is part of the operating system's kernel or not is highly controversial, and popular opinion seems to change over time. For example, a certain other major OS has had graphics in, and then out of, the kernel several times now.
Managing a Linux system can be as easy as connecting to a remote system and run some of the system tool available with most Linux distributions. It gets difficult when you have to manage multiple remote systems, and many Linux admins do work in environments with hundreds or even thousands of systems.
Power consumption is a hot topic — from laptop, to datacenter. Recently, the Linux kernel has made huge steps forward in power conservation, thanks to tickless kernels.
Confronting multi-core anxiety and what the new processors mean for the future of commodity clusters.
Interrupt handlers are an integral part of most device drivers. Learn to implement interrupt handlers and bottom halves.
Look at messages generated during kernel boot and explore the internals of the more interesting ones.
Kernel helper interfaces make life easier for developers. Learn about notifier chains, completion functions and error handling aids.
The use of standard kernel helper facilities simplifies your code, weeds out redundancies from the kernel, and helps long-term maintenance. And since the helpers are bug-free and optimized, you inherit those benefits for free.
Learn how the kernel views physical memory.
Most embedded devices boot from flash memory and have data resident on flash-based storage. Here’s how to use flash devices while embedding Linux.
One of the most renowned features of Unix is the clear distinction between what occurs in "kernel space" and what occurs in "user space." This column will describe how to invoke kernel system calls from within kernel code. This is a first step towards understanding how to build a kernel-resident application, such as a high-performance Web server.
The role of the kernel is mostly related to hardware control, as user-space programs need a way of referring to hardware devices that they wish to use. Some hardware devices are used implicitly, through interfaces such as sockets or filesystems. However, it is often necessary to refer to a hardware device directly -- such as a particular serial port or hard-disk partition. This is accomplished through the use of special device files that are usually found in the /dev directory. The special files are not associated with data stored in the disk; rather, they correspond to particular hardware devices. When user programs access and use these special files, the operation is passed to a device driver in the system kernel. For example, when you issue an open and a read on the /dev/ttyS0 file, data is read from a serial port; the serial-port device driver is invoked whenever /dev/ttyS0 is accessed.
In this column, Alan Cox has written many good introductions on how to write kernel drivers for various types of hardware, from mice to SCSI boards to radio interfaces to video cards. However, it's not just the kernel that needs good drivers for new hardware -- with the increasing focus on Linux on the desktop, hardware support for XFree86 is just as important.
Follow Linux Magazine
Rackspace