Layers of a Computer: Software Meets Hardware