BareMetal OS

This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
User avatar
IanSeyler
Member
Member
Posts: 326
Joined: Mon Jul 28, 2008 9:46 am
Location: Ontario, Canada
Contact:

BareMetal OS

Post by IanSeyler »

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
Last edited by IanSeyler on Tue Apr 30, 2013 1:02 pm, edited 8 times in total.
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
User avatar
01000101
Member
Member
Posts: 1599
Joined: Fri Jun 22, 2007 12:47 pm
Contact:

Re: BareMetal OS v0.4.6

Post by 01000101 »

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
User avatar
VolTeK
Member
Member
Posts: 815
Joined: Sat Nov 15, 2008 2:37 pm
Location: The Fire Nation

Re: BareMetal OS v0.4.6

Post by VolTeK »

well done, i barely see 64 bit os's, Thank you for releasing your latest one
User avatar
IanSeyler
Member
Member
Posts: 326
Joined: Mon Jul 28, 2008 9:46 am
Location: Ontario, Canada
Contact:

Re: BareMetal OS v0.4.6

Post by IanSeyler »

Thanks. If anyone has time to read and give feedback on the Architecture doc that would be great.
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
User avatar
Lithorien
Member
Member
Posts: 59
Joined: Tue Oct 27, 2009 1:40 pm
Location: Hanover, PA

Re: BareMetal OS v0.4.6

Post by Lithorien »

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. :)
User avatar
AaronMiller
Member
Member
Posts: 81
Joined: Thu Mar 06, 2008 1:26 pm
Location: Roseville, California (USA)
Contact:

Re: BareMetal OS v0.4.6

Post by AaronMiller »

Yes, this definitely looks quite useful. :)
User avatar
IanSeyler
Member
Member
Posts: 326
Joined: Mon Jul 28, 2008 9:46 am
Location: Ontario, Canada
Contact:

Re: BareMetal OS v0.4.6

Post by IanSeyler »

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: Select all

[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.
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
User avatar
AaronMiller
Member
Member
Posts: 81
Joined: Thu Mar 06, 2008 1:26 pm
Location: Roseville, California (USA)
Contact:

Re: BareMetal OS v0.4.6

Post by AaronMiller »

That's cool. :) EDIT: Nevermind.
User avatar
f2
Member
Member
Posts: 311
Joined: Mon Jun 15, 2009 10:01 am
Location: France

Re: BareMetal OS v0.4.6

Post by f2 »

Tested. Works fine. Also, thanks for the documentation. I'll try to write some applications for it.
"Open source seems to embrace the dark side of human nature." - Ville Turjanmaa
User avatar
IanSeyler
Member
Member
Posts: 326
Joined: Mon Jul 28, 2008 9:46 am
Location: Ontario, Canada
Contact:

Re: BareMetal OS v0.4.6

Post by IanSeyler »

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).
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
User avatar
IanSeyler
Member
Member
Posts: 326
Joined: Mon Jul 28, 2008 9:46 am
Location: Ontario, Canada
Contact:

Re: BareMetal OS v0.4.7

Post by IanSeyler »

Version 0.4.7 is out now. See the start of the thread for more information.
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
User avatar
Neolander
Member
Member
Posts: 228
Joined: Tue Mar 23, 2010 3:01 pm
Location: Uppsala, Sweden
Contact:

Re: BareMetal OS v0.4.6

Post by Neolander »

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 :
mockup.png
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...
Last edited by Neolander on Tue May 04, 2010 12:02 pm, edited 1 time in total.
User avatar
IanSeyler
Member
Member
Posts: 326
Joined: Mon Jul 28, 2008 9:46 am
Location: Ontario, Canada
Contact:

Re: BareMetal OS v0.4.7

Post by IanSeyler »

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
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
User avatar
Neolander
Member
Member
Posts: 228
Joined: Tue Mar 23, 2010 3:01 pm
Location: Uppsala, Sweden
Contact:

Re: BareMetal OS v0.4.7

Post by Neolander »

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 :)
"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.
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.
TylerH
Member
Member
Posts: 285
Joined: Tue Apr 13, 2010 8:00 pm
Contact:

Re: BareMetal OS v0.4.7

Post by TylerH »

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.
Post Reply