Page 1 of 1

What is your OS target architecture?

Posted: Wed Jan 23, 2013 11:17 am
by Trex
Hello humans,

I have deeveloped OS in the ARM machine. I think most of the people in this site make OS in x86. Does anybody develop OS in ARM architecture like in my case?

Re: What is your OS target architecture?

Posted: Wed Jan 23, 2013 5:00 pm
by Jezze
I've intentionally written mine to support many architectures but right now it only works for x86 but I'm working on a ARM port. I've not made much progress though, I'm still stuck in supervisor mode because I haven't researched enough on how to enable usermode. I wish there was some tutorial on the subject *hint* *hint*

Re: What is your OS target architecture?

Posted: Wed Jan 23, 2013 11:48 pm
by Combuster
For ARM, no. I do have boot code for 68k, SH4, PPC and SPARC for the fun of it while most development time goes into the x86 end.

Re: What is your OS target architecture?

Posted: Thu Jan 24, 2013 1:33 am
by blm768
Most of my working code is for ARM (specifically the Raspberry Pi); I've tried a little x86 development, but I decided that it was too complex to make a good learning environment for OS dev. I'd rather have to deal with a few more low-level details than have to take on a mountain of hardware that just keeps expanding every year. :)

Re: What is your OS target architecture?

Posted: Thu Jan 24, 2013 3:55 am
by Casm
Trex wrote:Hello humans,

I have deeveloped OS in the ARM machine. I think most of the people in this site make OS in x86. Does anybody develop OS in ARM architecture like in my case?
I will try to make it nominally portable, but almost certainly it will never run on anything other than an x86_64.

Re: What is your OS target architecture?

Posted: Thu Jan 24, 2013 10:06 am
by Trex
Jezze wrote:I've intentionally written mine to support many architectures but right now it only works for x86 but I'm working on a ARM port. I've not made much progress though, I'm still stuck in supervisor mode because I haven't researched enough on how to enable usermode. I wish there was some tutorial on the subject *hint* *hint*
It is very simple to enable usermode. You have only to setup low 5 bit(mode field) in the CPSR register to 0b10000(user mode) using MSR/MRS instructions.

If you mean the context swich about SVC to USER mode, please refer to this link.

Re: What is your OS target architecture?

Posted: Thu Jan 24, 2013 10:37 am
by Trex
blm768 wrote:Most of my working code is for ARM (specifically the Raspberry Pi); I've tried a little x86 development, but I decided that it was too complex to make a good learning environment for OS dev. I'd rather have to deal with a few more low-level details than have to take on a mountain of hardware that just keeps expanding every year. :)
I aggree.

The x86 architecture is too complex than other architecture. Well, most of the people are using the x86 personal computer even now. I think the x86 architecture is disorderly because it has evolved considerd backward compatibility. Nevertheless, the low level programmig in the x86 machine is still interesting due to accessibility. I just don't like it. :?

Re: What is your OS target architecture?

Posted: Thu Jan 24, 2013 11:47 am
by cb88
@Combuster you say you have Sparc boot code? is that 32bit or 64bit? I thought you might have the code up on your webpage but it seems to be down.

Re: What is your OS target architecture?

Posted: Fri Jan 25, 2013 2:51 am
by Combuster
cb88 wrote:@Combuster you say you have Sparc boot code? is that 32bit or 64bit? I thought you might have the code up on your webpage but it seems to be down.
Actually, the free DNS provider is down - which is not nice of them at all.

I updated the URLs, things should work again - direct link - but you might have a more useful read with the wiki version of it

Re: What is your OS target architecture?

Posted: Fri Jan 25, 2013 4:03 pm
by AbstractYouShudNow
Currently, I have done about 2 years of architecture thinking, without any code. I am just starting my OS and still making big changes in my design. Currently, I am only in the early stage, writing my OS loader in x86 real mode. All I have is a (very) big stack of paper containing extensively large memory schemes, functionnal schemas, graphs, and a big directory full of performance study reports I did for myself.

I am planning to first implement the OS in real mode, then in x86_64. I then plan on porting it to ARM (mainly so I can run it on my phone and gaming console), but I don't really know where I could find documentation for the ARM platform (for x86, it's been easy : I just went to Intel website and grabbed the combined PDF version of the Intel Manuals).

Anyways, I plan on making my OS design architecture-independant. For that purpose, I'll use a tree-like architecture where each node defines things to be implemented, with the sub-nodes being optionnal components that may be implemented for better performance. With a generic enough interface, I hope I'll be able to rewrite the tree components implementation without to recompile the kernel itself (see my topic My topic on that ).

Re: What is your OS target architecture?

Posted: Fri Jan 25, 2013 6:16 pm
by zeusk
AbstractYouShudNow wrote:I am planning to first implement the OS in real mode, then in x86_64. I then plan on porting it to ARM (mainly so I can run it on my phone and gaming console), but I don't really know where I could find documentation for the ARM platform (for x86, it's been easy : I just went to Intel website and grabbed the combined PDF version of the Intel Manuals).
My main sources for information (for ARM) are:
  • ARM ARM for ARMv7 (Architectural Reference Manual for the specific architecture revision of my chip).
  • Cortex A8 Technical Reference Manual (The specific chip I'm working with).
  • ARM Online Docs (Mostly point1 + point2 but might have some more info regarding the topic).
  • Google (Does this need any explanation ?)
  • Linux (Personally, I think linux is a disaster but nonetheless, it works unlike my OS)

Re: What is your OS target architecture?

Posted: Fri Jan 25, 2013 11:53 pm
by Brendan
Hi,
AbstractYouShudNow wrote:I am planning to first implement the OS in real mode, then in x86_64. I then plan on porting it to ARM (mainly so I can run it on my phone and gaming console), but I don't really know where I could find documentation for the ARM platform (for x86, it's been easy : I just went to Intel website and grabbed the combined PDF version of the Intel Manuals).
I can't understand why anyone would bother implementing an OS for real mode - there are major disadvantages (tools are scarce, memory is extremely limited, etc), and there are no advantages. Basically it only makes sense if you need to support 8086 CPUs, but users stopped using 8086 CPUs 30 years ago.

Some people make the mistake of thinking that using real mode might be easier because you can avoid the need to write device drivers and use the BIOS instead. These people are wrong - the BIOS doesn't support most hardware (typically no networking, no CD/DVD, no sound, almost no USB, etc), and for devices that the BIOS does support (mostly just disk IO) the BIOS's support is bad and (even for a real mode OS) you'd need to write your own drivers and avoid the BIOS just to get acceptable performance.


Cheers,

Brendan

Re: What is your OS target architecture?

Posted: Mon Jan 28, 2013 3:51 am
by halofreak1990
With my OS, I'm mainly targeting x86 (Pentium 3 and up), but I try to write the code as portable as possible, leaving architecture-specific code to assembly routines, which need to be different per architecture anyways.