Linux Kernel 2.4 Internals

FreeBSE 7.3 Released

FreeBSD 7.3 ready to serve. From FreeBSD press release : Some of the highlights: * ZFS updated to version 13 * new boot loader gptzfsboot supports GPT and ZFS * hwpmc(4) enhancements including support for Core2/i7 processor and pmcannotate(8) * new mfiutil and mptutil tools for widely used RAID controllers ...

Read More »

IPC mechanisms

This chapter describes the semaphore, shared memory, and message queue IPC mechanisms as implemented in the Linux 2.4 kernel. It is organized into four sections. The first three sections cover the interfaces and support functions for semaphores, message queues, and shared memory respectively. The last section describes a set of ...

Read More »

Linux Page Cache

In this chapter we describe the Linux 2.4 pagecache. The pagecache is – as the name suggests – a cache of physical pages. In the UNIX world the concept of a pagecache became popular with the introduction of SVR4 UNIX, where it replaced the buffercache for data IO operations. While ...

Read More »

Virtual Filesystem (VFS)

3.1 Inode Caches and Interaction with Dcache In order to support multiple filesystems, Linux contains a special kernel interface level called VFS (Virtual Filesystem Switch). This is similar to the vnode/vfs interface found in SVR4 derivatives (originally it came from BSD and Sun original implementations). Linux inode cache is implemented ...

Read More »

Process and Interrupt Management

2.1 Task Structure and Process Table Every process under Linux is dynamically allocated a struct task_struct structure. The maximum number of processes which can be created on Linux is limited only by the amount of physical memory present, and is equal to (see kernel/fork.c:fork_init()): /* * The default maximum number ...

Read More »

Booting

1. Booting 1.1 Building the Linux Kernel Image This section explains the steps taken during compilation of the Linux kernel and the output produced at each stage. The build process depends on the architecture so I would like to emphasize that we only consider building a Linux/x86 kernel. When the ...

Read More »