Traditionally “bare-metal” would refer to running directly on physical hardware with no operating system. In the context of cloud providers, “metal” does now seem to mean “doesn’t run in a VM” but to varying extents. Seems like an unnecessary overload.
In the dark ages, when running an OS in the way you're referring to 'bare metal' was the default, it meant running something without a traditional kernel underneath it.
Not many things are written to do that, of course. Oracle used to offer an installation mode like this. It was generally a gimmick - you pay for a tiny bit of performance with a ton of flexibility. There are probably use cases where it makes sense, but not that many.
Yeah, but it was a super niche term back then. After 2010, at least, bare metal was used a lot more for: "running the OS we need (+ app) directly on a physical server".
This usage has been, in my experience, a lot more widespread.
> Oracle used to offer an installation mode like this
Oracle, and BEA before them, used to offer a JVM which ran on top of a thin custom OS designed only to host the JVM, you could call it a "unikernel". Product was called JRockit Virtual Edition (JRVE), WebLogic Server Virtual Edition (WLS-VE, when used to run WebLogic), earlier BEA called it LiquidVM. The internal name for that thin custom OS was in fact "Bare Metal". Similar in concept to https://github.com/cloudius-systems/osv but completely different implementation
I think one thing which caused a problem for it, is a lot of customers want to deploy various management tools to their VMs (security auditing software, performance monitoring software, etc) and when your VM runs a custom OS that becomes very difficult or impossible. So adopting this product could lead to the pain of having to ask for exceptions to policies requiring those tools and then defending the decision to adopt it against those who use those policies to argue against it. I think this is part of why the product was discontinued.
Nowadays, Oracle offers "bare metal servers" [1] – which are just hypervisor-less servers, same as other cloud vendors do. Or similarly, "Oracle Database Appliance Bare Metal System" [2] – which just means not installing a hypervisor on your Oracle Database Appliance.
So Oracle seems to have a history of using the phrase "bare metal" in both the senses being discussed here.
Hmm - what's the overlap between your definition of "bare metal" and the current definition of "embedded"?
I will say, this comment section is the first time I'm hearing about "bare-metal" meaning "without an OS", but the above question is genuine curiosity.
Those terms are orthogonal. Embedded typically refers to running on some HW that is not typically thought of as a computer. Embedded SW can run within an OS or on bare metal.
Directly on the hardware. It's the only definition of the term that I'm familiar with. Like the difference between writing your application and managing lifecycle and peripheral access all yourself directly to your MCU vs. using an RTOS to provide you facilities for task scheduling and I/O primitives, etc.
I've never before encountered, "Includes a full feature-rich OS" as "bare-metal" before. Reading the title I assumed someone managed to get some flavor of Kubernetes running right on the hardware as the lowest-level software layer of the system. That would have meant bare-metal to me. What's described here is running Kubernetes on a physical host rather than a virtual host from what I can tell, but it's not running Kubernetes "bare-metal" because between Kubernetes and the "metal" is Linux.
Or at least that's what it would mean in my world, but the interpretation appears to be different for others. Outside of confusion, I was also just disappointed. This article is just basically setting up Kubernetes. That it's on a physical host is a lot less interesting and novel to me than if they'd managed to implement some shape of Kubernetes as the OS itself, which is what I'd originally interpreted the title to mean.
Im surprised you've been downvoted as much as you have. It appears bare metal has a very specific meaning in certain contexts. For what its worth, it also has a very specific meaning in cloud provider contexts, which is exactly what you've defined here.
to me, running on "bare metal" means part of your program is setting up the clock for various buses and CPU and you have another little program who's job is to jump to the first address of your real program.
> In computer science, bare machine (or bare metal) refers to a computer executing instructions directly on logic hardware without an intervening operating system.