Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> I understand "bare-metal" to mean without an operating system.

In your mind, how does a computer system function without an operating system?



Bare bones software (in the original sense of the term) interfaces directly with the hardware without abstracting it via an operating system. Much like an operating system would need to do in order to provide that abstraction (albeit you might not need to worry about paging, kernel rings etc with bare bones software).

You see this in plenty of domains: firmware, embedded systems, uEFI, bootloaders, etc.

This used to be the norm too. Old 8-bit personal computers like Commodores didn't run an OS, instead they'd have BASIC run as firmware (though you could get CP/M, GEM and others for a lot of the later generations of 8-bit micros).

You can also get modern software that runs bare metal without an OS. eg this game: https://github.com/adventurerok/Bare-metal-Space-Invaders-Cl...


Like an embedded system? Where at boot it just jumps to some offset in ROM where your program lives and starts executing. If you want I/O you better bring your own library and/or be willing to set registers.


Even embedded systems run on an OS, wondering of the GP knows that Ubuntu is running Linux (ie, an OS) under the hood.

And that Kubernetes deployments out there primarily run on Linux.


(am I the GP?)

No, not all embedded systems run an OS. Linux is not an OS, it's a kernel. Ubuntu is an OS. Kubernetes is application software that runs on several operating systems, primarily ones based on the Linux kernel.


Linux is indeed an OS: https://en.m.wikipedia.org/wiki/Linux

Ubuntu is not an OS, it's a Linux distribution.


> Even embedded systems run on an OS

Many do not. I've seen quite a few ARM processors running without any OS.


Simple. It only runs one what you think of as a "program".

I've written for bare metal on several platforms. Operating systems exist for a specific use case: when you want to run potentially multiple programs on the same piece of hardware, over time (not nec. concurrently), and you don't want your software to have to think about how to interface with the hardware. That's what operating systems do. There are plenty of cases when you don't need, or want, an OS.




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

Search: