WIP: moving closer to our goal

Separated out Linux-only code into *_linux.go files.