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

UEFI Utility to Read TPM 2.0 PCRs

In a previous post, I discussed how to retrieve Platform Configuration Register (PCR) values from a discrete TPM (Trusted Platform Module) 1.2 chip (dTPM 1.2) and provided source code for a UEFI shell utility to display the digests from the first 16 PCRs. In this post, I discuss a number of key TPM 2.0 features and provide the source code for a UEFI shell utility to display the digests from the first 24 PCRs of a TPM 2.0 implementation. What is driving the move to TPM 2.0? Simple, TPM 1.2 ((ISO/IEC 11889) only supports one hash algorithm, i.e. SHA1, and

Utilities for Parsing Intel Microcode

A recent issue on a Linux platform with an Intel CPU prompted me to check to see if there was a microcode patch available from Intel to fix the issue. This blog post provides the source code for some of the Python utilities I wrote to assist me in determining if a microcode update was available for my particular issue or not. Intel distributes microcode updates in the form of a text file consisting of groups of big endian 32-bit integers represented as hexadecimals. As an example, here is a portion of one such file: /* Fri Nov 4 16:09:13

Examining Intel Microcode in Lenovo Firmware Updates

Recently, I decided to examine the contents of a Lenovo T450 firmware update before installing the firmware update and noticed that it included a number of Intel processor microcode updates. This blog post explores what information you can glean from these microcode updates and confirms the existence of an additional undocumented header in Intel microcode updates which was initially described by Chen and Ahn in their December 2014 paper Security Analysis of x86 Processor Microcode. Here is the contents of the latest firmware update (as of November 2016) for the Lenovo T450 laptop. It is a self extracting executable named

My Thoughts on Systemd on RHEL7

From the earliest days of systemd, I have been opposed to the technology as far as it’s use on enterprise servers is concerned. Now that RHEL7 (Red Hat Enterprise Linux v7), which uses systemd instead of upstart, is starting to replace older versions of RHEL in enterprise and DOD environments, I thought I would revisit the issue. My technical reasons for opposing systemd on servers are as follows: There is no guarantee that services will be started in the same order each time a server is rebooted. Logs are binary, non-transactional and in a different format than previously. This means

So You Think You Are Ready For The RHCSA Exam?

So you have studied hard, maybe even attended a week or two of formal training, for the Red Hat Certified System Administrator (RHCSA) exam and now you think you are ready to take the actual examination. Before you spend your money (currently $400) on the actual examination, why not download my custom CentOS 7.2 VM from and attempt a real world test of your RHCSA skills. This VM, which is in the form of an OVA (Open Virtualization Archive), will work with VMware Workstation 10 or later. Sorry, but if you want to use the VM in other environments,