Live data from Hacker News

BareMetal OS

github.com

41–50 of 50 posts

Re: BareMetal OS

#41
post #18

Earlier quoted context omitted.

I still stick with xv6: https://github.com/mit-pdos/xv6-public - It's not only a kernel, but also have user space - Code is pretty compact and well documented, in general can be understood in a few days - No need to spend hours to custom build gcc. Just use the one provided by the distro package manager The x86 version isn't mantained anymore. They switched to RISC-V.

I would give Minix3 a try.

No doubt it's more feature complete than xv6. Probably will try it on weekend.

Re: BareMetal OS

#42

It’s always fun to see this get brought up on Hacker News! I’m the developer behind BareMetal OS. Keep in mind that this is all geared toward raw compute and throughput. No ring-3, no multitasking (we do support multiple cores though), and no higher-level abstractions like TCP/IP or full-featured file systems. While it’s all coded in X86-64 assembly, a rewrite to ARM/RISC-V would be interesting once that hardware is…

Cool idea! I wonder if this may be useful for creating things like consoles, digital readouts etc. A very lightweight GUI library over this which writes directly to the video memory will do the job well.

Re: BareMetal OS

#43
post #25

Earlier quoted context omitted.

OS performance comes from algorithms and data structures not from compiler optimizations.

Os performance depends upon the overhead imposed over workloads. Being that a compilation, a computation or a communication task is a different topic.

Exactly, and that is a thing for every single piece of software ever written. Doesn't make a difference whether it's an OS or not.

Re: BareMetal OS

#44
post #21

Earlier quoted context omitted.

Extreme real-time control with total control over jitter etc. Not only fast response time but predictable.

Control over jitter would be less ideal for very tight deadlines due to branch prediction, cache misses, instruction counting, etc.

Yes?

Re: BareMetal OS

#45
post #19

So first, nicely done. But second, why have an OS at all if running only one program and supports only one ISA? "The operating system is another concept that is curious. Operating systems are dauntingly complex and totally unnecessary. It’s a brilliant thing that Bill Gates has done in selling the world on the notion of operating systems. It’s probably the greatest con game the world has ever seen... An operating sys…

As Dan Ingalls (implementor of Smalltalk) said:

"An operating system is a collection of things that don't fit inside a language; there shouldn't be one."

Re: BareMetal OS

#46
post #45
post #19

So first, nicely done. But second, why have an OS at all if running only one program and supports only one ISA? "The operating system is another concept that is curious. Operating systems are dauntingly complex and totally unnecessary. It’s a brilliant thing that Bill Gates has done in selling the world on the notion of operating systems. It’s probably the greatest con game the world has ever seen... An operating sys…

As Dan Ingalls (implementor of Smalltalk) said: "An operating system is a collection of things that don't fit inside a language; there shouldn't be one."

Thats kind of just redefining the OS though, and what a programming language is.

Smalltalk is a VM, the VM isn't 'inside of' the language.

You could argue that an OS is just another high level virtual machine.

Re: BareMetal OS

#47
post #10

It says that there's less overhead and higher efficiency, has anyone measured this? I'm wondering how big of a difference it makes.

FWIW it’s super hard to benchmark since it just doesn’t have many features. There’s no syscall for memory management for a start. So if you have an application that uses this you need to create your own memory routines in that app. At some point your app that successfully runs on this is doing all the things your os would normally do. At which point the os is superfluous anyway and the biggest optimizations are likel…

I think a fair benchmark would be some kind of task that this OS is particularly well suited for, and then implementing it relatively optimally on both platforms.

Hard realtime applications come to mind, though I'm not sure if BareMetal OS is suitable for those?

Re: BareMetal OS

#48
post #46
post #45

Earlier quoted context omitted.

As Dan Ingalls (implementor of Smalltalk) said: "An operating system is a collection of things that don't fit inside a language; there shouldn't be one."

Thats kind of just redefining the OS though, and what a programming language is. Smalltalk is a VM, the VM isn't 'inside of' the language. You could argue that an OS is just another high level virtual machine.

> Thats kind of just redefining the OS though, and what a programming language is.

Well, yes.

I am not deeply knowledgeable about the detailed history of Smalltalk, but my impression is that Alan Kay had the ideas and Ingalls wrote the code and made it work. He may be excused some bias. :-)

> You could argue that an OS is just another high level virtual machine.

Hmmmm. I think it depends on the OS.

OTOH, and I read this, barely understood it and disagreed with what I understood:

https://www.humprog.org/~stephen/research/papers/kell19unix-...

Re: BareMetal OS

#50
post #48
post #46

Earlier quoted context omitted.

Thats kind of just redefining the OS though, and what a programming language is. Smalltalk is a VM, the VM isn't 'inside of' the language. You could argue that an OS is just another high level virtual machine.

> Thats kind of just redefining the OS though, and what a programming language is. Well, yes. I am not deeply knowledgeable about the detailed history of Smalltalk, but my impression is that Alan Kay had the ideas and Ingalls wrote the code and made it work. He may be excused some bias. :-) > You could argue that an OS is just another high level virtual machine. Hmmmm. I think it depends on the OS. OTOH, and I read t…

Well a VM is meant to provide a machine agnostic environment.

An os does the same, with the quirk that its processor specific.

If youre writing Posix C, you shouldn't need to care what that software is running on, as long as its Posix. same goes for a Java or Smalltalk VM.

I suppose some things get interesting, when you start thinking in terms of languages. If you want to write to a serial port, is that an OS thing, or is that a library? Same for the file system. Is MSDOS an OS, or a library?

if you want to go ultra minimalist an OS is just locks and privileges. but I don't think anyone would class that as an OS.

The only satisfying answer for me, is the OS as a collection of services. Those services could be in the form of a programming language, but as Mr Kay points out, some bits don't fit in the programming language model.

This then raises the question, of how far you can take the model. 'everything as a file' does quite well, despite not applying to everything

Post reply on HN