Acts of Volition


Comments are locked. No additional comments may be posted.

nathan -

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).

Linus -

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.

Ryan Hillier -

"You think that's <i>information</i> you're processing now? ... Hm."

smartin -

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

nathan -

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.

Nick Burka -

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 <i>needs</i> hardware. Hardware can run on its own, but software can only exist running on hardware.

Martin Herrndorf -

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.

Steven Garrity -

re: Martin - I think you bring up a good point - the terms, <i>hardware</i> and <i>software</i> 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.

nathan -

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.

* <i>arbitrary</i> might be a better word here than <i>artificial</i>

Steven -

Hardware can exist without software. But software can't exist without hardware...

nathan -

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 <i>process</i>, an executing program, can not exist without hardware.

Alan -

In "Why the Future Does not Need Us" there is a scary point at which the implications of Nate "any medium" are explored and that nanotechnology and biochemistry may see "software" being placed in organic settings.

<p><i>[link added by moderator]</i>

Steven Garrity -

re: Nathan's "<i>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.</i>"

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.

nathan -

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.

Steven Garrity -

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).

nathan -

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.

Eric -

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.

mr ibrahim -

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