 |
 |
 |
 |
Anatomy of a Linux hypervisor
One of the most important modern innovations of Linux is its
transformation into a hypervisor (or, an operating system for other operating
systems). A number of hypervisor solutions have appeared that use Linux as the
core. This article explores the ideas behind the hypervisor and two particular
hypervisors that use Linux as the platform (KVM and Lguest).
|
 |
31 May 2009 |
|
| |
Anatomy of the Linux virtual file system switch
Linux is the very definition of flexibility and extensibility. Take the
virtual file system switch (VFS). You can create file systems on a variety of
devices, from traditional disk, USB flash drives, memory, and other storage
devices. You can even embed a file system within the context of another file system.
Discover what makes the VFS so powerful, and learn its major
interfaces and processes.
|
 |
31 Aug 2009 |
|
| |
Anatomy of ext4
The fourth extended file system, or ext4, is the next generation of
journaling file systems, retaining backward compatibility with the previous
file system, ext3. Although ext4 is not currently the standard, it will be the
next default file system for most Linux distributions. Get to know ext4, and
discover why it will be your new favorite file system.
|
 |
17 Feb 2009 |
|
| |
Anatomy of Linux process management
The creation and management of user-space processes in Linux have many
principles in common with UNIX but also include several unique optimizations
specific to Linux. Here, review the life cycle of Linux processes and explore
the kernel internals for user process creation, memory management, scheduling,
and death.
|
 |
20 Dec 2008 |
|
| |
Anatomy of Linux dynamic libraries
Dynamically linked shared libraries are an important aspect of
GNU/Linux. They allow executables to dynamically access external functionality
at run time and thereby reduce their overall memory footprint (by bringing
functionality in when it's needed). This article investigates the process of
creating and using dynamic libraries, provides details on the various tools
for exploring them, and explores how these libraries work under the hood.
|
 |
20 Aug 2008 |
|
| |
Anatomy of Linux loadable kernel modules
Linux loadable kernel modules, introduced in version 1.2 of the kernel,
are one of the most important innovations in the Linux kernel. They provide a
kernel that is both scalable and dynamic. Discover the ideas behind loadable
modules, and learn how these independent objects dynamically become part of
the Linux kernel.
|
 |
16 Jul 2008 |
|
| |
Anatomy of Linux flash file systems
You've probably heard of Journaling Flash File System (JFFS) and
Yet Another Flash File System (YAFFS), but do you know what it means to
have a file system that assumes an underlying flash device? This article introduces
you to flash file systems for Linux, and explores how they care for their underlying
consumable devices (flash parts) through wear leveling, and identifies the various
flash file systems available along with their fundamental designs.
|
 |
20 May 2008 |
|
| |
Anatomy of Security-Enhanced Linux (SELinux)
Linux has been described as one of the most secure operating systems
available, but the National Security Agency (NSA) has taken Linux to the next level
with the introduction of Security-Enhanced Linux (SELinux). SELinux takes the
existing GNU/Linux operating system and extends it with kernel and user-space
modifications to make it bullet-proof. If you're running a 2.6 kernel today, you
might be surprised to know that you're using SELinux right now! This article
explores the ideas behind SELinux and how it's implemented.
|
 |
29 Apr 2008 |
|
| |
Anatomy of real-time Linux architectures
It's not that Linux isn't fast or efficient, but in some cases fast just
isn't good enough. What's needed instead is the ability to deterministically meet
scheduling deadlines with specific tolerances. Discover the various real-time Linux
alternatives and how they achieve real time -- from the early architectures that
mimic virtualization solutions to the options available today in the standard 2.6
kernel.
|
 |
15 Apr 2008 |
|
| |
Anatomy of the Linux SCSI subsystem
The Small Computer Systems Interface (SCSI) is a collection of standards
that define the interface and protocols for communicating with a large number of
devices (predominantly storage related). Linux provides a SCSI subsystem to permit
communication with these devices. Linux is a great example of a layered architecture
that joins high-level drivers, such as disk or CD-ROM drivers, to a physical
interface such as Fibre Channel or Serial Attached SCSI (SAS). This article
introduces you to the Linux SCSI subsystem and discusses where this subsystem is
going in the future.
|
 |
14 Nov 2007 |
|
| |
Anatomy of the Linux file system
When it comes to file systems, Linux is the Swiss Army knife of operating
systems. Linux supports a large number of file systems, from journaling to
clustering to cryptographic. Linux is a wonderful platform for using standard and
more exotic file systems and also for developing file systems. This article explores
the virtual file system (VFS) -- sometimes called the virtual filesystem switch --
in the Linux kernel and then reviews some of the major structures that tie file
systems together.
|
 |
30 Oct 2007 |
|
| |
Anatomy of Linux synchronization methods
In your Linux education, you may have learned about concurrency, critical
sections, and locking, but how do you use these concepts within the kernel? This
article reviews the locking mechanisms available within the 2.6 kernel, including
atomic operators, spinlocks, reader/writer locks, and kernel semaphores. It also
explores where each mechanism is most applicable for building safe and efficient
kernel code.
|
 |
31 Oct 2007 |
|
| |
Anatomy of Linux journaling file systems
In recent history, journaling file systems were viewed as an oddity and
thought of primarily in terms of research. But today, a journaling file system
(ext3) is the default in Linux. Discover the ideas behind journaling file systems,
and learn how they provide better integrity in the face of a power failure or system
crash. Learn about the various journaling file systems in use today, and peek into
the next generation of journaling file systems.
|
 |
04 Jun 2008 |
|
| |
Anatomy of the Linux networking stack
One of the greatest features of the Linux operating system is its networking
stack. It was initially a derivative of the BSD stack and is well organized with a
clean set of interfaces. Its interfaces range from the protocol agnostics, such as
the common sockets layer interface or the device layer, to the specific interfaces
of the individual networking protocols. This article explores the structure of the
Linux networking stack from the perspective of its layers and also examines some of
its major structures.
|
 |
27 Jun 2007 |
|
| |
Anatomy of the Linux kernel
The Linux kernel is the core of a large and complex operating system, and
while it's huge, it is well organized in terms of subsystems and layers. In this
article, you explore the general structure of the Linux kernel and get to know its
major subsystems and core interfaces. Where possible, you get links to other IBM
articles to help you dig deeper.
|
 |
06 Jun 2007 |
|
| |
Anatomy of the Linux slab allocator
Good operating system performance depends in part on the operating system's
ability to efficiently manage resources. In the old days, heap memory managers were
the norm, but performance suffered due to fragmentation and the need for memory
reclamation. Today, the Linux kernel uses a method that originated in Solaris but
has been used in embedded systems for quite some time, allocating memory as objects
based on their size. This article explores the ideas behind the slab allocator and
examines its interfaces and their use.
|
 |
15 May 2007 |
|
| |