Lately, Alias has been teaching our daughter how to hold our hand when we walk places. This is a relatively new experience for her, since she’s accustomed to us carrying her, putting her in a stroller, or leaving her to her own self-directed devices. Nevertheless, she’s picked the skill up well, and basically performs admirably. (more…)
2012.05.19
2011.12.21
page tables and you
Any comp-sci grad worth his or her student loan debt can tell you about virtual memory. And many can tell you the intricacies of dealing with unix-style VM. But for the developers working with Mac OS X (and iOS), there’s a deeper layer hidden underneath that is seldom expressed (and often for good reason) – Mach. (more…)
2011.01.06
2010.08.12
2010.07.31
Cache is King -or- Things are about to get MESI
A few days ago I was chatting with some friends, and the topic of caching came up. I mentioned MESI, which is the basis for modern multicore cache coherence (There are variants like MOESI and MERSI, but the general idea is the same). It then occurred to me that I’ve never actually made a test to see the effects of MESI in action. (more…)
2010.06.28
NX in action
NX, or the No eXecute bit, is an interesting technology that prevents instructions on the stack from getting executed. The reason for this is security (stack smashing becomes a bit more difficult for a would-be attacker), and the implications are typically few and far between. (more…)
2010.05.11
2010.02.08
2009.10.14
Reality Distortion Field Deflector (RDFD)
Mid last month (September, for those keeping score at home), a peculiar email arrived in my inbox. Therein, I was referred by an Apple employee with an opportunity to potentially work there. To say the least, my interest was piqued. After all, after spending the past 2 years up to my elbows in some of their software’s guts, reverse engineering, patching, and exploring, I’d like to think I had some authority on the subject.
2009.09.23
@synchronized, NSLock, pthread, OSSpinLock showdown, done right
Somewhere out there on the internet, there’s a “showdown” between @synchronized, NSLock, pthread mutexes, and OSSpinLock. It aims to measure their performance relative to each other, but uses sloppy code to perform the measuring. As a result, while the performance ordering is correct (@synchronized is the slowest, OSSpinLock is the fastest), the relative cost is severely misrepresented. Herein I attempt to rectify that benchmark.