Programmers face much complexity from the co-existence of “native” (Unix-like) and virtual machine (VM) “managed” run-time environments. Rather than having VMs replace Unix processes, we investigate whether it makes sense for the latter to “become VMs”, by evolving Unix’s userlevel services to subsume those of VMs. We survey the (littleunderstood) VM-like features in modern Unix, noting common shortcomings: a lack of semantic metadata (“type information”) and the inability to bind from objects “back” to their metadata. We describe the design and implementation of a system, liballocs, which adds these capabilities in a highly compatible way, and explore its consequences. Categories and Subject Descriptors D.3.4 [Programming Languages]: Processors; D.4.7 [Operating Systems]: Organization and Design; D.2.12 [Software Engineering]: Interoperability Keywords Unix, virtual machines, reflection, debugging