Linked by Thom Holwerda on Sat 15th Feb 2014 00:13 UTC, submitted by DeepThought
OSNews, Generic OSes

BareMetal OS now supports TCP/IP by way of a port of LwIP, originally by Adam Dunkels for embedded devices.

BareMetal is a 64-bit OS for x86-64 based computers. The OS is written entirely in Assembly, while applications can be written in Assembly or C/C++.

BareMetal boots via Pure64 and has a command line interface with the ability to load programs/data from a hard drive. Current plans for v0.7.0 call for basic TCP/IP support, improved file handling, as well as general bug fixes and optimizations.

Thread beginning with comment 582973
To read all comments associated with this story, please click here.
Question
by bassbeast on Sat 15th Feb 2014 18:18 UTC
bassbeast
Member since:
2007-11-11

What advantages would there be in using this over something like FreeDOS? I get the usage in HPC but they also name education and embedded and I just can't think of any advantage in those contexts.

If you are doing an embedded that every byte counts you 1.- probably aren't going to need 64bit and 2.- Linux and FreeDOS are better supported. And education? Unless there is some other use like "how to build your own OS 101" class (which again the simpler FreeDOS or better supported Linux would probably be better) I just can't picture a 64bit CLI OS having much use, not when there are Linux distros like PuppyOS that will run on 12 year old hardware just fine.

So is there an angle I'm missing here?

Reply Score: 4

RE: Question
by Kochise on Sat 15th Feb 2014 18:35 in reply to "Question"
Kochise Member since:
2006-03-03

Same could be said about your useless contribution. Yes, you are indeed missing the point. Perhaps because you not even dared to visit the BareMetalOS page and read the author's original intend.

FreeDOS is 32 bits, while it could be proven enough with a DOS4GW layer, nowadays even ARM provides 64 bits processors, which permit hypervisors.

Otherwise, as a base for a new 64 bits Grub-like OS selector with native WOL and PXE loading, that's fine.

Next time, don't forget to switch your brain on, and pay the Imaginarium of Doctor Parnassus a visit ;)

Kochise

Reply Parent Score: 3

RE: Question
by tanishaj on Sat 15th Feb 2014 19:00 in reply to "Question"
tanishaj Member since:
2010-12-22

From the site, here is what they say about Education - "Provide an environment for learning and experimenting with programming in x86-64 Assembly as well as Operating System fundamentals."

Is there some kind of "how to build your own OS 101"? Well yes actually. There are a great many of them. I myself would be pretty upset if I enrolled in one in 2014 and they tried to teach me the internals of a 16-bit single tasking interrupt handler (DOS). Linux is great but hardly the "simple" system you might want to use in education settings.

Also, if your goal is x86-64 assembly, is DOS really your environment of choice? You do know that it operates in real mode right? The Bare Metal OS code itself (written entirely in assembly) is probably a fantastic resource for learning (although I have not looked at it). Certainly, it must be better than the FreeDOS C or Linux C code.

Frankly, your comment confuses me greatly.

Edited 2014-02-15 19:01 UTC

Reply Parent Score: 7

RE: Question
by DeepThought on Sat 15th Feb 2014 19:30 in reply to "Question"
DeepThought Member since:
2010-07-17

What advantages would there be in using this over something like FreeDOS?


It is 64bit and assembly.

If you are doing an embedded that every byte counts you 1.- probably aren't going to need 64bit


Aha. I've done embedded project with 4GB of RAM and a lot of fixed point mathematics => you well benefit from 64bits.

I just can't picture a 64bit CLI OS having much use, not when there are Linux distros like PuppyOS that will run on 12 year old hardware just fine.

So is there an angle I'm missing here?


Yes indeed, you are missing many points:
- doing an assembly OS is fun.
- 64bit is the next native size of x86 CPUs in the future, so why stick to some
12 year old hardware


- one intention (AFAIK) is to have a small multi-cpu OS (note: not multi-tasking), so in case of small, Linux is the wrong choice.
- in terms of education: It is for sure nothing for students, but professionals who want to learn new stuff.
- BMOS is not intended to replace a GPOS like BSD or Linux.

BTW: I am in no way related to the Baremetal OS author. But I like the new OS approach.

Reply Parent Score: 5

RE: Question
by Drumhellar on Sat 15th Feb 2014 21:14 in reply to "Question"
Drumhellar Member since:
2005-07-12

Examining Linux in a "how to build an OS" type class is a terrible idea, simply due to the vast size of the project. OpenBSD would be better - An older version of Minix probably even better than that. This is because more mature operating systems have lots of performance hacks and compatibility hacks that make the actual effective design less clear from a an education standpoint.

But, as far as use in an embedded (or perhaps even HPC) context where performance matters, it would be much better than FreeDOS, which is 16-bit.

Running 64-bit code on FreeDOS would require switching between 64-bit long mode and 16-bit real mode every time any of the DOS services are needed - if any of the dos services are 32-bit, well, that's extra context switching.

Plus, long mode has far more general purpose registers available than the four you get in real mode or protected mode (32-bit), which makes a significant improvement in performance AND ease of use, compared to old x86. If you're using less than 4GB of ram, then depending on your code, the benefit from the extra registers could easily be larger than the penalty from longer word sizes. If you need more than 4GB of ram (Well, 3GB in practice), you absolutely need 64-bit. 32-bit + PAE is only fast enough when you're alternative is to swap to disk.

Reply Parent Score: 5

RE: Question
by Megol on Sun 16th Feb 2014 17:35 in reply to "Question"
Megol Member since:
2011-04-11

What advantages would there be in using this over something like FreeDOS? I get the usage in HPC but they also name education and embedded and I just can't think of any advantage in those contexts.

If you are doing an embedded that every byte counts you 1.- probably aren't going to need 64bit and 2.- Linux and FreeDOS are better supported. And education? Unless there is some other use like "how to build your own OS 101" class (which again the simpler FreeDOS or better supported Linux would probably be better) I just can't picture a 64bit CLI OS having much use, not when there are Linux distros like PuppyOS that will run on 12 year old hardware just fine.

So is there an angle I'm missing here?


Yes the one that you don't know anything about this subject but still likes to write stuff.

FreeDOS is a much more complicated 16 bit system written in C. Linux is a extremely more complex operating system written in C. 64 bit code needn't be larger than 16 bit one _in_a_practical_system_.

With that said/written I don't see much use for an assembly language operating system except for education/entertainment (of the developer(s)).

Reply Parent Score: 3

RE[2]: Question
by bassbeast on Mon 17th Feb 2014 09:16 in reply to "RE: Question"
bassbeast Member since:
2007-11-11

That still doesn't explain my question which is WHY U NEED 64BITS IN ASM???????

In HPC yes, you use large datasets, in the other 2 contexts? You have Kolibri, Minix, FreeDOS, a whole bunch of choices that would seem better suited to the task.

Oh and Kochise really needs to take a Midol, just saying.

Reply Parent Score: 3