Linked by iseyler on Thu 16th Sep 2010 17:16 UTC
OSNews, Generic OSes BareMetal OS v0.4.9 has been released. Newest features are network communication via Ethernet as well as Memory allocation/free functions. BareMetal is an open source 64bit operating system for x86-64 computers. It is written in assembly, and applications can be written in assembly or C/C++. It's aimed at three target segments (high performance computing, embedded applications, and education). The kernel binary is still under 16 KiB as well!
Thread beginning with comment 441379
To read all comments associated with this story, please click here.
Well designed, very lightweight
by Innominandum on Thu 16th Sep 2010 22:46 UTC
Innominandum
Member since:
2005-11-18

It's very ignorant and arrogant to relegate any substantial work to "hobbyist," unimportant, or inconsequential.

The code and design is nicely structured. It provides everything many "serious" developer needs to write "serious" applications. Which isn't a lot. :-P

Unfortunately it's not a multi-tasking operating system. (Yet? Ever?) I also I disagree with the decision to integrate the library-type (string) routines into the OS.

This would make an excellent, simple, stable lightweight dedicated host operating system for a "serious" software project. ;-) Allowing a software developer to FULLY exploit the processing power of a computer.

Cries of "proprietary bootloader?" That sounds like a religious cult crusade to me. Just be happy that the developer(s) were generous enough to release the source.

Reply Score: 2

pgeorgi Member since:
2010-02-18

Cries of "proprietary bootloader?" That sounds like a religious cult crusade to me. Just be happy that the developer(s) were generous enough to release the source.

The main value seems to be in salvaging the BSD code to run from any other 64bit loader, which might not be what the developers intended with this release.

Reply Parent Score: 1

Soulbender Member since:
2005-08-18

Cries of "proprietary bootloader?" That sounds like a religious cult crusade to me


Sure. It couldn't possible be that forcing you to use a specific boot loader with your OS is incredibly lame.

Reply Parent Score: 2

Brendan Member since:
2005-11-16

Hi,

There's "boot code", "initialisation code" and the kernel itself. I'd assume that to make the kernel smaller most of the initialisation code is built into the boot code instead.

For things like the code to initialise paging and enable long mode, this is actually a much smarter way to do it than putting the initialisation code into the kernel itself (and then freeing it after it's used, like Linux does). It makes some things a lot simpler (like linking) because you're not mixing CPU modes and/or virtual addresses in the same binary; and may mean that the kernel itself is isolated from the boot environment - for example, if the OS is ever booted from 64-bit UEFI (where paging is setup and long mode is enabled before any boot code starts) then maybe you can use the exact same kernel binary (with different initialisation code).

Sure. It couldn't possible be that forcing you to use a specific boot loader with your OS is incredibly lame.


I can't think of any generic boot loader that currently supports 64-bit. GRUB2 and "multi-boot" might (or might not) have undocumented support for it, but if it does it'd be a moving target (not something that anyone can actually rely on, yet).

I'd also point out that most OSs do have their own native boot loader; and generic boot loaders (like GRUB) could mimic the native boot loader for BareMetal OS (in the same way that GRUB mimics the native boot loader for Linux, mimics the native boot loader for FreeBSD, etc).

- Brendan

Reply Parent Score: 4