ReturnInfinity / BareMetal-OS-legacy

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, C/C++, and Rust.
1.74k stars 303 forks source link

[INFO] 64-bit ARM #110

Closed iceblu3710 closed 7 years ago

iceblu3710 commented 8 years ago

You mentioned "I'd also like to write a version for 64-bit ARM", have you made any progress on this yet? I am interested in running a cluster of Odroid-XU4's.

What is the major hurdle in porting to Arm's 64bit ASM from X86_64?

scherrey commented 8 years ago

Major hurdle is you rewrite everything from scratch. :-)

You mentioned "I'd also like to write a version for 64-bit ARM", have you made any progress on this yet? I am interested in running a cluster of Odroid-XU4's.

What is the major hurdle in porting to Arm's 64bit ASM from X86_64?

— Reply to this email directly or view it on GitHub https://github.com/ReturnInfinity/BareMetal-OS/issues/110.

ohnx commented 8 years ago

including a bootloader (so it's not just the OS)

iceblu3710 commented 8 years ago

Well obviously, but other than that its totally a weekend project right? lol

What is the major difference between the languages, are their major x86 instructions that ASM does not have so those routines would need to be completely re-written?

I imagine if they share 80% of similar instructions the majority of the work could be mapping.

hikilaka commented 8 years ago

The instructions are very different.

scherrey commented 8 years ago

The CPU architecture is completely different. You can't reason about your software and CPU state in the same way across the two CPU architectures. I think the only similarities is that they are both large register-based CPUs (as opposed to something a bit more esoteric like a stack-based architecture) and have some overlapping memory access methods. Would really be an entirely independent project.

-- Ben

On Sat, Feb 13, 2016 at 1:08 AM, iceblu3710 notifications@github.com wrote:

Well obviously, but other than that its totally a weekend project right? lol

What is the major difference between the languages, are their major x86 instructions that ASM does not have so those routines would need to be completely re-written?

I imagine if they share 80% of similar instructions the majority of the work could be mapping.

— Reply to this email directly or view it on GitHub https://github.com/ReturnInfinity/BareMetal-OS/issues/110#issuecomment-183434251 .

IanSeyler commented 8 years ago

This probably won't happen in BareMetal OS. The BareMetal kernel is a possibility though: https://github.com/ReturnInfinity/BareMetal-kernel/tree/master/src/armv8

I have yet to find an ARMv8 assembler though.

And yes, it would be a total rewrite retaining the same API.

IanSeyler commented 7 years ago

Closing this issue as it will be part of BareMetal-kernel when an ARMv8 version comes.