This article determines the weakest failure detectors to implement shared atomic objects in a distributed system with crash-prone processes. We first determine the weakest failure detector for the basic register object. We then use that to determine the weakest failure detector for all popular atomic objects including test-and-set, fetch-and-add, queue, consensus and compareand-swap, which we show is the same. Categories and Subject Descriptors: C.2.1 [Computer-Communication Networks]: Network Architecture and Design—distributed networks; C.2.4 [Computer-Communication Networks]: Distributed Systems; D.4.1 [Operating Systems]: Process Management—concurrency, multipro