Image of Advanced Programming in the UNIX Environment, Second Edition (Addison-Wesley Professional Computing Series)
Image of RHCE Red Hat Certified Engineer Linux Study Guide (Exam RH302) (Certification Press)
Image of Modern Operating Systems (3rd Edition)
Image of Linux Kernel Development (3rd Edition)

Korn Shell Launcher for Windows Subsystem for Linux

In this post, I show you how to create a Korn Shell launcher for the new Windows Subsystem for Linux.

Unico Theming Engine on Fedora 16

This post discusses GNOME theming engines and shows you how to build, install and use the Ubuntu Unico theming engine on Fedora 16

Gold Linker

It is a bit strange that the Gold linker is still not the default linker on Red Hat, Fedora or Ubuntu or any of their downstream distributions. Gold has been around for a number of years, having been first released to the open source community in early 2008. It was developed by Ian Lance Taylor and a small team at Google. Gold is drop-in replacement for the traditional BFD (Binary File Descriptor) based linker on X86 and X86_64 platforms. It links object files up to five times faster than the BFD linker. On very large builds such as the Chromium

Programmatically List Installed .deb Packages

While RPM packages have a robust ecosystem around them for programmatically retrieving information about package metadata, the Debian package management system is sorely lacking in this respect. Here is a simple C example which demonstrates how to programmatically list all installed Debian packages. #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <dpkg/dpkg.h> #include <dpkg/dpkg-db.h> #include <dpkg/pkg-array.h> #include "filesdb.h" const char thisname[] = "example1"; int main(int argc, const char *const *argv) { struct pkg_array array; struct pkginfo *pkg; int i; enum modstatdb_rw msdb_status; standard_startup(); filesdbinit(); msdb_status = modstatdb_open(msdbrw_readonly); pkg_infodb_init(msdb_status); pkg_array_init_from_db(&array); pkg_array_sort(&array, pkg_sorter_by_name); for (i = 0; i <