his paper determines the computational strenght of the shared memory abstraction (a register) emulated over a message passing system, and compares it with fundamental message passing abstractions like consensus and various forms of reliable broadcast. We introduce the notion of Quorum failure detectors and show that this notion captures the exact amount of information about failures needed to emulate a shared memory in a distributed message passing system where processes can fail by crashing. As a corollary of our result, we determine the weakest failure detector to implement consensus in any environment, including those where half of the processes can crash. We also use our result to precisely compare the strenght of the shared memory abstraction with other distributed computing abstractions. In particular, we show that, in the general environment where up to $n-1$ processes can crash (out of the total number of processes $n$), various fundamental distributed computing abstractions, including shared memory, consensus, as well as terminating reliable broadcast, are, in a precise sense, equivalent.