Image of Advanced Programming in the UNIX Environment, Second Edition (Addison-Wesley Professional Computing Series)
Image of Operating System Concepts
Image of Modern Operating Systems (3rd Edition)
Image of XSLT 2.0 and XPath 2.0 Programmer's Reference (Programmer to Programmer)

What is /proc/config.gz?

Linux can store a gzip’ed copy of the kernel configuration file used to build the kernel in the kernel itself, and make it available to users via /proc/config.gz. This file is not always present in a Linux distribution. It is only present when /proc support is enabled and CONFIG_IKCONFIG and CONFIG_IKCONFIG_PROC are set to Y in the kernel configuration file. Most distributions do not enable it by default; instead they include the kernel configuration file under /boot. If in-kernel configuration support is built as a kernel module, then before you can use /proc/config.gz, the configs module needs to be loaded

Out of Memory Killer

I am logged in on pts/1 and using the Bash shell. As shown below, associated with my Bash shell process are three pseudo-files in procfs whose names start with oom. This post discusses the purpose of these files. # ps PID TTY TIME CMD 1688 pts/1 00:00:00 ps 10290 pts/1 00:00:00 sudo 10291 pts/1 00:00:00 su 10294 pts/1 00:00:00 bash # ls -l /proc/10294/oom* -rw-r–r–. 1 root root 0 Dec 26 17:13 /proc/10294/oom_adj -r–r–r–. 1 root root 0 Dec 26 17:13 /proc/10294/oom_score -rw-r–r–. 1 root root 0 Dec 26 17:13 /proc/10294/oom_score_adj # cat /proc/10294/oom_score 0 It turns out that these

My thoughts on Docker, i.e. Linux Containers

Docker is an open-source project, started by Solomon Hykes of dotCloud, that automates the packaging of an application and its dependencies, and the deployment of such applications inside software containers on a Linux kernel. Currently the technology is being strongly pushed by the Linux community and especially by Red Hat. Unlike hypervisor-based virtual machines, a Docker container does not include the kernel or all the operating system libraries, shells and utilities. Instead, it relies on functionality in the Linux kernel (cgroups, LXC, etc.) to provide resource and namespace isolation. In many ways this is similar to the older Oracle Solaris

Kernel Tracing Using Ftrace

Ftrace is one of those useful “kernel debugging” tools which you turn to when other debugging tools fail to reveal the underlying problem. Ftrace is a Linux kernel internals tracing tool that was first included in the 2.6.27 kernel in 2008. The main developer was (and still is) Steven Rostedt who is currently a Red Hat employee with responsiblity for the real-time patches in the Linux kernel. The name ftrace comes from the term function tracer, which was the original purpose of the tool, but nowadays it can do a lot more than just trace function calls. Over the years,

We don’t need no stinkin bootloaders!

I have been saying for a number of years now that bootloaders such as GRUB2, rEFit, Clover and others have no place in modern EFI-based Linux systems and that the only reason to use such a bootloader is if you are on older system where you wish to be able to boot into one of a number of operating systems. The Linux Foundation is now a member of Unified EFI Forum (about time!) and has now got full access to the resources of that forum. As a result, kernel developer Greg Kroah-Hartman has been working on the procedures for how