OS Development in Ada95

Programming, for all ages and all languages.
Post Reply
WSpriggs
Posts: 1
Joined: Thu Jul 05, 2012 3:47 pm

OS Development in Ada95

Post 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.
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re: OS Development in Ada95

Post 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.)
Every good solution is obvious once you've found it.
Lucretia
Posts: 7
Joined: Sat Jan 29, 2011 2:30 pm
Contact:

Re: OS Development in Ada95

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