I have received a number of emails about my photographs of London. My favorite is this desaturated shot of Westminster Abbey with the over-saturated Routemaster-esque double-decker bus racing by; the photo links to the oft-requested larger image.
In the New Yorker, historian Niall Ferguson asks, How much did the Marshall Plan matter?.
At some point, all programmers are concerned with the system level. Whether your day-to-day hacking lives much higher—in Python or Java, say—or if your raison d'être is indeed just above the kernel, a strong understanding of the system on which you build is crucial. There are plenty of books on Unix system programming—the late Stevens' sterling efforts, for example—but no book is both an excellent Unix system programming reference and a smart guide to what makes Linux unique, a reference to the Linux-specific interfaces that showcase our innovation.
Such a book would not waste time covering the differences between eight different Unix systems and the behavior dictated by three different Unix standards, but in lieu concentrate on what matters: Linux, and you writing better code, faster. Linux System Programming, out next month and published by the good folks at O'Reilly, is such a tome. I touch on file I/O to memory management, process scheduling to time management, from the kernel to glibc to gcc. I cover the basics and the advanced interfaces, the standard bearers and the Linux specific. The book explains how system calls are actually implemented in the kernel and how best to utilize this knowledge.
On this day, the 12th anniversary of Windows 95, which did not come with a web browser or install TCP/IP by default, you must preorder your seven copies of Linux System Programming!




