Live data from Hacker News

x86 Bare Metal Examples

github.com

11–20 of 59 posts

Re: x86 Bare Metal Examples

#13
post #6
post #2

What is the use-case in real life ? Is it to run special lab/factory equipment ? Anyone here who develops for bare metal - can you share any details?

A dream I've had for a long time is to make an application that you boot into, which is the only application on the computer, for maximum optimization. Upgrades would be easy, just reboot the computer and load the new software. Wouln't write everything in assembly though.

So a Unikernel with your program?

Re: x86 Bare Metal Examples

#14
post #6
post #2

What is the use-case in real life ? Is it to run special lab/factory equipment ? Anyone here who develops for bare metal - can you share any details?

A dream I've had for a long time is to make an application that you boot into, which is the only application on the computer, for maximum optimization. Upgrades would be easy, just reboot the computer and load the new software. Wouln't write everything in assembly though.

This is standard "embedded" system programming for lower-end MCUs. "Unikernels" use the same concept to create standalone bootable binaries(linked with reqd. OS modules) to run directly either on HW or on a VM Hypervisor.

See "IncludeOS" for one representative example.

Re: x86 Bare Metal Examples

#15
Using BIOS calls doesn't seem to be really "bare metal". One could use bios interrupt to read data from a disk, or also one could use memory mapping with a target device to write a device driver that could request the file. I find the second case a "bare metal" approach.

Fortunately most of the bios examples are using bios_* filenames. Rest of the files are very nice.

Re: x86 Bare Metal Examples

#16

Using BIOS calls doesn't seem to be really "bare metal". One could use bios interrupt to read data from a disk, or also one could use memory mapping with a target device to write a device driver that could request the file. I find the second case a "bare metal" approach. Fortunately most of the bios examples are using bios_* filenames. Rest of the files are very nice.

Yes, here we go again: https://news.ycombinator.com/item?id=18532102 :-)

I wonder how much lower level you can go with QEMU / how much it can match real hardware.

Pull requests / links welcome ;-)

Re: x86 Bare Metal Examples

#17
post #4

I'm kind of curious who's behind this Ciro Santili guy. He(?) seems to be doing a ton of interesting github repos, a great deal of informative stackoverflow answers and who knows what else. Also, some anti-CCP stuff in the profile?

I feel like this material is good for reference, but not so much for learning (especially if starting from zero with your first OS). I applaud the effort though.

Re: x86 Bare Metal Examples

#18
post #6
post #2

What is the use-case in real life ? Is it to run special lab/factory equipment ? Anyone here who develops for bare metal - can you share any details?

A dream I've had for a long time is to make an application that you boot into, which is the only application on the computer, for maximum optimization. Upgrades would be easy, just reboot the computer and load the new software. Wouln't write everything in assembly though.

you're describing any number of embedded systems, including the Arduino runtime - load up an Arduino app and you have your dream come true :-)

Re: x86 Bare Metal Examples

#19

Using BIOS calls doesn't seem to be really "bare metal". One could use bios interrupt to read data from a disk, or also one could use memory mapping with a target device to write a device driver that could request the file. I find the second case a "bare metal" approach. Fortunately most of the bios examples are using bios_* filenames. Rest of the files are very nice.

Yes, here we go again: https://news.ycombinator.com/item?id=18532102 :-) I wonder how much lower level you can go with QEMU / how much it can match real hardware. Pull requests / links welcome ;-)

[deleted]

Re: x86 Bare Metal Examples

#20
post #4

I'm kind of curious who's behind this Ciro Santili guy. He(?) seems to be doing a ton of interesting github repos, a great deal of informative stackoverflow answers and who knows what else. Also, some anti-CCP stuff in the profile?

I feel like this material is good for reference, but not so much for learning (especially if starting from zero with your first OS). I applaud the effort though.

Yes, this can be argued. Some of the links in the bibliography might be more suitable for that: https://github.com/cirosantilli/x86-bare-metal-examples/tree...
Post reply on HN