comp.lang.ada
 help / color / mirror / Atom feed
* Suitability of ada environments for systems development
@ 1999-07-02  0:00 John Duncan
  1999-07-02  0:00 ` Marin David Condic
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: John Duncan @ 1999-07-02  0:00 UTC (permalink / raw)


Hi all,

I am foreseeing an operating system project to occur in the near future.
This project will require development directly on the hardware, of course,
and will build the OS libraries and API. I understand how Ada works to
provide systems programming features, but I'm wondering how suitable each
individual tool is. I would like to write the majority of the OS in a
high-level language, such as Ada or EC++ (based on the quality of the tool,
really), and I was wondering how much operating system support is needed for
tasks and protected objects. The goals are reusability and retargetability.
I want to make the whole project very easily retargetable to any underlying
chip.

Do vendors provide library implementations of the normally OS-dependent
features such as tasking and protected objects? If so, could vendors please
mention how their tools help solve these problems? Good responses will
facilitate choice of platform for a number of users.

Thank you very much,

John






^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Suitability of ada environments for systems development
  1999-07-02  0:00 Suitability of ada environments for systems development John Duncan
@ 1999-07-02  0:00 ` Marin David Condic
  1999-07-02  0:00 ` David Botton
  1999-07-02  0:00 ` Robert Dewar
  2 siblings, 0 replies; 7+ messages in thread
From: Marin David Condic @ 1999-07-02  0:00 UTC (permalink / raw)


John Duncan wrote:
> Do vendors provide library implementations of the normally OS-dependent
> features such as tasking and protected objects? If so, could vendors please
> mention how their tools help solve these problems? Good responses will
> facilitate choice of platform for a number of users.
> 
Since Ada was originally targeted at the Embedded System market where
you typically have no OS to depend on, most vendors will provide you
with a Run-Time-Kernel (RTK) which supports what would otherwise be "OS
Calls" to support task scheduling, etc. (That is, if you are looking at
a compiler that bills itself as targeted for embedded systems. There are
a number to choose from.) 

There is a RTK floating about called "RTEMS" which was originally
written in Ada and provides the support needed for an embedded target.
You may want to investigate RTEMS as one way to go. Also, check with the
major venders (Aonix, Ada Core Technologies, Green Hills, etc.) and
inquire about their support for your target of interest. For most
popular processors, you can very easily find one or more Ada compilers
that will target to the bare hardware.

MDC
-- 
Marin David Condic
Real Time & Embedded Systems, Propulsion Systems Analysis
United Technologies, Pratt & Whitney, Large Military Engines
M/S 731-95, P.O.B. 109600, West Palm Beach, FL, 33410-9600
***To reply, remove "bogon" from the domain name.***

Visit my web page at: http://www.mcondic.com/




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Suitability of ada environments for systems development
  1999-07-02  0:00 Suitability of ada environments for systems development John Duncan
  1999-07-02  0:00 ` Marin David Condic
  1999-07-02  0:00 ` David Botton
@ 1999-07-02  0:00 ` Robert Dewar
  1999-07-02  0:00   ` John Duncan
  2 siblings, 1 reply; 7+ messages in thread
From: Robert Dewar @ 1999-07-02  0:00 UTC (permalink / raw)


In article <7lis9r$oil$1@usenet01.srv.cis.pitt.edu>,
  "John Duncan" <jddst19+@pitt.edu> wrote:

> Do vendors provide library implementations of the normally
> OS-dependent features such as tasking and protected objects?
> If so, could vendors please mention how their tools help solve
> these problems? Good responses will facilitate choice of
> platform for a number of users.

That's a bit of an odd note. If you are interested in serious
evaluation of Ada vendors, I suggest getting in touch with the
relevant vendors directly, explaining your needs, and asking
them for details. A very vague request on CLA is unlikely to
draw useful responses.

In the case of Ada Core Technologies, please send a statement
of your requirements to sales@gnat.com. The other vendors have
similar contact points.

The question you ask shows some confusion not at all surprising,
given that indeed in other languages the situation is confusing,
and these are real problems! So now let me make
some completely vendor independent responses that are really
about Ada, and not any particular implementation.

Tasking and protected operations are an integral part of the
Ada language. Consequently *any* Ada compiler MUST provide
completely transparent implementations of all Ada features
including tasking and protected operations. Whether they do
this with library implementations, inline code, direct calls
to the operating system, special hardware operations or
whatever is something that an Ada programmer does not generally
need to be concerned about.

Typically Ada tasks will for example simply map to operating
systems threads.

Basically then tasking and protected operations, while the may
indeed be "problems" in other languages, are not problems in
Ada, they are simply part of the well defined language, and
for details of how these [non-]problems are solved you read
the definition of the language, just as you would to find out
how to add two integers.

Robert Dewar
Ada Core Technologies


Sent via Deja.com http://www.deja.com/
Share what you know. Learn what you don't.




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Suitability of ada environments for systems development
  1999-07-02  0:00 ` Robert Dewar
@ 1999-07-02  0:00   ` John Duncan
  1999-07-03  0:00     ` Robert Dewar
  1999-07-08  0:00     ` Tucker Taft
  0 siblings, 2 replies; 7+ messages in thread
From: John Duncan @ 1999-07-02  0:00 UTC (permalink / raw)


Robert-

Thank you for your help. I do understand that this is an odd
place to put a vendor question. I did it for two reasons:

1. I don't want to get vendors' hopes up that something will actually
happen. (Perhaps I may have, I don't know.)

2. I thought it would be useful information to a lot of people in the
community.

What I am interested in is finding a retargetable standard library in Ada,
perhaps like a runtime kernel like someone already suggested.

What I do not want is some sort of operating-system specific solution, even
to the extent of the scheduling of tasks. I am merely interested in whether
someone has come up with implementations of the System.Interrupts and the
like to describe a lot of hardware. This is because I plan to implement a
sort of operating system myself, and I don't want the language system to be
making too many assumptions about what the operating system will do.
Afterward, I will probably commission a port of whatever language I use for
the purpose of writing applications on this operating system.

I am not exactly sure what the OS will look like, I just know that I want it
to be reliable and efficient from the ground up, and I believe that can be
done in Ada. It can also be done in other languages. The quality of the
programmers and the tools they use are both important.

But, like many things in this field, I await investors in order to find out
if my plans can come to fruition. In that, I do not know if I will actually
need anything, but I do know that a survey of the tools will help. :)

-John



Robert Dewar <dewar@gnat.com> wrote in message
news:7ljcfr$nq2$1@nnrp1.deja.com...
> In article <7lis9r$oil$1@usenet01.srv.cis.pitt.edu>,
>   "John Duncan" <jddst19+@pitt.edu> wrote:
>
> > Do vendors provide library implementations of the normally
> > OS-dependent features such as tasking and protected objects?
> > If so, could vendors please mention how their tools help solve
> > these problems? Good responses will facilitate choice of
> > platform for a number of users.
>
> That's a bit of an odd note. If you are interested in serious
> evaluation of Ada vendors, I suggest getting in touch with the
> relevant vendors directly, explaining your needs, and asking
> them for details. A very vague request on CLA is unlikely to
> draw useful responses.
>
> In the case of Ada Core Technologies, please send a statement
> of your requirements to sales@gnat.com. The other vendors have
> similar contact points.
>
> The question you ask shows some confusion not at all surprising,
> given that indeed in other languages the situation is confusing,
> and these are real problems! So now let me make
> some completely vendor independent responses that are really
> about Ada, and not any particular implementation.
>
> Tasking and protected operations are an integral part of the
> Ada language. Consequently *any* Ada compiler MUST provide
> completely transparent implementations of all Ada features
> including tasking and protected operations. Whether they do
> this with library implementations, inline code, direct calls
> to the operating system, special hardware operations or
> whatever is something that an Ada programmer does not generally
> need to be concerned about.
>
> Typically Ada tasks will for example simply map to operating
> systems threads.
>
> Basically then tasking and protected operations, while the may
> indeed be "problems" in other languages, are not problems in
> Ada, they are simply part of the well defined language, and
> for details of how these [non-]problems are solved you read
> the definition of the language, just as you would to find out
> how to add two integers.
>
> Robert Dewar
> Ada Core Technologies
>
>
> Sent via Deja.com http://www.deja.com/
> Share what you know. Learn what you don't.






^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Suitability of ada environments for systems development
  1999-07-02  0:00 Suitability of ada environments for systems development John Duncan
  1999-07-02  0:00 ` Marin David Condic
@ 1999-07-02  0:00 ` David Botton
  1999-07-02  0:00 ` Robert Dewar
  2 siblings, 0 replies; 7+ messages in thread
From: David Botton @ 1999-07-02  0:00 UTC (permalink / raw)


You may find http://www.adapower.com/lab/adaos.html of interest in relation
to your question.

David Botton

John Duncan wrote in message <7lis9r$oil$1@usenet01.srv.cis.pitt.edu>...
>Hi all,
>
>I am foreseeing an operating system project to occur in the near future.







^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Suitability of ada environments for systems development
  1999-07-02  0:00   ` John Duncan
@ 1999-07-03  0:00     ` Robert Dewar
  1999-07-08  0:00     ` Tucker Taft
  1 sibling, 0 replies; 7+ messages in thread
From: Robert Dewar @ 1999-07-03  0:00 UTC (permalink / raw)


In article <7lk09t$rmo$1@usenet01.srv.cis.pitt.edu>,
  "John Duncan" <jddst19+@pitt.edu> wrote:
> Robert-

> What I do not want is some sort of operating-system specific
> solution, even to the extent of the scheduling of tasks.

Again, it is not quite clear what model you have in mind for
an Ada implementation ....

Current Ada compilers are typically ported to many operating
systems (GNAT has been ported to many varieties of Unix and
Linux, DOS, OS/2, NT, Win95, MachTen, VMS, Nextstep, VxWorks,
RTEMS, etc)

So clearly these compilers do NOT have an operating specific
solution!

Most frequently the design is a layered one. In the case of
GNAT, the low level tasking interface is at the level of a
subset of pthreads, and can either be mapped to pthreads, or
to some similar set of facilities in some other operating
system.

If you write your own operating system or executive, the
cleanest thing is to provide a complete implementation of
Posix threads, including ceiling priority support. Porting
Ada to meet that interface should be very straightforward.
Alternatively, you need to provide a think layer to interface
with what ever similar primitives you have.

Regarding vendor input, you simply won't get any serious
vendor input in this forum, but if what you are looking for
is answers to rather general issues such as the above, then
you probably can get some answers here, though not necessarily
from vendors, and not necessarily reliable :-)


Sent via Deja.com http://www.deja.com/
Share what you know. Learn what you don't.




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Suitability of ada environments for systems development
  1999-07-02  0:00   ` John Duncan
  1999-07-03  0:00     ` Robert Dewar
@ 1999-07-08  0:00     ` Tucker Taft
  1 sibling, 0 replies; 7+ messages in thread
From: Tucker Taft @ 1999-07-08  0:00 UTC (permalink / raw)


John Duncan wrote:
> 
> ...
> What I am interested in is finding a retargetable standard library in Ada,
> perhaps like a runtime kernel like someone already suggested.

Essentially all Ada compilers have a run-time library that is
structured into layers.  The top layer is generally written entirely
in Ada, and is target independent.  The next layer down is also usually
written in Ada, but tends to be more target dependent.  There may be
additional intermediate layers, each more or less target dependent.
Often the lowest layer is a standard O/S or real-time kernel of some
sort, and may be a Commercial Off-The-Shelf (COTS) product.  However,
there are also plenty of "bare board" Ada run-time systems.  In this
case, the lowest layers are effectively acting as an O/S or kernel.

The interface between target-independent and target-dependent code
is often carefully designed to be simple and minimal, to ease
retargeting to new kernels/O.S.s.  In our run-time, this retargeting 
interface is roughly at the "Posix threads" level; the primary
abstractions are threads, mutexes, and (optionally timed) binary semaphores.
GNAT has an interface like this that they call GNULLI I believe.

As far as using Ada tasks and protected types, we do use them
in our run-time, but only in the upper layers.  The lower layers
are implementing these constructs.  The upper layers can make use
of them to implement even higher level capabilities.  We happen
to implement protected types at a lower level than tasks, so we have
a middle layer that implements rendezvous using protected objects.
Other layerings are clearly possible.
> 
> What I do not want is some sort of operating-system specific solution, even
> to the extent of the scheduling of tasks. I am merely interested in whether
> someone has come up with implementations of the System.Interrupts and the
> like to describe a lot of hardware. This is because I plan to implement a
> sort of operating system myself, and I don't want the language system to be
> making too many assumptions about what the operating system will do.
> Afterward, I will probably commission a port of whatever language I use for
> the purpose of writing applications on this operating system.
> 
> I am not exactly sure what the OS will look like, I just know that I want it
> to be reliable and efficient from the ground up, and I believe that can be
> done in Ada. It can also be done in other languages. The quality of the
> programmers and the tools they use are both important.
> 
> But, like many things in this field, I await investors in order to find out
> if my plans can come to fruition. In that, I do not know if I will actually
> need anything, but I do know that a survey of the tools will help. :)
> 
> -John
> 
-- 
-Tucker Taft   stt@averstar.com   http://www.averstar.com/~stt/
Technical Director, Distributed IT Solutions  (www.averstar.com/tools)
AverStar (formerly Intermetrics, Inc.)   Burlington, MA  USA




^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~1999-07-08  0:00 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-07-02  0:00 Suitability of ada environments for systems development John Duncan
1999-07-02  0:00 ` Marin David Condic
1999-07-02  0:00 ` David Botton
1999-07-02  0:00 ` Robert Dewar
1999-07-02  0:00   ` John Duncan
1999-07-03  0:00     ` Robert Dewar
1999-07-08  0:00     ` Tucker Taft

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox