The Elisp manual, node Rings, tells you about rings in Emacs.
It starts off with a description:
A ring is a fixed-size data structure that supports insertion, deletion, rotation, and modulo-indexed reference and traversal. An efficient ring data structure is implemented by the
ring package. It provides the functions listed in this section.
Note that several rings in Emacs, like the kill ring and the mark ring, are actually implemented as simple lists, not using the ring package...
As you can see from the basic ring functions described there, a ring is not just a list or just a stack. It has its own set of properties.
mark-ring is a list (of former marks). It is used together with the (current)
mark. You can use it like a stack, but you can also directly access any of its elements.