Page 1 of 1

OS Development in Ada95

Posted: Thu Jul 05, 2012 4:08 pm
by WSpriggs
I was interested in attempting to write a small operating system in Ada. But before I undertake that challenge, I wanted to know from any members who have experience in this area if they found writing the operating system in Ada harder than writing it in C and if they faced any special challenges from using Ada to write the OS.

Re: OS Development in Ada95

Posted: Fri Jul 06, 2012 1:12 am
by Solar
See the Wiki on Languages and Ada Bare bones.

All languages other than ASM and freestanding C will require some kind of runtime support, or restricting yourself to that part of the language that works without runtime support. So, from a technical standpoint, all languages other than ASM and freestanding C are "harder" to do OS development in.

If you feel the benefits of the language outweigh the additional work to be done to get it properly supported, by all means go for it; but be aware that you will be considered a minority case. (Heck, even C++ is still considered a minority case.)

Re: OS Development in Ada95

Posted: Mon Nov 12, 2012 4:58 am
by Lucretia
WSpriggs wrote:I was interested in attempting to write a small operating system in Ada. But before I undertake that challenge, I wanted to know from any members who have experience in this area if they found writing the operating system in Ada harder than writing it in C and if they faced any special challenges from using Ada to write the OS.
I haven't actually started my OS yet, using Ada should provide you with facilities that you need to aid you better, i.e. basic exception handling and checks, you need to add a memcpy, bzero functions if you want to use array slices and initialisation for example. If you want to return indeterminate objects youneed a secondary stack implementation, all should be fairly trivial to implement on top of the Bare bones tutorial.

What will most likely be harder is mapping how people implement things in the C languages over to Ada as C is more pointer based and Ada is more abstract. In other words, you need a good grasp on representation clauses to handle that kinf of thing, also you will need to abstract things to make sure conversions at the machine level work well too.

BTW, I can't believe it's 4months or so since I posted that tutorial :mrgreen:

Luke.