Hacker News new | past | comments | ask | show | jobs | submit login

I think it might come from auto body shop terminology. We would remove layers of paint or rust and get down to the "bare metal" for prep work. That "down to the bare metal" phrase was very commonly used.

That is to say "no layers" or "right on the substrate".

Just a guess though.

We call the code that users can actually interact with (even code that's deployed to a web server on the other side of the world) "production" because that's what factories called it when they started producing something. It doesn't make much sense when you think about it either, but I also can't think of anything better to call it.

You're totally right. I think the intermediate step was that software houses producing software prior to online distribution becoming mainstream would refer to software as being 'in production' when it was sent to the factory for CD replication and distribution. Literally being 'in production' at the factory. I believe the term has persisted from this.

> That is to say "no layers" or "right on the substrate".

Ok, I feel very pedantic saying this, but the substrate is the thing that is mostly semi conductors :P.

This "silicon is not a metal" pedantry is a whole new layer of tedium. But if you want to take it that way: the data is mostly carried in the metal layers of aluminium, and the substrate is .. a substrate that's not doing very much.

If you really want to be pedantic then the data is processed and stored in flip flops and stored as charge in semi conductor dielectrics.

But don't take this so seriously, I work in semiconductor manufacturing and even I don't take it that seriously.

I've always thought:

All possible abstraction removed = bare metal

On x86/64 only the CPU vendors go down to that level. Well them and security researchers.

Would you exclude compiler/assembler developers ? Are they not using the bare chip capabilities? Is assembly an abstraction ?

On micro-coded CPUs Assembly is indeed an abstraction, because that is not what the CPU is running, hence why many mainframe manuals refer to Assembly as bytecode.

On x86/x64, the chips have long migrated to an internal RISC like architecture, with an Assembly => micro-op translation step on the decoding unit.

> Is assembly an abstraction ?

Yes, assembly is an (mostly fairly thin, on non-microcoded hardware) abstraction over machine code.

Assembly is an abstraction, as the others have mentioned, but many compiler people are aware of this as it affects performance.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact