Joshua

CTO @ Encamp
jmoyers@gmail.com

fork() is weird

Posted on May 27, 2016

Update 2019: Coursera killed every course permalink. ??? I was working through lecture 59 of the UW hardware software interface course and got interested in the origin of the fork-exec model for process management. In case you didn't know, fork is a way of creating a process in Unix-like systems. I have known this for a long time. I never really thought about how it works, though. It turns out, what it does is create a 'copy' (optimized to copy-on-write later on) of the existing program and returns the new process...

More

Inbox zero

Posted on May 27, 2016

For the first time in probably 10 years, I've got a handle on my email. I unsubscribed from every list I could find, created a set of auto filters that apply a label and skip inbox based on some lists that I still want to be subscribed to, but that I don't look at every day. I feel much less stressed about my communications. It had grown and grown over the years organically (both from managing 30+ people) and having interests in a ton of different topics. One thing I won't ever do again: subscribe to any mailing...

More

Functional programming readability

Posted on May 26, 2016

I was recently reading an article on "The Path to Rust," which is a topic I've been interested for some time, based on the promises of the language. Namely a language with explicit memory management without a garbage collector that claims to be thread and memory safe. Hardcore enough to have an inline assembly (gcc syntax, which is gross) and with a focus on performance. I really like C and C++ and have spent a fair amount of time actually learning x86-64 assembly. This is from a guy who spent most of...

More

Review of Open Security Training x86 courses

Posted on May 26, 2016

I recently went through Open Security Training's Intro to x86 assembly programming. Here is a quick review. Reference: Open Security Training Website and Youtube Playlist In general, I thought this was a worthwhile course to go through, despite having a pretty firm grasp on the material. I watched it at 2x speed and did do most of the suggested exercises. Its free and posted under Creative Commons, which is extremely generous. However, because it was a live class, there was definitely a fair amount of 'dead air'...

More

A look at memcpy assembly

Posted on May 26, 2016

I've been learning x86(-64) assembly on both Mac and Windows. I've been using the resources at Open Security Training as well as as the University of Washington Hardware/Software Interface course. My intent is to read two different selections on Windows and Mac OS internals as well in a quest to get closer to the hardware. One of the exercises was to disassemble memcpy and take a look at what its doing down a particular branch. Found it interesting, so gist is below. If the size of the struct is under 32 bytes,...

More