Isn't software itself an abstraction layer to communicate with the underlying physical components? In theory, it's possible to build a machine that solves a problem without any software at all. Isn't this what an automaton represents—hardware directly engineered to perform specific tasks without the need for software?