My technical book collection has grown quite large, though there are only a few books I go back to time and time again. I just took Self Service Linux and Linux Kernel Development off my shelf, and am planning to re-read both books over the Thanksgiving holiday. Self Service Linux is hands down one of the best technical books I’ve ever read, and the level of detail the author goes into is astounding. If there is a book on your shelf that you keep coming back to time and time gain, please leave me a comment. I’m looking to expand out quite a bit in 2011, and am hoping to start formally studying software development and algorithms. Hope everyone has a killer holiday, and I look forward to hearing about your favorite books!
Having lived in a big city for the past 10-years of my life, I’ve encountered a number of unpleasant things when I’ve been out and about. A few weeks back I hit one of the most frustrating ones of my life when a nail punctured one my tires while I was running errands. This shouldn’t have been an issue, but alas my spare tire was on the low side and I didn’t feel comfortable driving with it. With no gas stations in sight the feeling of “oh crap” came over me.
After spending 30 minutes on the phone with my insurance company, the agent told me that my insurance policy included roadside assistance. Thank goodness! They showed up an hour later and filled my spare and changed out my flat. After thanking the assitance guy 50 times, I proceed to head to a automotive shop to get my flat tire patched.
This experience got me thinking about ways to prevent this in the future, and after doing a bit of research I came across the Wagan 400-Watt Power Dome EX jumpstarter with built-in air compressor. This nifty little device comes with a number of useful features:
– Built-in battery charger
– Air compressor
– Flash light
– USB charger
– AM/FM radio
I tested out the radio, light and air compressor after my unit arrived from Amazon, and they all worked as advertised. This past week one of my co-worker’s had a dead battery in her car, so I got to verify the jumpstarting feature worked. Jumpstarting her car worked flawlessly, and I have since stashed my powerdome EX in the trunk of my vehicle.
This crappy experience has taught me a couple of valuable lessons. Cars are just like servers. They fail when you don’t want them to, and sometimes the easiest problems become the most difficult ones to solve. I’m planning to pick up a few more gadgets for my car to avoid getting into a similar situation in the future! If you keep anything in your vehicle to help out with emergencies, please let me know! I’d like to be better prepared for future events.
Brian Hall, “Beej” wrote a cool tutorial explaining all the different aspects of traditional UNIX Inter Process Communication (IPC). He provides a lot of C code where you can compile / test these concepts yourself for a better understanding. The high level concepts in this tutorial would be great material to use in conducting technical interviews. =) Thanks Brian!
Wow, I can’t believe 999 blog entries have been posted to the prefetch blog! This blog started all the way back in October of 2004, and was a way for me to document technology as I learned it. I never thought people would actually read it, and am even more amazed that this site now generates close to 600k+ hits per month. Yikes! The past five years have been pretty awesome, and I can’t even begin to describe how blessed I am to be working with technology on a daily basis (it’s a blast!). Thanks to everyone who reads this blog, and a HUGE shout out to my bloging partner Mike Svoboda! I hope to keep using this blog as a technology journal, and look forward to an awesome future!
I came across an awesome Q&Q where Tim Mueting from AMD described the hardware virtualization features in AMD Opteron CPUs. The following excerpt from the interview was especially interesting:
“Prior to the introduction of RVI, software solutions used something called shadow paging to translate a virtual machine “guest” physical address to the system’s physical address. Because the original page table architecture wasn’t designed with virtualization in mind, a mirror of the page tables had to be created in software, called shadow page tables, to keep information about the physical location of “guest” memory. With shadow paging, the hypervisor must keep the shadow page tables “in sync” with the page tables in hardware. Every time the guest OS modifies its page mapping, the hypervisor must adjust the shadow page tables to reflect the modification. The constant updating of the shadow pages tables takes a lot of CPU cycles. As you might expect, for memory intensive applications, this process can make up the largest part of the performance overhead for virtualization.”
“With Rapid Virtualization indexing the virtual memory (Guest OS) to physical memory (Guest OS) and the physical memory (Guest OS) to real physical memory translations are cached in the TLB. As described earlier, we also added a new identifier to the TLB called an Address Space Identifier (ASID) which assigns each entry to a specific VM. With this tag, the TLB entries do not need to be flushed each time execution switches from one VM to another. This simplifies the work that the hypervisor needs to do and removes the need for the hypervisor to update shadow page tables. We can now rely on the hardware to determine the physical location of the guest memory.”
I just ordered a second AMD Opteron 1354 for my lab, and am looking to forward to testing out the VMWare fault tolerance feature once I receive my new CPU. Viva la virtualization!