Hardware and Software: It’s the same thing!

The distinction between hardware and software is artificial. The difference between the two is only one of scale: hardware works in the world of matter, software works in the world of energy1. However, whether you’re manipulating atoms, or electrons, you’re still just using the ‘rearranging of the physical’ as a tool (whether it be a hammer, or accounting software).

This is why it is possible for software and hardware to interact. This is why, when you press a mechanical key on your keyboard, a ‘virtual’ character can appear on the screen. This is why when a ‘virtual’ trigger is sprung, a physical activity can be initiated (when a conditional statement is true, the gears in your printer will turn).

Hardware and software are not two separate worlds. Rather, they are more like the ocean and the atmosphere of Earth: two varieties of the same concept. In practical terms, we think of the ocean as full of something, but of the atmosphere as empty. Really, we are just swimming in an ocean of air. The ocean and atmosphere are both fluids; one of water, one of air. So too is it with hardware and software, one of molecules, and one of electrons. Software is a machine.

If we can accept this premise, that there is really no clear distinction between hardware and software (other than a definitional distinction, much like the atmosphere and ocean), then we can extend the premise to ourselves. Human beings consist of hardware (our bodies) and software (our minds). Depending on your belief system, the soul may be part of the software layer, or may transcend both. However, this is beyond the scope of this article. Just like hardware and software are two ends of the same spectrum, so top are the human mind and the physical body.

If you write the alphabet in sand with a stick, all you have done is rearrange particles of sand. I’m not sure where to go with this. Perhaps this is just circular logic, a stating of the obvious (everything in the universe is just part of the universe – hardly groundbreaking). I’m clearly not breaking any new ground here. However, I think I have finally reconciled for myself, at least in theoretical terms if not in practical terms, what had always struck me as an incongruity: how software and hardware can interact – how moving a mouse can make a cursor move.

Somebody, please tell me they know what I’m talking about.

1. I accept the criticism that this difference I’m conceding (that hardware works in the world of matter while software works in the world of energy) may well be the very defining difference between hardware and software. However, I’m referring here to the more popular conception that there is some greater divide between the two.

18 thoughts on “Hardware and Software: It’s the same thing!

  1. I understand you Steve; I’ve thought about those ideas before too.

    I’ve read operating system textbooks that actually define a “process” as “the spirit of an executing program.” Also in computer engineering the concept of logic machines is often used. A logic machine is independent hardware/software and could be implemented in either. It’s called a machine since it has some inputs, some outputs, and a current state.

    I believe the “life of it’s own” nature of a running machine (any sort of machine from manufacturing to a computer) is equivalent to human conscieneness. Initially both are physically just a collection of parts (atoms), but when they start running (or executing, interacting, reacting or living) they take on a conscienceness. The complexity of the machine is proportional to the complexity of the conscienceness (intelligence).

  2. Ah, memories of philosophy class…

    I agree with you and know what you’re talking about as far as the *premise* of your article goes, but I think you take it too far. Before we can really talk about this, we must define what exactly we mean by “software.”

    In my view, at the most basic level I understand, “software” is a set of instructions indicated by the configuration of tiny magnetic domains on a hard disk. Millions of these domains, all oriented properly, define a program.

    So now that that’s clear, the line between hardware and software seems to become blurrier still. But I think there’s a fairly clear distinction: because software works with energy within hardware, it is easy to restructure the way software works, whereas with hardware, you must physically reconstruct it to change the way it operates.

    I think it’s like this: think back to The Matrix, in the Kung-Fu scene wherein Morpheus is explaining to Neo how the dojo “world,” just like the real world, has certain rules, like gravity. Hardware operates in the real world, meaning it is subject to its rules. The operation of hardware cannot defy the laws of physics. But software is different. It’s not so much that it is immune to the rules of the real world, but rather that it has nothing to do with them and knows nothing about them. Software operates within the world of hardware, just as hardware operates within the world of the universe. Software only interacts with the real world *through* hardware.

  3. Linus: You should not think of software solely as residing on a magnetic disk, as there are many means of storing data that don’t require magnetic storage (yes, electromagnetics obviously comes into play, but not on the general thought level). Also, the hardware line is blurry, since, in some sense of the word, you could say you’re ‘changing the way it works’ without physically changing any circuitry, but by simply reprogramming an FPGA (field programmable gate array). To some people, this would be a software change, to others, a hardware change. To me, it’s a reprogram of the chip on the board. To-may-to to-mah-to

  4. I agree with smartin. To say software is nothing more than electrons on a disk is like saying a novel is nothing more than ink on paper. In both cases the arrangement of the medium is just a mechanism to physically represent an abstract idea.

    An FPGA is a great example of the gray zone between hardware and software. Even better though would be a Turing Machine, an abstract representation of a computing device which is used to prove that any software could be implemented as hardware.

    Any program running on a sequential computer can be “unraveled” over time. In every clock cycle a processor executes an instruction. That instruction determines how the processor maps it’s input (current state of the system) into it’s output (next state of the system). Now imagine for every clock cycle of the processor, a snapshot of the current logic that maps the input to the output is taken. The complete series of snapshots could then be implemented directly in hardware, with each one’s output connected to the next one’s input.

    Now the same inital system state applied to the sequential computer could be applied to the first hardware stage, and after some propogation the same final system state would appear at the output of the final hardware stage.

    So yes, software and hardware are the same. But since we do not have infinite resources to build hardware (nor is it practical), we instead build generic hardware which can be reused every clock cycle.

  5. In a discussion with my brother (a programmer) regarding this thread, he gave me the following distinction. He makes the point that the key difference between hardware and software is simply the fact that software needs hardware. Hardware can run on its own, but software can only exist running on hardware.

  6. Hard- and Software are theoretical terms, and by that always subject to definition. There is no use to ask how it is, but how we see it, how we see the world and think it to be.

    Software differs from Hardware in one important aspect, which makes a crucial difference: Software is everything that could be done on a piece (or a load of) paper instead of a computer: I can write down the values of a bitmap and calculate a ‘blur’-effect on my own. But I can’t send a electronic signal just on a piece of paper, which a mouse does, when it moves (I’m not a technican). Software = Thought. Its represented in this material world on computer disks (or stamped pieces of paper like my father used in the good old 70s), but its thought, and by that definetly different from hardware. Seen from a human mind.

    A computer could not tell the difference, there I agree.

  7. re: Martin – I think you bring up a good point – the terms, hardware and software are theoretical, purely definitional (artificial) terms.

    In light of this, perhaps I should re-state my original point: fundamentally, the distinction between hardware and software is meaningful, but purely artificial.

  8. Martin, the blur-effect you describe doing by paper and pencil could be implemented in either hardware or software. In signal processing, software is often used initially for flexibilty and later the same transformations are implemented in hardware for speed.

    Steve, all abstract concepts we invent to describe things are “meaningful, but purely artificial*”. It doesn’t make them any less useful though.

    * arbitrary might be a better word here than artificial

  9. Sure it can exist… to just can’t run.

    A program is just a list of instructions that can be stored on any medium. I’ll agree that a process, an executing program, can not exist without hardware.

  10. re: Nathan’s “Sure it can exist… to just can’t run. A program is just a list of instructions that can be stored on any medium. I’ll agree that a process, an executing program, can not exist without hardware.

    Good point Nathan. But isn’t software that ‘exists’ but isn’t run in a way like “dead” software? Like a human, we are really just a collection of matter and energy – if you could scan this collection with sufficient resolution (something Ray Kurweil say’s we’ll being doing soon enough), then I (the human being) could ‘exist’, but not be alive. I have to be ‘running’ to be alive. This harkens back to your (Nathan’s) original definition of a “process” as “the spirit of an executing program.”

    Alan: Interesting point – I wonder if you could say that some bio-technology and nanotechnology is software that runs on cells and atoms rather than just silicon? By the same token, I suppose you could say that human beings (or all living things) are just software running on atoms.

  11. Does a book exist if it is not read? That’s the same as software that is not run. It becomes a philosophical question about the meaning of existance.

  12. The book itself exists when not being read, but the essence or spirit of the contents of the book (the story) may only exist in the mind of a reader – meaning, in a sense, an unread story does not exist as a story (rather, it is just a collection of words).

  13. I agree. However it’s a little more than just a collection. A collection does not imply an ordering. A book and a program are collections of words or instructions arranged in a particular order; a sequence.

  14. Interesting discusion. But i think sofware is like blood in human when if not “running” the body is dead and hardware is the body that carries the blood to legitimize its existance.

  15. i read what you wrote about the hardware and software, but i like to know more about how do they work together or what is the relationship between them.I am looking forward to hearing from you. so plaese contact me as soon as you can

Comments are closed.