OSDev.org
https://forum.osdev.org/

BareMetal OS
https://forum.osdev.org/viewtopic.php?f=2&t=21651
Page 1 of 3

Author:  IanSeyler [ Wed Mar 03, 2010 9:25 am ]
Post subject:  BareMetal OS

Latest news: BareMetal OS v0.5.2 was released today. Mainly a maintenance release. Very basic ipconfig util with ARP and ICMP support (It will respond to ping).

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++. Development of the Operating System is guided by its 3 target segments:

* High Performance Computing - Act as the base OS for a HPC cluster node. Running advanced computation workloads is ideal for a mono-tasking Operating System.
* Embedded Applications - Provide a platform for embedded applications running on commodity x86-64 hardware.
* Education - Provide an environment for learning and experimenting with programming in x86-64 Assembly as well as Operating System fundamentals.

http://www.returninfinity.com/baremetal.html

Old posting:
BareMetal OS v0.5.2 was released today. The main changes have been the addition of the Newlib C library that applications can now compile against.

Older posting:
BareMetal OS v0.5.1 was released today. The main changes have been the addition of Gigabit Ethernet support via the Intel PRO/1000 and Realtek 8169.

Much Older posting:
BareMetal OS v0.5.0 was released today. The main changes have been the addition of Ethernet communications and memory functions.

Much, Much Older posting:
BareMetal OS v0.4.8 was released today. C library updates, additions to the documentation, bug fixes, etc.

Much, Much, Much Older posting:
BareMetal OS v0.4.6 was released yesterday. Major additions were the ability to write back to the harddrive (FAT16 formatted) as well as draft documentation on the OS. The C library for applications was also updated. Next steps are for PCI and network access.

BareMetal is a 64-bit, monotasking, multiprocessor Operating System written in Assembly.

http://www.returninfinity.com/baremetal.html

-Ian

Author:  01000101 [ Wed Mar 03, 2010 12:00 pm ]
Post subject:  Re: BareMetal OS v0.4.6

Unfortunately I don't have time to test your release until I get home. I mainly wanted to say that your website is slick!
I'll post something more meaninful/helpful later on lol

Author:  VolTeK [ Wed Mar 03, 2010 7:29 pm ]
Post subject:  Re: BareMetal OS v0.4.6

well done, i barely see 64 bit os's, Thank you for releasing your latest one

Author:  IanSeyler [ Fri Mar 05, 2010 11:21 am ]
Post subject:  Re: BareMetal OS v0.4.6

Thanks. If anyone has time to read and give feedback on the Architecture doc that would be great.

Author:  Lithorien [ Fri Mar 05, 2010 12:24 pm ]
Post subject:  Re: BareMetal OS v0.4.6

ReturnInfinity wrote:
Thanks. If anyone has time to read and give feedback on the Architecture doc that would be great.


I'm just chiming in to say that I love the idea of having a, essentially, 64-bit version of DOS. Thanks for putting one out there. :)

Author:  AaronMiller [ Fri Mar 05, 2010 6:07 pm ]
Post subject:  Re: BareMetal OS v0.4.6

Yes, this definitely looks quite useful. :)

Author:  IanSeyler [ Tue Mar 09, 2010 2:00 pm ]
Post subject:  Re: BareMetal OS v0.4.6

As of SVN revision #188 applications can retrieve the arguments that were passed to them.

Programming an app to use arguments is pretty straightforward:
Code:
[BITS 64]
[ORG 0x0000000000200000]

%INCLUDE "bmdev.asm"

start:               ; Start of program label

   call os_get_argc
   cmp al, 1
   je noargs
   mov rsi, hello_message      ; Load RSI with memory address of string
   call os_print_string      ; Print the string that RSI points to
   mov al, 1
   call os_get_argv
   call os_print_string
   call os_print_newline
   jmp fin
   
noargs:
   mov rsi, noargs_message
   call os_print_string

fin:

ret               ; Return to OS

hello_message: db 'Hello, ', 0
noargs_message: db 'no arguments supplied', 13, 0

Running the program without arguments will result in "no arguments supplied" being printed to the screen.
Running the program as "testapp Bob" will result in "Hello, Bob" being printed to the screen.

Author:  AaronMiller [ Tue Mar 09, 2010 2:03 pm ]
Post subject:  Re: BareMetal OS v0.4.6

That's cool. :) EDIT: Nevermind.

Author:  f2 [ Wed Mar 10, 2010 2:27 pm ]
Post subject:  Re: BareMetal OS v0.4.6

Tested. Works fine. Also, thanks for the documentation. I'll try to write some applications for it.

Author:  IanSeyler [ Tue Mar 30, 2010 2:56 pm ]
Post subject:  Re: BareMetal OS v0.4.6

As of SVN revision #197 SMP handling has changed dramatically. Originally, tasks were assigned directly to a CPU. As of now there is a "work queue" that all CPUs poll. The os_smp_enqueue function adds a workload to the queue (just a simple circular buffer).

Author:  IanSeyler [ Fri Apr 30, 2010 11:34 am ]
Post subject:  Re: BareMetal OS v0.4.7

Version 0.4.7 is out now. See the start of the thread for more information.

Author:  Neolander [ Mon May 03, 2010 2:03 am ]
Post subject:  Re: BareMetal OS v0.4.6

ReturnInfinity wrote:
Thanks. If anyone has time to read and give feedback on the Architecture doc that would be great.

Looks great, except for two things :
1/The diagrams are wrong. Aestetically speaking they're pretty neat (what software did you use, out of curiosity ?), but readability-wise there's room for improvement. First, since the average english speaker reads from left to right, I'd move the "software" and "hardware" labels to the left side, so that the reader know what the blue and green things are about *before* reading them. Moreover, you do not fully take account of Gestalt laws : things are detected by the viewer's brain as "going together" if they are put close to each other and/or have the same shape and/or use the same colors. In your current diagram, the labels are psychologically distant from the things they describe, so they're just ineffective and confusing.
I'd suggest something like this instead :
Attachment:
mockup.png
mockup.png [ 19.52 KiB | Viewed 16576 times ]

2/I'm not a good English speaker, but I'm pretty sure that "In actuality" (size section) is wrong and should be replaced by "actually".

Anyway, congratulations for making something original, and daring to say, here in the 21th century "Features like multitasking are neat, but they are not suited for the use cases that we target". It's rare to encounter people who are so wise about features in the computer world ;) And by the way, your site is pretty neat, too, both from an aesthetics and content point of view, even though I personally find some parts of it (like the gray and teal color scheme) hard on the eyes...

Author:  IanSeyler [ Tue May 04, 2010 10:33 am ]
Post subject:  Re: BareMetal OS v0.4.7

Hi Neolander,

Thanks for your comments. I have taken your advice and updated the diagrams. They were created in Microsoft Visio 2007... it seems to do a pretty good job.

Image

"In actuality" should work but the documents could stand to be cleaned up and simplified for people who do not use English as their primary language.

Thanks again for the kind words. The OS is being written with specific goals in mind and I would love to see it running on clustered hardware in the future. Maybe I could get a company like Pixar to switch from Linux to BareMetal for their render farm at some point :)

-Ian Seyler

Author:  Neolander [ Tue May 04, 2010 12:17 pm ]
Post subject:  Re: BareMetal OS v0.4.7

ReturnInfinity wrote:
Thanks for your comments. I have taken your advice and updated the diagrams. They were created in Microsoft Visio 2007... it seems to do a pretty good job.

Maybe I should try out these new Office releases some day, if I get bored with linux some day and want to have a look at the newer Windows experience. I heard many people saying that they are happy with them, and they certainly seem to do better than the 97/2000/XP series that I'm used to and that Oo is re-implementing in a better way :mrgreen: ...

About the diagram, I think something went wrong in the upload process because to me it looks very much like the original version. There's even the same date at the bottom. What did you change ?
EDIT : Okay, now it has changed... And it's way better in my opinion :)

Quote:
"In actuality" should work but the documents could stand to be cleaned up and simplified for people who do not use English as their primary language.

I don't know. It's pretty easy to read for me who's not exactly an English master (especially when it comes to *writing* in English), and this is a rather technical document to begin with, so I don't feel like there's a need for simplification here.

Quote:
Thanks again for the kind words. The OS is being written with specific goals in mind and I would love to see it running on clustered hardware in the future. Maybe I could get a company like Pixar to switch from Linux to BareMetal for their render farm at some point :)

Who knows ? Looking at my own long-term OS plans (I can go into details about them if you want), it's certainly not me who's gonna tell you that your goals are unrealistic ;)

After all, Pixar already proved that they were flexible enough to make the switch to Linux. So if you manage to offer them a massive advantage over it (which is nontrivial, but indeed possible), you certainly have some chances of success.

Author:  TylerH [ Sun May 09, 2010 4:16 pm ]
Post subject:  Re: BareMetal OS v0.4.7

I saw your video on Youtube, looks really good, I hope I get to that point, eventually.

As for the "In actuality" vs. "Actually", "In actuality" literally means something is in a state of being actual, "Actually" means something is actual. They are the same, "In actuality" just sounds better.

Page 1 of 3 All times are UTC - 6 hours
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/