BareMetal OS
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
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
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
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
I'll post something more meaninful/helpful later on lol
Website: https://joscor.com
Re: BareMetal OS v0.4.6
well done, i barely see 64 bit os's, Thank you for releasing your latest one
Re: BareMetal OS v0.4.6
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
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
Re: BareMetal OS v0.4.6
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.ReturnInfinity wrote:Thanks. If anyone has time to read and give feedback on the Architecture doc that would be great.
- AaronMiller
- Member
- Posts: 81
- Joined: Thu Mar 06, 2008 1:26 pm
- Location: Roseville, California (USA)
- Contact:
Re: BareMetal OS v0.4.6
Yes, this definitely looks quite useful.
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:
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.
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 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
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
- AaronMiller
- Member
- Posts: 81
- Joined: Thu Mar 06, 2008 1:26 pm
- Location: Roseville, California (USA)
- Contact:
Re: BareMetal OS v0.4.6
That's cool. EDIT: Nevermind.
Re: BareMetal OS v0.4.6
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
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).
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
Re: BareMetal OS v0.4.7
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
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
Re: BareMetal OS v0.4.6
Looks great, except for two things :ReturnInfinity wrote:Thanks. If anyone has time to read and give feedback on the Architecture doc that would be great.
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 : 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.
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.
"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
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.
"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
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
Re: BareMetal OS v0.4.7
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 ...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.
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
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."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.
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 unrealisticThanks 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
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.
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.
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.