comp.lang.ada
 help / color / mirror / Atom feed
* Ada Microkernel?
@ 2001-06-02  1:09 B. Douglas Hilton
  2001-06-02  2:11 ` DuckE
                   ` (3 more replies)
  0 siblings, 4 replies; 73+ messages in thread
From: B. Douglas Hilton @ 2001-06-02  1:09 UTC (permalink / raw)


Hi group.

I'm I Debian Hurd hacker, and am thoroughly disgustapated
with the Mach sources. Recently I have been redoubling
my efforts to use more modern languages such as Ada and
Python in everything I do.

Are there any sample microkernels written in Ada, perhaps
for oskit? I think a kernel would ultimately really benefit from
being written in such a robust language as Ada.

I know this is way out of my league, but I'm sitting here dreaming
about rewriting GNUMach in Ada.

- Doug





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

* Re: Ada Microkernel?
  2001-06-02  1:09 Ada Microkernel? B. Douglas Hilton
@ 2001-06-02  2:11 ` DuckE
  2001-06-02  2:25 ` Gerhard Häring
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 73+ messages in thread
From: DuckE @ 2001-06-02  2:11 UTC (permalink / raw)


I don't know if it helps, but there used to be a version of RTEMS written in
Ada.  It's not exactly a microkernel, but you may find it interesting.

SteveD

"B. Douglas Hilton" <doug.hilton@engineer.com> wrote in message
news:3B183CB8.3EE396E7@engineer.com...
> Hi group.
>
> I'm I Debian Hurd hacker, and am thoroughly disgustapated
> with the Mach sources. Recently I have been redoubling
> my efforts to use more modern languages such as Ada and
> Python in everything I do.
>
> Are there any sample microkernels written in Ada, perhaps
> for oskit? I think a kernel would ultimately really benefit from
> being written in such a robust language as Ada.
>
> I know this is way out of my league, but I'm sitting here dreaming
> about rewriting GNUMach in Ada.
>
> - Doug
>
>





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

* Re: Ada Microkernel?
  2001-06-02  1:09 Ada Microkernel? B. Douglas Hilton
  2001-06-02  2:11 ` DuckE
@ 2001-06-02  2:25 ` Gerhard Häring
  2001-06-02  2:41 ` Ted Dennison
  2001-06-02 11:07 ` chris.danx
  3 siblings, 0 replies; 73+ messages in thread
From: Gerhard Häring @ 2001-06-02  2:25 UTC (permalink / raw)


On Fri, 01 Jun 2001 21:09:12 -0400, B. Douglas Hilton wrote:
>Hi group.
>

>I'm I Debian Hurd hacker, and am thoroughly disgustapated with the Mach
>sources. Recently I have been redoubling my efforts to use more modern
>languages such as Ada and Python in everything I do.

Ada and Python are my favourites, too. I'm only annoyed by Ada's lack of good
free libraries (compared to Java and Python, at least). But for kernel
programming, this is a non-issue.

>Are there any sample microkernels written in Ada, perhaps for oskit? I think a
>kernel would ultimately really benefit from being written in such a robust
>language as Ada.

Hmm. From time to time people complained about the Mach sources on the Hurd
list. More than once somebody proposed to switch to L4. That's what I'd do,
too.

L4 is a microkernel interface with implementations for x86, Alpha, MIPS,
PowerPC. x86 is stable, and I believe Alpha, too. There is a Linux 2.2.0
implementation on top of L4 by TU Dresden. Lots of research is done on top of
L4, including an IBM operating system research project called Sawmill, guess
what, it's a multi-server system on top of a L4 microkernel. Not quite unlike
Hurd, isn't it? Unfortely, I haven't found publicly available code.

>I know this is way out of my league, but I'm sitting here dreaming about
>rewriting GNUMach in Ada.

This reminds me of the AdaOS project (http://www.adaos.org). They plan to build
the OS on a microkernel. It's mainly good for people who are dreaming ;-)
Almost two years and no code. Nuff said. 

Gerhard

PS: What about a PythonOS? I thought about rewriting the Unix services
(startup, configuration files, all the simple stuff like echo, identd, ...) in
Python. It would be mainly a network programming exercise. For me, the most
annoying thing on Unix resides in /etc. This should be replaced by XML files,
IMHO.

The hard part is already done, I would start on top of a Linux kernel and glibc
(though it should work on any Unix and libc). The first thing would be
/sbin/init Any ideas?
-- 
mail:   gerhard <at> bigfoot <dot> de       registered Linux user #64239
web:    http://highqualdev.com              public key at homepage
public key fingerprint: DEC1 1D02 5743 1159 CD20  A4B6 7B22 6575 86AB 43C0
reduce(lambda x,y:x+y,map(lambda x:chr(ord(x)^42),tuple('zS^BED\nX_FOY\x0b')))



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

* Re: Ada Microkernel?
  2001-06-02  1:09 Ada Microkernel? B. Douglas Hilton
  2001-06-02  2:11 ` DuckE
  2001-06-02  2:25 ` Gerhard Häring
@ 2001-06-02  2:41 ` Ted Dennison
  2001-06-02  5:09   ` Dale Stanbrough
  2001-06-02 21:31   ` B. Douglas Hilton
  2001-06-02 11:07 ` chris.danx
  3 siblings, 2 replies; 73+ messages in thread
From: Ted Dennison @ 2001-06-02  2:41 UTC (permalink / raw)


In article <3B183CB8.3EE396E7@engineer.com>, B. Douglas Hilton says...
>I'm I
Debian Hurd hacker, and am thoroughly disgustapated
>with the Mach sources.
Recently I have been redoubling

Out of curiosity, what's you problem with them?
(I have never looked at them
myself.)

>Are there any sample microkernels
written in Ada, perhaps
>for oskit? I think a kernel would ultimately really
benefit from
>being written in such a robust language as Ada.

I'd think the big
issue would be getting acces to *any* microkernel sources.
Adafiying things
isn't really the hard part for someone who knows the language
(its actually
quite fun).

>I know this is way out of my league, but I'm sitting here
dreaming
>about rewriting GNUMach in Ada.
We're used to wild dreams here. I say
keep 'em comming. One day one of them is
bound to come true.



---
T.E.D.    homepage   - http://www.telepath.com/dennison/Ted/TED.html
          home email - mailto:dennison@telepath.com




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

* Re: Ada Microkernel?
  2001-06-02  2:41 ` Ted Dennison
@ 2001-06-02  5:09   ` Dale Stanbrough
  2001-06-02 21:31   ` B. Douglas Hilton
  1 sibling, 0 replies; 73+ messages in thread
From: Dale Stanbrough @ 2001-06-02  5:09 UTC (permalink / raw)


Ted Dennison wrote:

> I'd think the big
> issue would be getting acces to *any* microkernel sources.
> Adafiying things
> isn't really the hard part for someone who knows the language
> (its actually
> quite fun).

Apple's Darwin O/S is microkernel based, and is freely 
available.

Dale



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

* Re: Ada Microkernel?
  2001-06-02  1:09 Ada Microkernel? B. Douglas Hilton
                   ` (2 preceding siblings ...)
  2001-06-02  2:41 ` Ted Dennison
@ 2001-06-02 11:07 ` chris.danx
  2001-06-02 20:30   ` McDoobie
  3 siblings, 1 reply; 73+ messages in thread
From: chris.danx @ 2001-06-02 11:07 UTC (permalink / raw)


> Hi group.
>
> I'm I Debian Hurd hacker, and am thoroughly disgustapated
> with the Mach sources. Recently I have been redoubling
> my efforts to use more modern languages such as Ada and
> Python in everything I do.
>
> Are there any sample microkernels written in Ada, perhaps
> for oskit?

Maybe MarteOS is a microkernel but i'm not sure.  It's not 100% Ada but the main
language _appears_ to be Ada.

> I think a kernel would ultimately really benefit from
> being written in such a robust language as Ada.

Nick Roberts thinks so too.  Check out www.adaos.org!

I too have thought of writing a microkernel in Ada and after the 11th June
serious work on this will begin.  Lot's of OS theory and design have been my
main focus so far.  My page holds two projects: one is willow a language
research project and _Sorcerer_ the OS development project.  There won't be much
up there now as i'm having to redraft and re-organise the site to accomodate
Sorcerer (who'd have thought editing HTML would take so long?).  If your
interested check the site on Monday or Tuesday by which time i should have
something substantial (and a little FS code too).


> I know this is way out of my league, but I'm sitting here dreaming
> about rewriting GNUMach in Ada.

Why is it out of your league?  How long have you been a programmer?  I've never
done anything substantial in hardware before (apart from some assembly but no
x86 pmode at all), but I'm determined to continue.

Sure it will be hard at first but it becomes easier as you go.  If you want to
make a new GNUMach written in Ada go for it.  All you really need to do is have
a compatible API and use the same workings underneath.  Provinding you do this
all written in ada it'll work.  It will take a long time (maybe years) to do and
you have to be sure it's worth the effort.



Chris Campbell
http://willowplan.tripod.com





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

* Re: Ada Microkernel?
  2001-06-02 11:07 ` chris.danx
@ 2001-06-02 20:30   ` McDoobie
  2001-06-02 21:20     ` B. Douglas Hilton
  2001-06-04 11:52     ` Chris Campbell
  0 siblings, 2 replies; 73+ messages in thread
From: McDoobie @ 2001-06-02 20:30 UTC (permalink / raw)


In article <_M3S6.8957$HL5.1284411@news6-win.server.ntlworld.com>,
"chris.danx" <chris.danx@ntlworld.com> wrote:

>> Hi group.
>>
>> I'm I Debian Hurd hacker, and am thoroughly disgustapated with the Mach
>> sources. Recently I have been redoubling my efforts to use more modern
>> languages such as Ada and Python in everything I do.
>>
>> Are there any sample microkernels written in Ada, perhaps for oskit?
> 
> Maybe MarteOS is a microkernel but i'm not sure.  It's not 100% Ada but
> the main language _appears_ to be Ada.
> 
>> I think a kernel would ultimately really benefit from being written in
>> such a robust language as Ada.
> 
> Nick Roberts thinks so too.  Check out www.adaos.org!
> 
> I too have thought of writing a microkernel in Ada and after the 11th
> June serious work on this will begin.  Lot's of OS theory and design
> have been my main focus so far.  My page holds two projects: one is
> willow a language research project and _Sorcerer_ the OS development
> project.  There won't be much up there now as i'm having to redraft and
> re-organise the site to accomodate Sorcerer (who'd have thought editing
> HTML would take so long?).  If your interested check the site on Monday
> or Tuesday by which time i should have something substantial (and a
> little FS code too).
> 
> 
>> I know this is way out of my league, but I'm sitting here dreaming
>> about rewriting GNUMach in Ada.
> 
> Why is it out of your league?  How long have you been a programmer? 
> I've never done anything substantial in hardware before (apart from some
> assembly but no x86 pmode at all), but I'm determined to continue.
> 
> Sure it will be hard at first but it becomes easier as you go.  If you
> want to make a new GNUMach written in Ada go for it.  All you really
> need to do is have a compatible API and use the same workings
> underneath.  Provinding you do this all written in ada it'll work.  It
> will take a long time (maybe years) to do and you have to be sure it's
> worth the effort.
> 
> 
> 
> Chris Campbell http://willowplan.tripod.com

I think this sounds like a great idea. I've been studying, and learning to
hack, Cisco microcode for the past few weeks now.  I'm also learning to
apply Ada to actual systems programming.

A micro-kernel would be awsome, if it's done right.

The way I would proceed is to lay out all the main functions and tasks of
the  kernel in Ada95 OOP code, and then overlay that (or underlay as one
might put it) with exceptionally fast Assembler code, optimized for the
different architectures. Of course, one could write generic functions for
any architecture with an Ada compiler(unlike most other languages, Ada
makes this goal actually feasible),  and then leave hooks so that
programmers can drop in thier own Assembler code optimizations and/or
replacements. Then, the SysAdmin can opt to have thier compiler build the
kernel from the standard generic Ada code, or use the optimized assembler
code written for thier architecture.

Naturally, this is more easily said than done. However I do beleive Ada
makes this quite feasible whereas in many other languages it would border
on impossible.

Then again, maybe I'm whistling into the wind and sounding stupid while
I'm at it. Anyways, I think the Ada95 OOP system is the perfect facility
for making a Microkernel that's actually fast.

Once my new workstation gets here, I'm gonna play with that idea. I 
might even throw up some sample code to better illustrate my idea.

Blah! Too much coffee. Heh. Anyways, what are your guy's thoughts?

McDoobie
chris@dont.spam.me


P.S. I would also be interested in working on a Free Software toolchain
similar to the Ada.Sparks toolchain by Praxis systems.
Feasible?



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

* Re: Ada Microkernel?
  2001-06-02 20:30   ` McDoobie
@ 2001-06-02 21:20     ` B. Douglas Hilton
  2001-06-02 21:41       ` B. Douglas Hilton
                         ` (2 more replies)
  2001-06-04 11:52     ` Chris Campbell
  1 sibling, 3 replies; 73+ messages in thread
From: B. Douglas Hilton @ 2001-06-02 21:20 UTC (permalink / raw)


Yeah, that's what I was thinking too. From what I read, a well-written
Ada program can be every bit as fast as C, and since you can plug
assembler right into Ada, it doesn't have any disadvantages in that
respect.
    What confounds me is how to provide system level calls for any
C applications. Say I write my awesome Ada microkerenel, obviously
I need to provide a C api if I want to use the GNU tools.
    Well, I suppose its doable. Might be a big project though. I suppose
I'll start by figuring out how to link in the OSKit code to an Ada program.
I'll have an Ada kerenel, it just might not do much.

Cheers.
- Doug



McDoobie wrote:

> Then again, maybe I'm whistling into the wind and sounding stupid while
> I'm at it. Anyways, I think the Ada95 OOP system is the perfect facility
> for making a Microkernel that's actually fast.




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

* Re: Ada Microkernel?
  2001-06-02  2:41 ` Ted Dennison
  2001-06-02  5:09   ` Dale Stanbrough
@ 2001-06-02 21:31   ` B. Douglas Hilton
  2001-06-02 23:21     ` chris.danx
  1 sibling, 1 reply; 73+ messages in thread
From: B. Douglas Hilton @ 2001-06-02 21:31 UTC (permalink / raw)


Hi there. Well, the Mach sources are well-commented,
but they are C, use pointers heavily, and are just difficult
to understand, in my opinion. It is a monumental project
to become familiar with them, and they are very compact
compared to something like the Linux kernel.

Ted Dennison wrote:

> Out of curiosity, what's you problem with them?
> (I have never looked at them
> myself.)

See above.


> >Are there any sample microkernels
> written in Ada, perhaps
> >for oskit? I think a kernel would ultimately really
> benefit from
> >being written in such a robust language as Ada.
>
> I'd think the big
> issue would be getting acces to *any* microkernel sources.
> Adafiying things
> isn't really the hard part for someone who knows the language
> (its actually
> quite fun).

Well, GNUMach and Fiasco / L4 are available and are pretty cutting-edge.
Fiasco would be a good one to Adafy perhaps. Ideally, I would like to
convert Mach to Ada; however still provide the C api from mach.h

- Doug






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

* Re: Ada Microkernel?
  2001-06-02 21:20     ` B. Douglas Hilton
@ 2001-06-02 21:41       ` B. Douglas Hilton
  2001-06-03  1:09         ` James Rogers
  2001-06-02 23:00       ` chris.danx
  2001-06-04 14:37       ` Ted Dennison
  2 siblings, 1 reply; 73+ messages in thread
From: B. Douglas Hilton @ 2001-06-02 21:41 UTC (permalink / raw)


Ok, here is the oskit "hello" kernel. Any ideas how to convert this
to Ada?

#include <stdio.h>
#include <oskit/clientos.h>
#include <oskit/startup.h>
#include <oskit/version.h>

int main()
{
#ifndef KNIT
        oskit_clientos_init();
#endif
#ifdef  GPROF
        start_fs_bmod();
        start_gprof();
#endif
        oskit_print_version();
        printf("Hello, World\n");
        return 0;
}

I suspect that this small program might actually
prove to be rather pesky to implement, and linking
is pretty complex as well.



>     Well, I suppose its doable. Might be a big project though. I suppose
> I'll start by figuring out how to link in the OSKit code to an Ada program.
> I'll have an Ada kerenel, it just might not do much.




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

* Re: Ada Microkernel?
  2001-06-02 21:20     ` B. Douglas Hilton
  2001-06-02 21:41       ` B. Douglas Hilton
@ 2001-06-02 23:00       ` chris.danx
  2001-06-03  5:31         ` B. Douglas Hilton
  2001-06-04 14:37       ` Ted Dennison
  2 siblings, 1 reply; 73+ messages in thread
From: chris.danx @ 2001-06-02 23:00 UTC (permalink / raw)


>     What confounds me is how to provide system level calls for any
> C applications. Say I write my awesome Ada microkerenel, obviously
> I need to provide a C api if I want to use the GNU tools.

You don't need to have system level calls specifically for C applications, you
have system level calls for all applications (not just C ones).  There's nothing
special about C applications that means you have to have a special format for
them.  If i were you I'd make the API Ada styled (strongly typed and well
defined!  None of this "words are all you need" that you see in C based OS
api's.

The message passing systems used in microkernels (just one way of communication
possible) seem to work well.  I've decided to take the standard message passing
system(mailboxes) and try something that i've been told has been done in QNX and
Beos.  The idea is like pattern matching from functional languages and a bit
like dynamic typing.  It goes like this.

Module A sends a message to B to do X.

X can have more than one form, dependant on the types passed in.  You check the
types of the items passed in (each item must have a type descriptor accompanying
it) and X gives control to the appropriate routine.  If no routine is found you
get an error (haven't really got a good idea about how to handle this,
technically it should never happen but that doesn't mean it will never happen).
You might want to consider something like this in an OS if your doing one.

You could extend it to the API if you liked too.  (which is why i mentioned it).



Chris Campbell





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

* Re: Ada Microkernel?
  2001-06-02 21:31   ` B. Douglas Hilton
@ 2001-06-02 23:21     ` chris.danx
  0 siblings, 0 replies; 73+ messages in thread
From: chris.danx @ 2001-06-02 23:21 UTC (permalink / raw)


> Hi there. Well, the Mach sources are well-commented,
> but they are C, use pointers heavily, and are just difficult
> to understand, in my opinion. It is a monumental project
> to become familiar with them, and they are very compact
> compared to something like the Linux kernel.

Pain in the butt ain't it?  One of the groups i subscribe to for OS development
(alt.os.development) has quite a lot of folk all doing C or Assembly.  The posts
with assembly are OK but those with C code can be confusing because I'm not
really that well versed in it.  Up until now it's been ok because there has been
no attempt to code the kernel but it will be difficult when problems arise and
replies come with some C in.

It's funny actually we were just having a discussion on a.o.d about why people
use C so much (the poster Rick, is as into Asm in a big way).  I mentioned that
i didn't use Ada and some of the reasons why (not that i'm nuts and would stick
with Ada 'till my dying day, if something was better suited to a task i'd use
it).  Some of the reasons people used appeared to be everyone else was so
there's lot's of other's in the same boat, Unix was written in it, it's low
level and efficient.  All but the first didn't seem good reasons but let's not
get into a debate about A vs. B.  One thing i will say is that I could see why
people would feel C was best because others used it.  There's a lot of people
with a lot of experience in OS writing in C, and this is a great benefit.  Not
enough to make me switch though, C's just not for me.

I'm on my tod on that group -- the only Ada 95 programmer there.  There is one
other with Ada 95 experience, but he's a self confessed C(++) freak, something i
can't quite understand.  Haven't seen any AdaOS members on there, how's that
going?  What's being happening Nick?



Chris Campbell





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

* Re: Ada Microkernel?
  2001-06-02 21:41       ` B. Douglas Hilton
@ 2001-06-03  1:09         ` James Rogers
  0 siblings, 0 replies; 73+ messages in thread
From: James Rogers @ 2001-06-03  1:09 UTC (permalink / raw)


"B. Douglas Hilton" wrote:
> 
> Ok, here is the oskit "hello" kernel. Any ideas how to convert this
> to Ada?
> 
> #include <stdio.h>
> #include <oskit/clientos.h>
> #include <oskit/startup.h>
> #include <oskit/version.h>
> 
> int main()
> {
> #ifndef KNIT
>         oskit_clientos_init();
> #endif
> #ifdef  GPROF
>         start_fs_bmod();
>         start_gprof();
> #endif
>         oskit_print_version();
>         printf("Hello, World\n");
>         return 0;
> }
> 

The first rule to learn is that Ada should be written as Ada and
C should be written as C. 

Clearly, any standard Ada version would not use a preprocessor.

The C preprocessor conditionals provide for conditional compilation
of the C sources. The Ada way to achieve the same goal is to
provide several versions of the entry point procedure for the 
program, each one specifying its own set of dependencies.

Each of the include files in the C version will require a
corresponding Ada package. The Ada package corresponding to stdio.h
is clearly Ada.Text_Io. Each of the other included files must
be rewritten in Ada.

One version of the Ada entry point procedure might look like the
following:

with Oskit.ClientOs;
with OsKit.Startup;
with OsKit.Version;
with Ada.Text_Io;

procedure HelloKernel is
begin
   OsKit.ClientOs.Init;
   OsKit.Startup.FsBmod;
   OsKit.Startup.Gprof;
   OsKit.Version.Print;
   Ada.Text_Io.Put_Line("Hello World!");
end HelloKernel;

Jim Rogers
Colorado Springs, Colorado USA



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

* Re: Ada Microkernel?
  2001-06-02 23:00       ` chris.danx
@ 2001-06-03  5:31         ` B. Douglas Hilton
  2001-06-03 11:45           ` chris.danx
  0 siblings, 1 reply; 73+ messages in thread
From: B. Douglas Hilton @ 2001-06-03  5:31 UTC (permalink / raw)


Ok, let me mull this over for awhile amd figure out what to do.
It seems to me like building a microkernel with Ada should be
a rather pleasant task. Except I want to make it plug and play for
Debian/Hurd, and I really want to use OSKit for my hardware
drivers.
    This implies a strong linkage between C OSKit drivers and
mostly alien Ada code ( as far as the driver world is concerned. )
    Still, this is a great project. If OSKit-Mach could be redone in
Ada, and still provide mach.h and MIG, then the Debian/Hurd could
actually be ported to an Ada Mach-comaptible microkernel.
    Currently, Roland McGrath is the Hurd equivalent of Linus, and
it is exceedingly difficult to hack the GNUMach or OSKit-Mach
sources. Basically nobody except he really understands the new
Hurd microkernel.

I would like to change this. The Hurd is supposed to be the OS
for the rest of us. I think Hurd's kernel should be written in some
better language ( such as Ada ) so that it is easier to modify in
the future.

Have you tried Hurd yet? A 1Gb partition will get you going!
Download Hurd at http://www.debian/org/ports/hurd

Unfortunately, GNATS has not yet been ported to Hurd, but I
can attest to the platform's viability as I can boot Hurd and run
X11 and it really does work.

- Doug


"chris.danx" wrote:

> You don't need to have system level calls specifically for C applications, you
> have system level calls for all applications (not just C ones).  There's nothing
> special about C applications that means you have to have a special format for
> them.  If i were you I'd make the API Ada styled (strongly typed and well
> defined!  None of this "words are all you need" that you see in C based OS
> api's.
>
> The message passing systems used in microkernels (just one way of communication
> possible) seem to work well.  I've decided to take the standard message passing
> system(mailboxes) and try something that i've been told has been done in QNX and
> Beos.  The idea is like pattern matching from functional languages and a bit
> like dynamic typing.  It goes like this.
>
> Module A sends a message to B to do X.
>
> X can have more than one form, dependant on the types passed in.  You check the
> types of the items passed in (each item must have a type descriptor accompanying
> it) and X gives control to the appropriate routine.  If no routine is found you
> get an error (haven't really got a good idea about how to handle this,
> technically it should never happen but that doesn't mean it will never happen).
> You might want to consider something like this in an OS if your doing one.
>
> You could extend it to the API if you liked too.  (which is why i mentioned it).
>
> Chris Campbell




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

* Re: Ada Microkernel?
  2001-06-03  5:31         ` B. Douglas Hilton
@ 2001-06-03 11:45           ` chris.danx
  2001-06-03 22:54             ` Didier Utheza
  0 siblings, 1 reply; 73+ messages in thread
From: chris.danx @ 2001-06-03 11:45 UTC (permalink / raw)


> Ok, let me mull this over for awhile amd figure out what to do.
> It seems to me like building a microkernel with Ada should be
> a rather pleasant task. Except I want to make it plug and play for
> Debian/Hurd, and I really want to use OSKit for my hardware
> drivers.

When i was wandering through the USENIX archives i stumbled upon a paper about
something called Devil.  I couldn't get the paper since i'm not a member but i
found the homepage via google.  Basically Devil is an IDL -- interface
definition language -- for writing device drivers.  It simplifies the task by
allowing you to specify the interface and it will generate C code that follows
the spec you give it.  You may want to look at that instead of the OSKit, since
it looks very simple and free of fuss.  I can't experiment with it since they
don't do windows but i think Linux and solaris are supported so you might want
to have a go.  The plan for sorcerer (my OS project) is that Devil will be
ported to it (if the Devil source was available -- which it will be in a wee
while (it's written in Caml) -- it should be quite easy to do this).  I thought
about writing a version that generates Ada code instead of C, but i'm waiting
for the next release which should be along in a few months.

Devil can be found at http://compose.labri.u-bordeaux.fr/prototypes/devil/


> Basically nobody except he really understands the new
> Hurd microkernel.

Sounds like a recipe for disaster!

> I would like to change this. The Hurd is supposed to be the OS
> for the rest of us. I think Hurd's kernel should be written in some
> better language ( such as Ada ) so that it is easier to modify in
> the future.


> Have you tried Hurd yet? A 1Gb partition will get you going!
> Download Hurd at http://www.debian/org/ports/hurd

Haven't tried it yet, last time i wandered by it didn't look like much was
happening at all.  So now there's a microkernel, cool.  I may look at it in the
future, however i'm trying to avoid the design of other OSes at the minute so i
don't just copy one of those.  Is hurd a linux flavour, just microkerneled or is
it something different?


> Unfortunately, GNATS has not yet been ported to Hurd, but I
> can attest to the platform's viability as I can boot Hurd and run
> X11 and it really does work.

Once more Ada folk start using it someone will do a port and then maybe more
will.  May take a while though.





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

* Re: Ada Microkernel?
  2001-06-03 11:45           ` chris.danx
@ 2001-06-03 22:54             ` Didier Utheza
  2001-06-03 23:23               ` Florian Weimer
  0 siblings, 1 reply; 73+ messages in thread
From: Didier Utheza @ 2001-06-03 22:54 UTC (permalink / raw)
  To: chris.danx

Hi!
HURD is not a linux flavor. It is a GNU-OS with a Mach microkernel instead
of a Linux macrokernel. One could say that HURD is a cousin of the
FreeBSDs versions of UNIX.
The goal of the Debian team is to offer two free OS with two different
types of kernels, but which would support almost the same types of
excecutables.
Sincerely,
			Utheza Didier.





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

* Re: Ada Microkernel?
  2001-06-03 22:54             ` Didier Utheza
@ 2001-06-03 23:23               ` Florian Weimer
  0 siblings, 0 replies; 73+ messages in thread
From: Florian Weimer @ 2001-06-03 23:23 UTC (permalink / raw)


Didier Utheza <ddutheza@bu.edu> writes:

> HURD is not a linux flavor. It is a GNU-OS with a Mach microkernel instead
> of a Linux macrokernel. One could say that HURD is a cousin of the
> FreeBSDs versions of UNIX.

Yes, but The Hurd is partially a derivative of Linux, at least
according to a quick glance over the source code tree.



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

* Re: Ada Microkernel?
  2001-06-02 20:30   ` McDoobie
  2001-06-02 21:20     ` B. Douglas Hilton
@ 2001-06-04 11:52     ` Chris Campbell
  2001-06-09 23:54       ` McDoobie
  1 sibling, 1 reply; 73+ messages in thread
From: Chris Campbell @ 2001-06-04 11:52 UTC (permalink / raw)




> A micro-kernel would be awsome, if it's done right.


> The way I would proceed is to lay out all the main functions and tasks of
> the  kernel in Ada95 OOP code,

That depends.  If Ada tagged types need something like C++ RTTI then this might
prevent you from taking the OO approach.  I also don't undertand how an OOP
would be better -- it's not that i'm against OOP in anyway cos' I'm not -- I
just can't see the benefits.  Why do you think OOP would be better?



Chris Campbell
formally chris.danx -- people where actually calling me that so I changed the
display name.







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

* Re: Ada Microkernel?
  2001-06-02 21:20     ` B. Douglas Hilton
  2001-06-02 21:41       ` B. Douglas Hilton
  2001-06-02 23:00       ` chris.danx
@ 2001-06-04 14:37       ` Ted Dennison
  2 siblings, 0 replies; 73+ messages in thread
From: Ted Dennison @ 2001-06-04 14:37 UTC (permalink / raw)


In article <3B1958AD.F7D7A5CC@engineer.com>, B. Douglas Hilton says...
>    What confounds me is how to provide system level calls for any
>C applications. Say I write my awesome Ada microkerenel, obviously
>I need to provide a C api if I want to use the GNU tools.

"pragma Export (C, ...)" ought to do the trick.

Then again, you could just rewrite all those GNU tools in Ada. :-)

---
T.E.D.    homepage   - http://www.telepath.com/dennison/Ted/TED.html
          home email - mailto:dennison@telepath.com



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

* Re: Ada Microkernel?
  2001-06-04 11:52     ` Chris Campbell
@ 2001-06-09 23:54       ` McDoobie
  2001-06-10  1:16         ` Chris Campbell
  0 siblings, 1 reply; 73+ messages in thread
From: McDoobie @ 2001-06-09 23:54 UTC (permalink / raw)


In article <8DKS6.27593$%_1.4657414@news2-win.server.ntlworld.com>, "Chris
Campbell" <chris.danx@ntlworld.com> wrote:

> 
> 
>> A micro-kernel would be awsome, if it's done right.
> 
> 
>> The way I would proceed is to lay out all the main functions and tasks
>> of the  kernel in Ada95 OOP code,
> 
> That depends.  If Ada tagged types need something like C++ RTTI then
> this might prevent you from taking the OO approach.  I also don't
> undertand how an OOP would be better -- it's not that i'm against OOP in
> anyway cos' I'm not -- I just can't see the benefits.  Why do you think
> OOP would be better?
> 
> 
> 
> Chris Campbell formally chris.danx -- people where actually calling me
> that so I changed the display name.

Most people assume that OOP code is slow, which happens to be thier main
objection to using for system level stuff such as kernels and drivers and
such.(Which is the position I'm assuming your coming from. I could be
mistaken.)

OOP code itself is not inherently slow, but rather it happens to be a
result of the compiler or interpreter being used. Also the language used
in the implementation can cause problems
(such as trying to use Java or God forbid Visual Basic.) when creating
something such as a Kernel or a device driver.(At least that's been my
experience.)

Using Ada95 in an OOP fashion seems to complement the MicroKernel concept
nicely. Heck, if done right, one could compile new code into a running
kernel without messing  with installing a totally new kernel at all. 
Using Ada95 OOP would have the major benefit of people being able to
actually maintain the code. They could focus on thier section of the code
without having to worry too much  about what other sections of the code
are doing.

Blah. I'm still researching the subject. A more coherent explanation will
be forthcoming.

McDoobie chris@dont.spam.me



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

* Re: Ada Microkernel?
  2001-06-09 23:54       ` McDoobie
@ 2001-06-10  1:16         ` Chris Campbell
  2001-06-10  7:13           ` Gerhard Häring
  2001-06-11 14:53           ` Ted Dennison
  0 siblings, 2 replies; 73+ messages in thread
From: Chris Campbell @ 2001-06-10  1:16 UTC (permalink / raw)


> Most people assume that OOP code is slow, which happens to be thier main
> objection to using for system level stuff such as kernels and drivers and
> such.(Which is the position I'm assuming your coming from. I could be
> mistaken.)

My position is not that OO = slow but more a question of organisation.  At some
low levels OO is not really necessary, but at higher levels i can see where OO
could be useful.  I'm against OO all the code and if it was to be used only in
situations where it is appropriate to do so.  This is the Java and Smalltalk
approach, Ada on the other hand gives you a choice making it very flexible.  If
you don't need OO you don't _have_ to use it.

One of the problems I have is designing suitable OO hierachies if this is
necessary (OO has benefits other than inheritance which people mostly forget.
OO /= inheritance, indeed we use a mechanism that mimics of inheritance with
sets in maths).

Usually i either abstract the hierachy too much or not enough, never seem to get
the balance right.  It's costly to have to redesign the hierachy (in my case
Time, but for others it could be money) and this is one reason why i don't use
it much.  I also object to people getting lazy and using classes that have kinda
what they need but not quite and adding functionality to the class that's
completely inappropriate.  Like reusing a soldier class for kangaroos! -- don't
know if that story was true but it was funny!


> OOP code itself is not inherently slow, but rather it happens to be a
> result of the compiler or interpreter being used.

That brings up an interenting point about Ada compilers and OO, specifically
GNAT which is what most use i think.  I see very little in the Ada 95 language
design that would need tied to an OS, but how much is there in practise?  There
is no point saying use OO in the kernel if the compiler uses some system
specifics to achieve it.  The only solution would be to modify GNAT which would
be costly if it did need it.  I ask since ppl have been pointing out the
_potential_ uses for OO in the OS in other and in this group(s), and i plan to
modify GNAT to support exceptions -- or more specifically the reporting of
exceptions -- without the need for system specifics.  I might be willing to do
something similar for objects if it's possible and providing it would be of
benefit to ppl.  I won't do it if it's like C++ RTTI and will need substantial
modifications to make it run.  Hopefully considering Ada's embedded and systems
programming history this won't be an issue though.


> Also the language used
> in the implementation can cause problems
> (such as trying to use Java or God forbid Visual Basic.) when creating
> something such as a Kernel or a device driver.(At least that's been my
> experience.)

I was going to write something but i thought better of it since it could turn
into one of those pointless "my language is better than yours" threads like that
Algol thread that never ends on another newsgroup -- it's been there for ages
and ages.


> Using Ada95 in an OOP fashion seems to complement the MicroKernel concept
> nicely. Heck, if done right, one could compile new code into a running
> kernel without messing  with installing a totally new kernel at all.

That's going to be difficult but not impossible, we discussed a similar idea as
part of Voyager OS -- i went off on my own since the other guy wanted to use C
and changed to making a clonix, but the idea remains in Sorcerer.  If this
feature makes it's way into any OS, it'll save ppl alot of headaches and will
make development easier.  One point:  if the new module is faulty or
incompatible it'd be a good idea to revert back to the last version if possible.
This will be quite difficult and costly -- you could lose running apps because
the two schemes are incompatible -- but will need doing just in case.  Hopefully
the programmers who wrote the module will have done their job properly and it
will "never happen".

> Using Ada95 OOP would have the major benefit of people being able to
> actually maintain the code. They could focus on thier section of the code
> without having to worry too much  about what other sections of the code
> are doing.

hmm... i'm not sure about all this OO stuff now i'll need to think about it.


> Blah. I'm still researching the subject. A more coherent explanation will
> be forthcoming.

Please don't keep us waiting too long... it's not often you get someone who's
interested in Ada and microkernels, normally it's just C and microkernels...



Chris Campbell





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

* Re: Ada Microkernel?
  2001-06-10  1:16         ` Chris Campbell
@ 2001-06-10  7:13           ` Gerhard Häring
  2001-06-10 12:14             ` Samuel Tardieu
  2001-06-10 17:00             ` chris.danx
  2001-06-11 14:53           ` Ted Dennison
  1 sibling, 2 replies; 73+ messages in thread
From: Gerhard Häring @ 2001-06-10  7:13 UTC (permalink / raw)


On Sun, 10 Jun 2001 02:16:34 +0100, Chris Campbell wrote:
>[...]
>> OOP code itself is not inherently slow, but rather it happens to be a
>> result of the compiler or interpreter being used.
>
>That brings up an interenting point about Ada compilers and OO, specifically
>GNAT which is what most use i think.  I see very little in the Ada 95 language
>design that would need tied to an OS, but how much is there in practise?  There
>is no point saying use OO in the kernel if the compiler uses some system
>specifics to achieve it.  The only solution would be to modify GNAT which would
>be costly if it did need it.  I ask since ppl have been pointing out the
>_potential_ uses for OO in the OS in other and in this group(s), and i plan to
>modify GNAT to support exceptions -- or more specifically the reporting of
>exceptions -- without the need for system specifics.  I might be willing to do
>something similar for objects if it's possible and providing it would be of
>benefit to ppl.  I won't do it if it's like C++ RTTI and will need substantial
>modifications to make it run.  Hopefully considering Ada's embedded and systems
>programming history this won't be an issue though.

Last time I tried to do OS programming with GNAT, I couldn't create dynamic
objects, because the GNAT runtime calls malloc, which doesn't exist in the
Linux kernel. kmalloc does exist, of course. Have you already looked into the
GNAT sources, how hard do you think it is to write a new runtime for
kernel-level programming? Are there enough docs in the GNAT sources that
describe how to write a new runtime? OK, I should of course check that myself
...

IIRC ACT are selling a GNAT version that targets RTLinux (also kernel-level),
so it must be possible.

Gerhard
-- 
mail:   gerhard <at> bigfoot <dot> de       registered Linux user #64239
web:    http://highqualdev.com              public key at homepage
public key fingerprint: DEC1 1D02 5743 1159 CD20  A4B6 7B22 6575 86AB 43C0
reduce(lambda x,y:x+y,map(lambda x:chr(ord(x)^42),tuple('zS^BED\nX_FOY\x0b')))



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

* Re: Ada Microkernel?
  2001-06-10  7:13           ` Gerhard Häring
@ 2001-06-10 12:14             ` Samuel Tardieu
  2001-06-10 17:00             ` chris.danx
  1 sibling, 0 replies; 73+ messages in thread
From: Samuel Tardieu @ 2001-06-10 12:14 UTC (permalink / raw)
  To: comp.lang.ada

On 10/06, Gerhard H�ring wrote:

| Last time I tried to do OS programming with GNAT, I couldn't create dynamic
| objects, because the GNAT runtime calls malloc, which doesn't exist in the
| Linux kernel. kmalloc does exist, of course.

You are the one to blame in this case: if you do kernel programming, then you
have to call kmalloc() yourself (and carefully), rather than using Ada's
high-level allocator. Another alternative would be to use storage pools that
call kmalloc(), this way you could use new and Ada.Unchecked_Deallocation
instances from your code.




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

* Re: Ada Microkernel?
  2001-06-10  7:13           ` Gerhard Häring
  2001-06-10 12:14             ` Samuel Tardieu
@ 2001-06-10 17:00             ` chris.danx
  2001-06-11 20:54               ` chris.danx
  1 sibling, 1 reply; 73+ messages in thread
From: chris.danx @ 2001-06-10 17:00 UTC (permalink / raw)


> Last time I tried to do OS programming with GNAT, I couldn't create dynamic
> objects, because the GNAT runtime calls malloc, which doesn't exist in the
> Linux kernel. kmalloc does exist, of course. Have you already looked into the
> GNAT sources, how hard do you think it is to write a new runtime for
> kernel-level programming? Are there enough docs in the GNAT sources that
> describe how to write a new runtime? OK, I should of course check that myself
> ...
>
> IIRC ACT are selling a GNAT version that targets RTLinux (also kernel-level),
> so it must be possible.

I downloaded the GNAT sources the other day and have just got around to looking
at them.  One thing i'm unsure about the sources i downloaded is that i
downloaded from the nyu repository and there was no specific source distribution
or patches for 9x/nt, so i just downloaded gnat-3.13p-src.tgz, did i get the
right distribution?

Looking at what i've got sitting on my HD, it doesn't look too difficult to
modify the sources to support blue screen of death exception reports as for OO
i'm just about to look at this and will get back to you.



Regards,
Chris Campbell

p.s. useless info follows: i've changed my display name back because Beth Stone
and Tim Robinson convinced me of the merits of chris.danx being distinctive,
blue and furrbie like.







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

* Re: Ada Microkernel?
  2001-06-10  1:16         ` Chris Campbell
  2001-06-10  7:13           ` Gerhard Häring
@ 2001-06-11 14:53           ` Ted Dennison
  1 sibling, 0 replies; 73+ messages in thread
From: Ted Dennison @ 2001-06-11 14:53 UTC (permalink / raw)


In article <YSzU6.96$6d5.30076@news2-win.server.ntlworld.com>, Chris Campbell
says...
>
>it much.  I also object to people getting lazy and using classes that have kinda
>what they need but not quite and adding functionality to the class that's
>completely inappropriate.  Like reusing a soldier class for kangaroos! -- don't
>know if that story was true but it was funny!

The funny part was true. The "OO" part was not. It was just a simple mapping
(most likely done entirely in C or Fortran). The long story is: There are 3
basic kinds of simulators. There's the "Virtual" which is stereotypically a box
sitting on a 6-dof platform with a really expensive visual system and an exact
reproduction of the cockpit. There's the "Live", which I believe is typically
some kind of electronics hooked up to a real-live tank, jet, or rifle. Finally
there's the "Constructive", which is like a kind of wargame run entirely on
(usually) a single desktop-type computer, with the computer generating and
controlling most of the forces itself. 

It is quite typical for owners of virtual sims to want to hook them up to an
existing constructive sim that they already own, so that they can have loads of
computer-generated models running around on their pretty visuals for their
pilots to fly over, fight against, fight with, etc. Its also quite common for
their lists of entities to not quite match up between the two systems. The easy
solution for this problem is to just modify the virtual sim's mapping of the
constructive sim's entities. For example, when the constructive sim says that
the USS Arliegh Burke is steaming around, the virtual sim might instead display
the USS Grace Hopper. Obviously the more alike the two objects are, the better
this will work. :-)

There was one incident on a sim I worked on where a bug caused a heliocoper to
be displayed as a square-ish pile of rubble. To debug it, we had the maintinance
techs fly the two heliocopters in close formation for half an hour while we
monitored the DIS PDU traffic. The techs amused themselves during this time by
pretending it was a borg cube (in this case, with a heavy chicano acccent).
You'd be suprised how tough it is to adequately debug things while you're
laughing.

>That brings up an interenting point about Ada compilers and OO, specifically
>GNAT which is what most use i think.  I see very little in the Ada 95 language
>design that would need tied to an OS, but how much is there in practise?  There
>is no point saying use OO in the kernel if the compiler uses some system
>specifics to achieve it.  The only solution would be to modify GNAT which would

We've succesfully ported our entire (heavily-OO) flight trainer codebase from
vxWorks (GreenHills) to NT (Gnat). The only code that had to change was
system-specific stuff like setting the real-time clock frequency. I think at the
time that amounted to stubbing out 3 calls, and invoking the compiler. :-)

Of course NT isn't real-time, so its not very usable there. But it worked great
for occasional offline testing.

---
T.E.D.    homepage   - http://www.telepath.com/dennison/Ted/TED.html
          home email - mailto:dennison@telepath.com



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

* Re: Ada Microkernel?
  2001-06-10 17:00             ` chris.danx
@ 2001-06-11 20:54               ` chris.danx
  2001-06-11 20:58                 ` chris.danx
                                   ` (2 more replies)
  0 siblings, 3 replies; 73+ messages in thread
From: chris.danx @ 2001-06-11 20:54 UTC (permalink / raw)


> I downloaded the GNAT sources the other day and have just got around to
looking
> at them.  One thing i'm unsure about the sources i downloaded is that i
> downloaded from the nyu repository and there was no specific source
distribution
> or patches for 9x/nt, so i just downloaded gnat-3.13p-src.tgz, did i get the
> right distribution?
>
> Looking at what i've got sitting on my HD, it doesn't look too difficult to
> modify the sources to support blue screen of death exception reports as for OO
> i'm just about to look at this and will get back to you.

This is just a quicky update on what's been happening on GNAT running bare on a
386+ systems.  Today was my one and only exam and i don't return to uni for ages
yet (4 months or so) and i now have time to make the necessary modifications to
GNAT (for windows, i'm not sure how this will go for other platforms, but since
it's a patch to GNAT sources i don't envisage a problem).  There are a few
questions that would help me do this.

The first is am i correct in assuming that GNAT for NT/9x generates output in
the PE Windows format?  If not which format does it use?  I need to know this so
i can test the compiler out by creating a bootloader for running the modified
GNAT generated programs.  I may convert these to simple com style format so
bootloader is simple but this would be purely for testing and i will be working
on (and looking for) ideas for what to do about this in the long term.

Second, (again) did i get the correct distribution (it is detailed in the reply
text above)?  This is VERY IMPORTANT.

Third, how much interest is there in this?  I'm aware of one or two folk who
seem to be attracted to the idea, and i'm looking to see what level of feedback
i'll be getting from ppl, so the compiler can be fixed and suitable modified to
get it into a working state.  Feedback is essential for this.



Regards,
Chris Campbell





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

* Re: Ada Microkernel?
  2001-06-11 20:54               ` chris.danx
@ 2001-06-11 20:58                 ` chris.danx
  2001-06-11 22:30                   ` tmoran
                                     ` (2 more replies)
  2001-06-11 21:38                 ` Ted Dennison
  2001-06-11 23:22                 ` Robert A Duff
  2 siblings, 3 replies; 73+ messages in thread
From: chris.danx @ 2001-06-11 20:58 UTC (permalink / raw)


Silly me forgot the fourth question!

is there a 16bit Ada compiler for x86 platforms -- can't use 32bit at all since
bootloader must work in real mode!  Might write it in C, but only if i have to!


chris campbell





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

* Re: Ada Microkernel?
  2001-06-11 20:54               ` chris.danx
  2001-06-11 20:58                 ` chris.danx
@ 2001-06-11 21:38                 ` Ted Dennison
  2001-06-11 21:44                   ` chris.danx
  2001-06-11 23:22                 ` Robert A Duff
  2 siblings, 1 reply; 73+ messages in thread
From: Ted Dennison @ 2001-06-11 21:38 UTC (permalink / raw)


In article <0daV6.9332$6d5.1953313@news2-win.server.ntlworld.com>, chris.danx
says...
>Second, (again) did i get the correct distribution (it is detailed in the reply
>text above)?  This is VERY IMPORTANT.

3.13p is the latest public source distribution.

>Third, how much interest is there in this?  I'm aware of one or two folk who
>seem to be attracted to the idea, and i'm looking to see what level of feedback
>i'll be getting from ppl, so the compiler can be fixed and suitable modified to
>get it into a working state.  Feedback is essential for this.

I'm very interested. Unfortunately I won't have the time to persue this interest
for the forseable future...

---
T.E.D.    homepage   - http://www.telepath.com/dennison/Ted/TED.html
          home email - mailto:dennison@telepath.com



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

* Re: Ada Microkernel?
  2001-06-11 21:38                 ` Ted Dennison
@ 2001-06-11 21:44                   ` chris.danx
  2001-06-12  3:09                     ` DuckE
  0 siblings, 1 reply; 73+ messages in thread
From: chris.danx @ 2001-06-11 21:44 UTC (permalink / raw)


> >Second, (again) did i get the correct distribution (it is detailed in the
reply
> >text above)?  This is VERY IMPORTANT.
>
> 3.13p is the latest public source distribution.

The problem is that there seems to be different source versions for different
platforms (maybe the others are patches) and i'm unsure if the source i
downloaded is correct.  It was 3.13psrc.tgz or something similar.

> >Third, how much interest is there in this?  I'm aware of one or two folk who
> >seem to be attracted to the idea, and i'm looking to see what level of
feedback
> >i'll be getting from ppl, so the compiler can be fixed and suitable modified
to
> >get it into a working state.  Feedback is essential for this.
>
> I'm very interested. Unfortunately I won't have the time to persue this
interest
> for the forseable future...

No worries, Ted!  It will be there when you need it (hopefully)!

Thanks,
Chris Campbell





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

* Re: Ada Microkernel?
  2001-06-11 20:58                 ` chris.danx
@ 2001-06-11 22:30                   ` tmoran
  2001-06-11 22:35                     ` chris.danx
  2001-06-11 23:24                   ` Robert A Duff
  2001-06-12 20:57                   ` Randy Brukardt
  2 siblings, 1 reply; 73+ messages in thread
From: tmoran @ 2001-06-11 22:30 UTC (permalink / raw)


>is there a 16bit Ada compiler for x86 platforms -- can't use 32bit at all since
>bootloader must work in real mode!  Might write it in C, but only if i have to!
  Check with www.rrsoftware.com to see if they still have their Ada83
for 16 bit real mode.



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

* Re: Ada Microkernel?
  2001-06-11 22:30                   ` tmoran
@ 2001-06-11 22:35                     ` chris.danx
  0 siblings, 0 replies; 73+ messages in thread
From: chris.danx @ 2001-06-11 22:35 UTC (permalink / raw)



<tmoran@acm.org> wrote in message
news:IDbV6.83217$%i7.62388832@news1.rdc1.sfba.home.com...
> >is there a 16bit Ada compiler for x86 platforms -- can't use 32bit at all
since
> >bootloader must work in real mode!  Might write it in C, but only if i have
to!
>   Check with www.rrsoftware.com to see if they still have their Ada83
> for 16 bit real mode.

Thanks,
Chris Campbell





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

* Re: Ada Microkernel?
  2001-06-11 20:54               ` chris.danx
  2001-06-11 20:58                 ` chris.danx
  2001-06-11 21:38                 ` Ted Dennison
@ 2001-06-11 23:22                 ` Robert A Duff
  2001-06-12  9:58                   ` chris.danx
  2 siblings, 1 reply; 73+ messages in thread
From: Robert A Duff @ 2001-06-11 23:22 UTC (permalink / raw)


"chris.danx" <chris.danx@ntlworld.com> writes:

> The first is am i correct in assuming that GNAT for NT/9x generates output in
> the PE Windows format?  If not which format does it use?  

I don't know.

>...I need to know this so
> i can test the compiler out by creating a bootloader for running the modified
> GNAT generated programs.  

If your goal is to write an OS, why start at the lowest level?  Why not
write an OS that runs *under* some existing OS (Linux or NT, for
example), and worry about boot loading and such low-level junk later?

Shouldn't you be worrying more about making the OS portable at this
point, rather than worrying about Intel-PC-specific issues?

> Second, (again) did i get the correct distribution (it is detailed in the reply
> text above)?  This is VERY IMPORTANT.

I don't know, but last time I downloaded GNAT sources (a long time ago),
there was only one source distribution (but many binaries specific to
various targets).  The source included everything you need to build for
any supported target (assuming you already have a GNAT binary for that
target, for the same or one-previous version).

> Third, how much interest is there in this?

Umm.  Well.  I hate to be a naysayer, but I'll bet not much.  Sorry.

- Bob



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

* Re: Ada Microkernel?
  2001-06-11 20:58                 ` chris.danx
  2001-06-11 22:30                   ` tmoran
@ 2001-06-11 23:24                   ` Robert A Duff
  2001-06-12 20:57                   ` Randy Brukardt
  2 siblings, 0 replies; 73+ messages in thread
From: Robert A Duff @ 2001-06-11 23:24 UTC (permalink / raw)


"chris.danx" <chris.danx@ntlworld.com> writes:

> Silly me forgot the fourth question!
> 
> is there a 16bit Ada compiler for x86 platforms -- can't use 32bit at all since
> bootloader must work in real mode!  Might write it in C, but only if i have to!

It's not that big of a deal to write it in assembly.
But as I said in my previous post, why bother, until you
have all kinds of cool (higher level) stuff?

Your OS will be easier to debug if you run it as a process under some
preexisting OS.

- Bob



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

* Re: Ada Microkernel?
  2001-06-11 21:44                   ` chris.danx
@ 2001-06-12  3:09                     ` DuckE
  2001-06-12 10:39                       ` Jeff Creem
  0 siblings, 1 reply; 73+ messages in thread
From: DuckE @ 2001-06-12  3:09 UTC (permalink / raw)


"chris.danx" <chris.danx@ntlworld.com> wrote in message
news:nYaV6.41193$fs6.3698668@news6-win.server.ntlworld.com...
> > >Second, (again) did i get the correct distribution (it is detailed in
the
> reply
> > >text above)?  This is VERY IMPORTANT.
> >
> > 3.13p is the latest public source distribution.
>
> The problem is that there seems to be different source versions for
different
> platforms (maybe the others are patches) and i'm unsure if the source i
> downloaded is correct.  It was 3.13psrc.tgz or something similar.
>

I believe you'll find that sources for all the 3.13p distributions are
contained in the same file.  While I haven't been through the detail, from
what I can tell various files are selected for building the different target
runtimes using scripts that are run during the build.

A couple of things you may find of interest:
  There has been some indication that current GNAT sources will enter the
common GCC source tree soon.  You may want to keep tabs on the gcc mailing
list to monitor the progress.
  You can find an archive of the GCC mailing list at:
http://gcc.gnu.org/ml/gcc/

  There is a mailing list dedicated to GNAT where you'll find people who
know quite a bit about the internals.  To subscribe to gnatlist by go to the
web site:
  http://osgood.seas.gwu.edu/cgi-bin/lyris.pl  select "Special Topics" and
you'll find gnatlist.
  One of the message posted there last march reads:

    You dont actually need ecos or an RTOS at all to get gnat running on
    an embedded target. I have cobbled together a gnat i386-linux to
    m68k-coff cross using gcc2.8.1 , gnat3.11p and newlib.

    It comples and runs as expected, although you dont get Ada tasking.
    This is not a problem for me as I have written my own scheduler.

    The only major problem I had was related to the fact that newlib is
    missing some headers which gnatlib required. All of these, however
    are related to stuff you don't need in a cross environment, like
    dirent.h. I just pinched the missing files from my linux distro,
    and hey presto it compiled and worked OK ( Although with some
    broken library functions related to stuff like file io ).

    Having an RTOS is, of course, desirable - but given the size of a C
    lib, Ada lib,  plus the fact that Ada binaries are generally not small,
    you start to fill up ROM space pretty quickly on a small embedded
    target,  even without  an RTOS. Avoiding the RTOS simplifies
    things, keeps your binaries smaller, and is quite feasible for many
    applications.

    If anyone is interested in doing something similar, I'd be happy to
    help.

    Francis Valentinis
    RMIT Aerospace Engineering.

[snip]





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

* Re: Ada Microkernel?
  2001-06-11 23:22                 ` Robert A Duff
@ 2001-06-12  9:58                   ` chris.danx
  2001-06-12 17:27                     ` tmoran
                                       ` (2 more replies)
  0 siblings, 3 replies; 73+ messages in thread
From: chris.danx @ 2001-06-12  9:58 UTC (permalink / raw)



"Robert A Duff" <bobduff@world.std.com> wrote in message
news:wcck82i1u1v.fsf@world.std.com...
> "chris.danx" <chris.danx@ntlworld.com> writes:
>
> > The first is am i correct in assuming that GNAT for NT/9x generates output
in
> > the PE Windows format?  If not which format does it use?
>
> I don't know.

Jerry van Dijk was able to confirm this and i got my hands on a 16bit Turbo C
from the Borland Museum so i can get the work started soon.

> >...I need to know this so
> > i can test the compiler out by creating a bootloader for running the
modified
> > GNAT generated programs.
>
> If your goal is to write an OS, why start at the lowest level?  Why not
> write an OS that runs *under* some existing OS (Linux or NT, for
> example), and worry about boot loading and such low-level junk later?
>
> Shouldn't you be worrying more about making the OS portable at this
> point, rather than worrying about Intel-PC-specific issues?

The long term goal is to write an OS, the short term goal is to make
modifications to the GNAT compiler so it can run on a bare x386+ compatibles in
pmode.  Inorder to test it i may need to write a loader to load pe files and run
them.  Another possibility is to get the compiler to compile to exe and chop of
the first 512 bytes.  I'm not entirely sure about this (if it still works that
is).  So far i've got to modify exceptions and look at OO.  If anyone has any
other suggestions feel free to drop me an email or post here.

> > Second, (again) did i get the correct distribution (it is detailed in the
reply
> > text above)?  This is VERY IMPORTANT.
>
> I don't know, but last time I downloaded GNAT sources (a long time ago),
> there was only one source distribution (but many binaries specific to
> various targets).  The source included everything you need to build for
> any supported target (assuming you already have a GNAT binary for that
> target, for the same or one-previous version).

Thanks, i'll investigate the sources more.

> > Third, how much interest is there in this?
>
> Umm.  Well.  I hate to be a naysayer, but I'll bet not much.  Sorry.

Ahh well, it will be available in the future for ppl who need it once the
modifications are made.  Then Ada may become more popular in the OS for i386+
writers community, with support for OO -- if that's what tickles a developer.


Thanks all,
Chris Campbell





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

* Re: Ada Microkernel?
  2001-06-12  3:09                     ` DuckE
@ 2001-06-12 10:39                       ` Jeff Creem
  0 siblings, 0 replies; 73+ messages in thread
From: Jeff Creem @ 2001-06-12 10:39 UTC (permalink / raw)


Wow..Sounds pretty cool. If you had the time I think a short article at
www.adapower.com
would be nice.

"DuckE" <nospam_steved94@home.com> wrote in message
news:RJfV6.153185$p33.3219334@news1.sttls1.wa.home.com...
> "chris.danx" <chris.danx@ntlworld.com> wrote in message
> news:nYaV6.41193$fs6.3698668@news6-win.server.ntlworld.com...
> > > >Second, (again) did i get the correct distribution (it is detailed in
> the
> > reply
> > > >text above)?  This is VERY IMPORTANT.
> > >
> > > 3.13p is the latest public source distribution.
> >
> > The problem is that there seems to be different source versions for
> different
> > platforms (maybe the others are patches) and i'm unsure if the source i
> > downloaded is correct.  It was 3.13psrc.tgz or something similar.
> >
>
> I believe you'll find that sources for all the 3.13p distributions are
> contained in the same file.  While I haven't been through the detail, from
> what I can tell various files are selected for building the different
target
> runtimes using scripts that are run during the build.
>
> A couple of things you may find of interest:
>   There has been some indication that current GNAT sources will enter the
> common GCC source tree soon.  You may want to keep tabs on the gcc mailing
> list to monitor the progress.
>   You can find an archive of the GCC mailing list at:
> http://gcc.gnu.org/ml/gcc/
>
>   There is a mailing list dedicated to GNAT where you'll find people who
> know quite a bit about the internals.  To subscribe to gnatlist by go to
the
> web site:
>   http://osgood.seas.gwu.edu/cgi-bin/lyris.pl  select "Special Topics" and
> you'll find gnatlist.
>   One of the message posted there last march reads:
>
>     You dont actually need ecos or an RTOS at all to get gnat running on
>     an embedded target. I have cobbled together a gnat i386-linux to
>     m68k-coff cross using gcc2.8.1 , gnat3.11p and newlib.
>
>     It comples and runs as expected, although you dont get Ada tasking.
>     This is not a problem for me as I have written my own scheduler.
>
>     The only major problem I had was related to the fact that newlib is
>     missing some headers which gnatlib required. All of these, however
>     are related to stuff you don't need in a cross environment, like
>     dirent.h. I just pinched the missing files from my linux distro,
>     and hey presto it compiled and worked OK ( Although with some
>     broken library functions related to stuff like file io ).
>
>     Having an RTOS is, of course, desirable - but given the size of a C
>     lib, Ada lib,  plus the fact that Ada binaries are generally not
small,
>     you start to fill up ROM space pretty quickly on a small embedded
>     target,  even without  an RTOS. Avoiding the RTOS simplifies
>     things, keeps your binaries smaller, and is quite feasible for many
>     applications.
>
>     If anyone is interested in doing something similar, I'd be happy to
>     help.
>
>     Francis Valentinis
>     RMIT Aerospace Engineering.
>
> [snip]
>
>





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

* Re: Ada Microkernel?
  2001-06-12  9:58                   ` chris.danx
@ 2001-06-12 17:27                     ` tmoran
  2001-06-13 10:31                     ` Colin Paul Gloster
  2001-06-23 14:58                     ` Stefan Skoglund
  2 siblings, 0 replies; 73+ messages in thread
From: tmoran @ 2001-06-12 17:27 UTC (permalink / raw)


>Inorder to test it i may need to write a loader to load pe files and run
>them.  Another possibility is to get the compiler to compile to exe and
>chop of the first 512 bytes.
  Do you perhaps mean .com rather than .exe?  IIRC DOS .com files are
pretty much a memory image, so a loader would be trivial.



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

* Re: Ada Microkernel?
  2001-06-11 20:58                 ` chris.danx
  2001-06-11 22:30                   ` tmoran
  2001-06-11 23:24                   ` Robert A Duff
@ 2001-06-12 20:57                   ` Randy Brukardt
  2 siblings, 0 replies; 73+ messages in thread
From: Randy Brukardt @ 2001-06-12 20:57 UTC (permalink / raw)


chris.danx wrote in message ...
>Silly me forgot the fourth question!
>
>is there a 16bit Ada compiler for x86 platforms -- can't use 32bit at
all since
>bootloader must work in real mode!  Might write it in C, but only if i
have to!


Janus/Ada 83 for 16-bit x86 is still available. (No, we never made an
Ada 95 version.)

Contact me for more information.

          Randy Brukardt
          R.R. Software, Inc.






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

* Re: Ada Microkernel?
  2001-06-12  9:58                   ` chris.danx
  2001-06-12 17:27                     ` tmoran
@ 2001-06-13 10:31                     ` Colin Paul Gloster
  2001-06-23 14:58                     ` Stefan Skoglund
  2 siblings, 0 replies; 73+ messages in thread
From: Colin Paul Gloster @ 2001-06-13 10:31 UTC (permalink / raw)


Chris wrote:
"[..] i got my hands on a 16bit Turbo C
from the Borland Museum so i can get the work started soon."

I do not wish to dampen your spirits but recognition of the terms of use
of the compiler from the Borland Community website is in order. Whilst not
prohibiting your own personal playing and learning, distributing the
result to others is contrary to

"These historical files are provided to the Borland community free of
charge. They may be downloaded and used [..] for personal use only."

from HTTP://community.Borland.com/article/0,1410,20841,00.html relating to
Turbo C version 2.01. However it is possible to buy Turbo C++ 3 in a pcak
with a Win32 compiler too.

"The long term goal is to write an OS,"

Good luck, hope you do well.

"the short term goal is to make modifications to the GNAT compiler so it
can run on a bare x386+ compatibles in pmode. [..]"

I like that.



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

* Re: Ada Microkernel?
  2001-06-12  9:58                   ` chris.danx
  2001-06-12 17:27                     ` tmoran
  2001-06-13 10:31                     ` Colin Paul Gloster
@ 2001-06-23 14:58                     ` Stefan Skoglund
  2001-06-24  0:22                       ` B. Douglas Hilton
  2001-06-28  8:30                       ` Fr�d�ric BOYER
  2 siblings, 2 replies; 73+ messages in thread
From: Stefan Skoglund @ 2001-06-23 14:58 UTC (permalink / raw)


"chris.danx" wrote:
> > > i can test the compiler out by creating a bootloader for running the
> modified
> > > GNAT generated programs.
> >
> > If your goal is to write an OS, why start at the lowest level?  Why not
> > write an OS that runs *under* some existing OS (Linux or NT, for
> > example), and worry about boot loading and such low-level junk later?

Pls people if you need a bootloader take a look at GRUB
before you do anything else !!



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

* Re: Ada Microkernel?
  2001-06-23 14:58                     ` Stefan Skoglund
@ 2001-06-24  0:22                       ` B. Douglas Hilton
  2001-06-28  8:30                       ` Fr�d�ric BOYER
  1 sibling, 0 replies; 73+ messages in thread
From: B. Douglas Hilton @ 2001-06-24  0:22 UTC (permalink / raw)


I agree. I use GRUB and can multiboot Hurd, Linux, and Win95
with no problems. It is the Emacs of bootloaders: rather tricky
and mysterious to learn, but well worth the effort :-)


Stefan Skoglund wrote:

> "chris.danx" wrote:
> > > > i can test the compiler out by creating a bootloader for running the
> > modified
> > > > GNAT generated programs.
> > >
> > > If your goal is to write an OS, why start at the lowest level?  Why not
> > > write an OS that runs *under* some existing OS (Linux or NT, for
> > > example), and worry about boot loading and such low-level junk later?
>
> Pls people if you need a bootloader take a look at GRUB
> before you do anything else !!




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

* Re: Ada Microkernel?
  2001-06-23 14:58                     ` Stefan Skoglund
  2001-06-24  0:22                       ` B. Douglas Hilton
@ 2001-06-28  8:30                       ` Fr�d�ric BOYER
  2001-06-28  9:50                         ` M. A. Alves
                                           ` (2 more replies)
  1 sibling, 3 replies; 73+ messages in thread
From: Fr�d�ric BOYER @ 2001-06-28  8:30 UTC (permalink / raw)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1018 bytes --]

Hello,

With some friends in France, we'd like to write our own micro kernel. The
project has just started (6 month). The main goal is to provide a micro
kernel like Mach or L4. After, it could be possible to write servers to make
a more complete O.S. but at this time, it's not the subject.

For the moment we try to status which microkernel model we gonna to take :
Mach ou make a L4 clone in Ada ..

Opinions ?

bye

Frederic.




"Stefan Skoglund" <stetson@ebox.tninet.se> a �crit dans le message news:
3B34AE89.FFBE39EF@ebox.tninet.se...
> "chris.danx" wrote:
> > > > i can test the compiler out by creating a bootloader for running the
> > modified
> > > > GNAT generated programs.
> > >
> > > If your goal is to write an OS, why start at the lowest level?  Why
not
> > > write an OS that runs *under* some existing OS (Linux or NT, for
> > > example), and worry about boot loading and such low-level junk later?
>
> Pls people if you need a bootloader take a look at GRUB
> before you do anything else !!





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

* Re: Ada Microkernel?
  2001-06-28  8:30                       ` Fr�d�ric BOYER
@ 2001-06-28  9:50                         ` M. A. Alves
  2001-06-28 14:21                           ` Ted Dennison
  2001-06-28 10:55                         ` chris.danx
  2001-06-28 17:55                         ` Tarjei Tj�stheim Jensen
  2 siblings, 1 reply; 73+ messages in thread
From: M. A. Alves @ 2001-06-28  9:50 UTC (permalink / raw)
  To: comp.lang.ada

> With some friends in France, we'd like to write our own micro kernel.

Of course you are aware of the AdaOS project? (cf. AdaPower.com, the Lab)

-- 
   ,
 M A R I O   data miner, LIACC, room 221   tel 351+226078830, ext 121
 A M A D O   Rua Campo Alegre, 823         fax 351+226003654
 A L V E S   P-4150 PORTO, Portugal        mob 351+939354002




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

* Re: Ada Microkernel?
  2001-06-28  8:30                       ` Fr�d�ric BOYER
  2001-06-28  9:50                         ` M. A. Alves
@ 2001-06-28 10:55                         ` chris.danx
  2001-06-28 17:55                         ` Tarjei Tj�stheim Jensen
  2 siblings, 0 replies; 73+ messages in thread
From: chris.danx @ 2001-06-28 10:55 UTC (permalink / raw)


> With some friends in France, we'd like to write our own micro kernel. The
> project has just started (6 month). The main goal is to provide a micro
> kernel like Mach or L4. After, it could be possible to write servers to make
> a more complete O.S. but at this time, it's not the subject.
>
> For the moment we try to status which microkernel model we gonna to take :
> Mach ou make a L4 clone in Ada ..
>
> Opinions ?


You might want to take a look at

http://www.cs.berkeley.edu/~gribble/osprelims/summaries/Cache.html or
http://citeseer.nj.nec.com/cheriton94caching.html

which has a different micro-kernel concept.  It is a micro kernel but it's not
like mach.  Basically the "Cache kernel" only stores certain data for the
"Application Kernel", and hence is much simpler.  The Application Kernel is
another kernel (a little simpler) which does a lot of the work.  Since you can
have many application kernels you can effectively have Windows applications
running on a compatible Windows Application Kernel and Unix applications running
in a Unix Application Kernel.  The scheme doesn't limit you to one application
kernel and offers great flexibility.  You can still write Mach or L4 compatible
app kernels and whatever other kernel you like.

There was one project that was going to do a cache kernel called Freedows but it
seems to have suffered a slow painful death.  I don't think it was the cache
kernel that did it, just that they had too many developers who couldn't agree on
anything.

You may also want to subscribe to alt.os.development and alt.os.assembly as ther
are lots of knowledgable folks working on OSes there.


Chris Campbell









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

* Re: Ada Microkernel?
  2001-06-28  9:50                         ` M. A. Alves
@ 2001-06-28 14:21                           ` Ted Dennison
  2001-06-28 14:39                             ` Wes Groleau
                                               ` (2 more replies)
  0 siblings, 3 replies; 73+ messages in thread
From: Ted Dennison @ 2001-06-28 14:21 UTC (permalink / raw)


In article <mailman.993718328.574.comp.lang.ada@ada.eu.org>, M. A. Alves says...
>
>> With some friends in France, we'd like to write our own micro kernel.
>
>Of course you are aware of the AdaOS project? (cf. AdaPower.com, the Lab)

The URL is http://www.adaos.org . However, I believe its a proper OS, not a
microkernel. I also believe that its a debating society, not a real project, but
that's another story...

---
T.E.D.    homepage   - http://www.telepath.com/dennison/Ted/TED.html
          home email - mailto:dennison@telepath.com



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

* Re: Ada Microkernel?
  2001-06-28 14:21                           ` Ted Dennison
@ 2001-06-28 14:39                             ` Wes Groleau
  2001-06-28 15:01                             ` Marin David Condic
  2001-06-29  2:32                             ` Gerhard Häring
  2 siblings, 0 replies; 73+ messages in thread
From: Wes Groleau @ 2001-06-28 14:39 UTC (permalink / raw)



> microkernel. I also believe that its a debating society, not a real project, but

I think you've got it right.....

-- 
Wes Groleau
http://freepages.rootsweb.com/~wgroleau



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

* Re: Ada Microkernel?
  2001-06-28 14:21                           ` Ted Dennison
  2001-06-28 14:39                             ` Wes Groleau
@ 2001-06-28 15:01                             ` Marin David Condic
  2001-06-28 17:45                               ` Tarjei Tj�stheim Jensen
  2001-06-29  2:45                               ` Gerhard Häring
  2001-06-29  2:32                             ` Gerhard Häring
  2 siblings, 2 replies; 73+ messages in thread
From: Marin David Condic @ 2001-06-28 15:01 UTC (permalink / raw)


Even if it is just a debating society, it seems to be failing at that too.
We have not heard even a slight peep about it in quite some time here and
updates to the web site seem to be at or near zero. I don't even see a
discussion page on the website, so who is doing the debating?

Its a shame - I'd love to see an Ada OS available for PCs, etc. However, I
think that the project was just too ambitious to succeed. If it had the
first objective being a simple, embedable OS to handle scheduling and I/O,
it might have got to that level - then been able to progress from there. A
good, solid, real-time executive would be a good place to start for a more
robust PC-ish OS.

MDC
--
Marin David Condic
Senior Software Engineer
Pace Micro Technology Americas    www.pacemicro.com
Enabling the digital revolution
e-Mail:    marin.condic@pacemicro.com
Web:      http://www.mcondic.com/


"Ted Dennison" <dennison@telepath.com> wrote in message
news:%3H_6.416$Kf3.3173@www.newsranger.com...
>
> The URL is http://www.adaos.org . However, I believe its a proper OS, not
a
> microkernel. I also believe that its a debating society, not a real
project, but
> that's another story...
>






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

* Re: Ada Microkernel?
  2001-06-28 15:01                             ` Marin David Condic
@ 2001-06-28 17:45                               ` Tarjei Tj�stheim Jensen
  2001-06-28 19:03                                 ` Marin David Condic
  2001-06-29  2:45                               ` Gerhard Häring
  1 sibling, 1 reply; 73+ messages in thread
From: Tarjei Tj�stheim Jensen @ 2001-06-28 17:45 UTC (permalink / raw)


Marin David Condic wrote:
> > Its a shame - I'd love to see an Ada OS available for PCs, etc. However, I
> think that the project was just too ambitious to succeed. If it had the
> first objective being a simple, embedable OS to handle scheduling and I/O,
> it might have got to that level - then been able to progress from there. A
> good, solid, real-time executive would be a good place to start for a more
> robust PC-ish OS.

Have you had a look at tunis? It is an existing operating system written
in Ada.

I don't remember what hardware it runs on, but it would probably be
easier to port an existing OS than writing it from scratch.


Greetings,



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

* Re: Ada Microkernel?
  2001-06-28  8:30                       ` Fr�d�ric BOYER
  2001-06-28  9:50                         ` M. A. Alves
  2001-06-28 10:55                         ` chris.danx
@ 2001-06-28 17:55                         ` Tarjei Tj�stheim Jensen
  2001-06-29 10:29                           ` Fr�d�ric BOYER
  2001-06-29 14:26                           ` Ted Dennison
  2 siblings, 2 replies; 73+ messages in thread
From: Tarjei Tj�stheim Jensen @ 2001-06-28 17:55 UTC (permalink / raw)


Fr�d�ric BOYER wrote:
> For the moment we try to status which microkernel model we gonna to take :
> Mach ou make a L4 clone in Ada ..

L4 clone. Mach has had its day. It supposedly was not a very good
microkernel either. All the interesting developments in microkernels
happened after mach was released :-)

The L4 approach is to write at least the core kernel in assembly
language and then use a high level language to create the rest of the
system. That may limit the kind of hardware on which your kernel might
run on. That need not be a disadvantage if you target SMP boards. Being
SMP ready out of the box would be cool.

BTW It might be useful to use a BSD license for such a project. That way
you can graft on one of the BSD kernels onto the microkernel. And you
might have a fair chance of attracting developers.


Greetings,



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

* Re: Ada Microkernel?
  2001-06-28 17:45                               ` Tarjei Tj�stheim Jensen
@ 2001-06-28 19:03                                 ` Marin David Condic
  2001-06-28 19:15                                   ` Marin David Condic
  0 siblings, 1 reply; 73+ messages in thread
From: Marin David Condic @ 2001-06-28 19:03 UTC (permalink / raw)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1244 bytes --]

I have not looked at tunis. Never even heard of it. I've heard of RTEMS -
something that borders on being a good start for such a project, but I've
never dug into it deep enough to know if it is really suitable.

I'll see what Google has to offer.

MDC
--
Marin David Condic
Senior Software Engineer
Pace Micro Technology Americas    www.pacemicro.com
Enabling the digital revolution
e-Mail:    marin.condic@pacemicro.com
Web:      http://www.mcondic.com/


"Tarjei Tj�stheim Jensen" <tarjei@online.no> wrote in message
news:3B3B6D4C.5DEC7D52@online.no...
> Marin David Condic wrote:
> > > Its a shame - I'd love to see an Ada OS available for PCs, etc.
However, I
> > think that the project was just too ambitious to succeed. If it had the
> > first objective being a simple, embedable OS to handle scheduling and
I/O,
> > it might have got to that level - then been able to progress from there.
A
> > good, solid, real-time executive would be a good place to start for a
more
> > robust PC-ish OS.
>
> Have you had a look at tunis? It is an existing operating system written
> in Ada.
>
> I don't remember what hardware it runs on, but it would probably be
> easier to port an existing OS than writing it from scratch.
>
>
> Greetings,





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

* Re: Ada Microkernel?
  2001-06-28 19:03                                 ` Marin David Condic
@ 2001-06-28 19:15                                   ` Marin David Condic
  2001-06-28 21:52                                     ` Ted Dennison
  2001-06-29  4:37                                     ` Brian Catlin
  0 siblings, 2 replies; 73+ messages in thread
From: Marin David Condic @ 2001-06-28 19:15 UTC (permalink / raw)


A brief look at Google giving it "tunis operating system" did not seem to
yield a whole lot of useful data - except to reveal that there seems to be
lots of academic interest in it. If you have a URL that is preferable,
please post it. Thanks.

I can see I'm going to have to go get me a book or two on operating system
theory and start yet another research endeavor to suck up those thousands of
hours of free time I seem to have lately. :-) Anybody have a favorite?
Possibly one that makes use of Ada - or is Ada-Cognizant? (Maybe something
that talks about small real-time execs on up to full-blown distributed
computing OS's?)

MDC
--
Marin David Condic
Senior Software Engineer
Pace Micro Technology Americas    www.pacemicro.com
Enabling the digital revolution
e-Mail:    marin.condic@pacemicro.com
Web:      http://www.mcondic.com/


"Marin David Condic" <marin.condic.auntie.spam@pacemicro.com> wrote in
message news:9hfv15$s59$1@nh.pace.co.uk...
> I'll see what Google has to offer.






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

* Re: Ada Microkernel?
  2001-06-28 19:15                                   ` Marin David Condic
@ 2001-06-28 21:52                                     ` Ted Dennison
  2001-06-29 13:16                                       ` Marin David Condic
  2001-06-29  4:37                                     ` Brian Catlin
  1 sibling, 1 reply; 73+ messages in thread
From: Ted Dennison @ 2001-06-28 21:52 UTC (permalink / raw)


In article <9hfvo1$sbd$1@nh.pace.co.uk>, Marin David Condic says...
>I can see I'm going to have to go get me a book or two on operating system
>theory and start yet another research endeavor to suck up those thousands of
>hours of free time I seem to have lately. :-) Anybody have a favorite?
>Possibly one that makes use of Ada - or is Ada-Cognizant? (Maybe something
>that talks about small real-time execs on up to full-blown distributed
>computing OS's?)


The one from my school days explicitly disclaims any intention of covering
RTOS's up front. Their rationale was that general purpose OS's and RTOS's have
design goals that are fundamentally incompatable. For example, an RTOS usually
can't allow time-slicing between equal priority tasks, while general-purpose
user OS's need to in order to achieve fairness in scheduling. Also, RTOS innards
must be carefully crafted to provide a short and determinstic response time.
However, that typically means fixed-length data structures, and thus limits on
resources that a multitasking user OS might find annoyingly constraining.

I'm curious if this is the unversal perception among OS developers today.

---
T.E.D.    homepage   - http://www.telepath.com/dennison/Ted/TED.html
          home email - mailto:dennison@telepath.com



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

* Re: Ada Microkernel?
  2001-06-28 14:21                           ` Ted Dennison
  2001-06-28 14:39                             ` Wes Groleau
  2001-06-28 15:01                             ` Marin David Condic
@ 2001-06-29  2:32                             ` Gerhard Häring
  2 siblings, 0 replies; 73+ messages in thread
From: Gerhard Häring @ 2001-06-29  2:32 UTC (permalink / raw)


On Thu, 28 Jun 2001 14:21:47 GMT, Ted Dennison <dennison@telepath.com> wrote:
>In article <mailman.993718328.574.comp.lang.ada@ada.eu.org>, M. A. Alves says...
>>
>>> With some friends in France, we'd like to write our own micro kernel.
>>
>>Of course you are aware of the AdaOS project? (cf. AdaPower.com, the Lab)
>
>The URL is http://www.adaos.org . However, I believe its a proper OS, not a
>microkernel. I also believe that its a debating society, not a real project, but
>that's another story...

Well said :-)

Gerhard
-- 
mail:   gerhard <at> bigfoot <dot> de       registered Linux user #64239
web:    http://highqualdev.com              public key at homepage
public key fingerprint: DEC1 1D02 5743 1159 CD20  A4B6 7B22 6575 86AB 43C0
reduce(lambda x,y:x+y,map(lambda x:chr(ord(x)^42),tuple('zS^BED\nX_FOY\x0b')))



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

* Re: Ada Microkernel?
  2001-06-28 15:01                             ` Marin David Condic
  2001-06-28 17:45                               ` Tarjei Tj�stheim Jensen
@ 2001-06-29  2:45                               ` Gerhard Häring
  1 sibling, 0 replies; 73+ messages in thread
From: Gerhard Häring @ 2001-06-29  2:45 UTC (permalink / raw)


On Thu, 28 Jun 2001 11:01:09 -0400, Marin David Condic wrote:
>Even if it is just a debating society, it seems to be failing at that too.
>We have not heard even a slight peep about it in quite some time here and
>updates to the web site seem to be at or near zero. I don't even see a
>discussion page on the website, so who is doing the debating?

The disucussion happens on the (low-traffic) mailing list.

>Its a shame - I'd love to see an Ada OS available for PCs, etc. However, I
>think that the project was just too ambitious to succeed. If it had the
>first objective being a simple, embedable OS to handle scheduling and I/O,
>it might have got to that level - then been able to progress from there. A
>good, solid, real-time executive would be a good place to start for a more
>robust PC-ish OS.

The only open-source Ada RTOS I am aware of is OpenRavenscar at
http://www.openravenscar.org/ , though I haven't yet tried it.

Gerhard
-- 
mail:   gerhard <at> bigfoot <dot> de       registered Linux user #64239
web:    http://highqualdev.com              public key at homepage
public key fingerprint: DEC1 1D02 5743 1159 CD20  A4B6 7B22 6575 86AB 43C0
reduce(lambda x,y:x+y,map(lambda x:chr(ord(x)^42),tuple('zS^BED\nX_FOY\x0b')))



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

* Re: Ada Microkernel?
  2001-06-28 19:15                                   ` Marin David Condic
  2001-06-28 21:52                                     ` Ted Dennison
@ 2001-06-29  4:37                                     ` Brian Catlin
  2001-06-29 13:18                                       ` Marin David Condic
  2001-06-29 15:09                                       ` Ted Dennison
  1 sibling, 2 replies; 73+ messages in thread
From: Brian Catlin @ 2001-06-29  4:37 UTC (permalink / raw)


Before delving into RTOS design, you might want to first  look at Rate Monotonic Analysis, which is the heart and soul of real-time
scheduling.  I liked "A Practitioner's Handbook for Real-Time Analysis: Guide to Rate Monotonic Analysis for Real-Time Systems" from
Kluwer Academic Publishers, 1993, ISBN 0-7923-9361-9  http://www.wkap.nl/book.htm/0-7923-9361-9

 -Brian

"Marin David Condic" <marin.condic.auntie.spam@pacemicro.com> wrote in message news:9hfvo1$sbd$1@nh.pace.co.uk...
> A brief look at Google giving it "tunis operating system" did not seem to
> yield a whole lot of useful data - except to reveal that there seems to be
> lots of academic interest in it. If you have a URL that is preferable,
> please post it. Thanks.
>
> I can see I'm going to have to go get me a book or two on operating system
> theory and start yet another research endeavor to suck up those thousands of
> hours of free time I seem to have lately. :-) Anybody have a favorite?
> Possibly one that makes use of Ada - or is Ada-Cognizant? (Maybe something
> that talks about small real-time execs on up to full-blown distributed
> computing OS's?)
>
> MDC
> --
> Marin David Condic
> Senior Software Engineer
> Pace Micro Technology Americas    www.pacemicro.com
> Enabling the digital revolution
> e-Mail:    marin.condic@pacemicro.com
> Web:      http://www.mcondic.com/
>
>
> "Marin David Condic" <marin.condic.auntie.spam@pacemicro.com> wrote in
> message news:9hfv15$s59$1@nh.pace.co.uk...
> > I'll see what Google has to offer.
>
>
>





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

* Re: Ada Microkernel?
  2001-06-28 17:55                         ` Tarjei Tj�stheim Jensen
@ 2001-06-29 10:29                           ` Fr�d�ric BOYER
  2001-07-02  7:13                             ` Tarjei T. Jensen
  2001-06-29 14:26                           ` Ted Dennison
  1 sibling, 1 reply; 73+ messages in thread
From: Fr�d�ric BOYER @ 2001-06-29 10:29 UTC (permalink / raw)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1598 bytes --]

I think you are right.

I am not sure that all L4's implementation are written in assembly language.
Some implementation use c and c++. An Ada implementation could be very cool
(for Ada and for us).

But the main goal of the project is to provide an micro kernel made for Ada
( with thread, adapted memory model, IPC support for thread sync/data
transfert), with (soft) RT capability. kernel will also support Ada RM
annexes (Distributed systems, System programming, R.T.).

Maybe we will provide a L4 emulation, or L4 support, but it was not the
preliminary goal of the project.

Best regards ..

frederic.


"Tarjei Tj�stheim Jensen" <tarjei@online.no> a �crit dans le message news:
3B3B6F8F.EAA0F196@online.no...
> Fr�d�ric BOYER wrote:
> > For the moment we try to status which microkernel model we gonna to take
:
> > Mach ou make a L4 clone in Ada ..
>
> L4 clone. Mach has had its day. It supposedly was not a very good
> microkernel either. All the interesting developments in microkernels
> happened after mach was released :-)
>
> The L4 approach is to write at least the core kernel in assembly
> language and then use a high level language to create the rest of the
> system. That may limit the kind of hardware on which your kernel might
> run on. That need not be a disadvantage if you target SMP boards. Being
> SMP ready out of the box would be cool.
>
> BTW It might be useful to use a BSD license for such a project. That way
> you can graft on one of the BSD kernels onto the microkernel. And you
> might have a fair chance of attracting developers.
>
>
> Greetings,





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

* Re: Ada Microkernel?
  2001-06-28 21:52                                     ` Ted Dennison
@ 2001-06-29 13:16                                       ` Marin David Condic
  2001-06-29 14:59                                         ` Ted Dennison
  0 siblings, 1 reply; 73+ messages in thread
From: Marin David Condic @ 2001-06-29 13:16 UTC (permalink / raw)


My OS book from back in my college days is so old, I don't think it would be
anywhere close to up to date with modern OS theory. That's why I'm asking
for a recommendation.

I'd agree that an RTOS and a "Workstation" OS are going to have
fundamentally different design goals. However, I don't know that down at a
low level, you couldn't find some common ground and make the rest somehow
"switch selectable" IOW, it would be useful to make WindowsNT have a
"Real-Time"  mode so you could run critical processes on it, yet have all
the tools & services available to you that programming in non-real-time
usually does. Indeed, there are third-party products to do just that. (From
what I've seen, they tend to duplicate most of the Windows API, put a RTOS
under it, then run Windows as a lower priority process.)

I think the biggest area of contention between the two would be the
scheduler. I don't see how things like device drivers, interrupt processing,
etc., would be of necessity incompatible. (The non-real-time could use
real-time algorithms without penalty to the end user if its done reasonably.
The real-time guys just need predictability.) But wouldn't it be possible to
specify more than one scheduling algorithm and have it selectable at boot
time? Sure, its more work to get a complete product together, but in the end
it makes a product that would have a really nice advantage over most of
what's out there.

MDC
--
Marin David Condic
Senior Software Engineer
Pace Micro Technology Americas    www.pacemicro.com
Enabling the digital revolution
e-Mail:    marin.condic@pacemicro.com
Web:      http://www.mcondic.com/


"Ted Dennison" <dennison@telepath.com> wrote in message
news:eGN_6.942$Kf3.12916@www.newsranger.com...
>
> The one from my school days explicitly disclaims any intention of covering
> RTOS's up front. Their rationale was that general purpose OS's and RTOS's
have
> design goals that are fundamentally incompatable. For example, an RTOS
usually
> can't allow time-slicing between equal priority tasks, while
general-purpose
> user OS's need to in order to achieve fairness in scheduling. Also, RTOS
innards
> must be carefully crafted to provide a short and determinstic response
time.
> However, that typically means fixed-length data structures, and thus
limits on
> resources that a multitasking user OS might find annoyingly constraining.
>
> I'm curious if this is the unversal perception among OS developers today.
>
> ---
> T.E.D.    homepage   - http://www.telepath.com/dennison/Ted/TED.html
>           home email - mailto:dennison@telepath.com





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

* Re: Ada Microkernel?
  2001-06-29  4:37                                     ` Brian Catlin
@ 2001-06-29 13:18                                       ` Marin David Condic
  2001-06-29 15:09                                       ` Ted Dennison
  1 sibling, 0 replies; 73+ messages in thread
From: Marin David Condic @ 2001-06-29 13:18 UTC (permalink / raw)


I'm familiar with Rate Monotonic Analysis. Thanks for the URL though. Its
just that its been so long since I looked at anything "formal" about
Operating System Theory that I thought reading a book as a refresher course
might be enlightening WRT things like the AdaOS project, etc.

MDC
--
Marin David Condic
Senior Software Engineer
Pace Micro Technology Americas    www.pacemicro.com
Enabling the digital revolution
e-Mail:    marin.condic@pacemicro.com
Web:      http://www.mcondic.com/


"Brian Catlin" <briancatlin@mindspring.com> wrote in message
news:9hh0np$nj3$1@slb4.atl.mindspring.net...
> Before delving into RTOS design, you might want to first  look at Rate
Monotonic Analysis, which is the heart and soul of real-time
> scheduling.  I liked "A Practitioner's Handbook for Real-Time Analysis:
Guide to Rate Monotonic Analysis for Real-Time Systems" from
> Kluwer Academic Publishers, 1993, ISBN 0-7923-9361-9
http://www.wkap.nl/book.htm/0-7923-9361-9
>
>  -Brian
>
> "Marin David Condic" <marin.condic.auntie.spam@pacemicro.com> wrote in
message news:9hfvo1$sbd$1@nh.pace.co.uk...
> > A brief look at Google giving it "tunis operating system" did not seem
to
> > yield a whole lot of useful data - except to reveal that there seems to
be
> > lots of academic interest in it. If you have a URL that is preferable,
> > please post it. Thanks.
> >
> > I can see I'm going to have to go get me a book or two on operating
system
> > theory and start yet another research endeavor to suck up those
thousands of
> > hours of free time I seem to have lately. :-) Anybody have a favorite?
> > Possibly one that makes use of Ada - or is Ada-Cognizant? (Maybe
something
> > that talks about small real-time execs on up to full-blown distributed
> > computing OS's?)
> >
> > MDC
> > --
> > Marin David Condic
> > Senior Software Engineer
> > Pace Micro Technology Americas    www.pacemicro.com
> > Enabling the digital revolution
> > e-Mail:    marin.condic@pacemicro.com
> > Web:      http://www.mcondic.com/
> >
> >
> > "Marin David Condic" <marin.condic.auntie.spam@pacemicro.com> wrote in
> > message news:9hfv15$s59$1@nh.pace.co.uk...
> > > I'll see what Google has to offer.
> >
> >
> >
>
>





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

* Re: Ada Microkernel?
  2001-06-28 17:55                         ` Tarjei Tj�stheim Jensen
  2001-06-29 10:29                           ` Fr�d�ric BOYER
@ 2001-06-29 14:26                           ` Ted Dennison
  2001-07-02  7:11                             ` Tarjei T. Jensen
  2001-07-07 23:22                             ` Stefan Skoglund
  1 sibling, 2 replies; 73+ messages in thread
From: Ted Dennison @ 2001-06-29 14:26 UTC (permalink / raw)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1090 bytes --]

In article <3B3B6F8F.EAA0F196@online.no>, Tarjei Tj�stheim Jensen says...
>L4 clone. Mach has had its day. It supposedly was not a very good
>microkernel either. All the interesting developments in microkernels
>happened after mach was released :-)

I did notice that the HURD folks blamed most of their delays (and thus the rise
of Linux) on MACH.

>The L4 approach is to write at least the core kernel in assembly
>language and then use a high level language to create the rest of the
>system. That may limit the kind of hardware on which your kernel might
>run on. That need not be a disadvantage if you target SMP boards. Being

I'd think that would be a horrible disadvantage on the PC platform. Folks are
going to want to be able to boot off of SCSSI devices, CDROM drives, Floppies,
ZIP disks, LS-120's, PCMCIA drives, firewire drives, and whatever else they may
invent next week. Its OK to not support all that stuff at first, but it should
be doable.

---
T.E.D.    homepage   - http://www.telepath.com/dennison/Ted/TED.html
          home email - mailto:dennison@telepath.com



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

* Re: Ada Microkernel?
  2001-06-29 13:16                                       ` Marin David Condic
@ 2001-06-29 14:59                                         ` Ted Dennison
  2001-06-29 15:22                                           ` Marin David Condic
  0 siblings, 1 reply; 73+ messages in thread
From: Ted Dennison @ 2001-06-29 14:59 UTC (permalink / raw)


In article <9hhv2m$ivm$1@nh.pace.co.uk>, Marin David Condic says...
>
>My OS book from back in my college days is so old, I don't think it would be
>anywhere close to up to date with modern OS theory. That's why I'm asking
>for a recommendation.

Mine is only about 4 years old, but I'm getting the feeling that's ancient
history too. :-(   It talks a lot about MACH, but doesn't mention L4.

>"switch selectable" IOW, it would be useful to make WindowsNT have a
>"Real-Time"  mode so you could run critical processes on it, yet have all
>the tools & services available to you that programming in non-real-time
>usually does. Indeed, there are third-party products to do just that. (From
>what I've seen, they tend to duplicate most of the Windows API, put a RTOS
>under it, then run Windows as a lower priority process.)

RTX. The commercial sims we build in-house are all moving to it. I suspect I'll
become quite familiar with it in the next few months. Who knows, I might even
take a crack at a Gnat port someday..

>I think the biggest area of contention between the two would be the
>scheduler. I don't see how things like device drivers, interrupt processing,

I was thinking you ought to be able to somehow mark a process as "non
time-slicing" or somesuch so that it could be scheduled along with normal user
processes, but still be realtime. Any real-time process is probably going to be
higher-priority than a user process, but it could still use the same scheduler
this way. But I'm not an expert in this field, so I'm guessing there may be some
instrinsic problems I don't see.

---
T.E.D.    homepage   - http://www.telepath.com/dennison/Ted/TED.html
          home email - mailto:dennison@telepath.com



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

* Re: Ada Microkernel?
  2001-06-29  4:37                                     ` Brian Catlin
  2001-06-29 13:18                                       ` Marin David Condic
@ 2001-06-29 15:09                                       ` Ted Dennison
  1 sibling, 0 replies; 73+ messages in thread
From: Ted Dennison @ 2001-06-29 15:09 UTC (permalink / raw)


In article <9hh0np$nj3$1@slb4.atl.mindspring.net>, Brian Catlin says...
>
>Before delving into RTOS design, you might want to first  look at Rate Monotonic Analysis, which is the heart and soul of real-time
>scheduling.  I liked "A Practitioner's Handbook for Real-Time Analysis: Guide to Rate Monotonic Analysis for Real-Time Systems" from
>Kluwer Academic Publishers, 1993, ISBN 0-7923-9361-9  http://www.wkap.nl/book.htm/0-7923-9361-9

We got that book with (I believe) our GreenHills compiler, and I can verify that
its damn nice. Its got all sorts of formulas in there for proving response time
and such. However, I searched it in vain for some kind of discussion of the
jitter reduction technique we use here (which our entire schedulers are built
around). So its not perfect, but it is well worth having.

---
T.E.D.    homepage   - http://www.telepath.com/dennison/Ted/TED.html
          home email - mailto:dennison@telepath.com



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

* Re: Ada Microkernel?
  2001-06-29 14:59                                         ` Ted Dennison
@ 2001-06-29 15:22                                           ` Marin David Condic
  2001-06-29 18:21                                             ` Ted Dennison
  0 siblings, 1 reply; 73+ messages in thread
From: Marin David Condic @ 2001-06-29 15:22 UTC (permalink / raw)


I'm not an expert, nor do I play one on TV, (NDIPOOTV?) but here's why I
think there would be a problem with marking a process "Non-Time-Slicing":
Suppose you want your process to do a run until blocked kind of thing.
Suppose the rest of the world wants to timeslice. The timeslice thing is
going to require some sort of setting of a clock/interrupt/timer that will
stop your run-until-blocked process to give control to the scheduler. The
secheduler may look and say "Ted's job is still the most important thing to
do" and give you back the processor, but in the mean time, you've been
interrupted and had control given to the OS for some duration. even if the
duration is predictable, its still undsirable because it takes time from you
and may happen at A Bad Time(tm). What may be a bigger problem is that once
that timer goes off and the scheduler gets invoked, you probably aren't
going to be able to tell in advance how long its going to be before you get
to run again. Non-determinism is definitely A Bad Thing(tm). It for sure
would shoot Rate Monotonic right square between the eyes.

I'm not sure I could see a way around not having the timer go off at regular
intervals unless you came up with some way of masking the interrupts until
you got blocked. But having blocked and enabling the interrupts so others
could round-robin, you're back with the problem of a non-deterministic delay
when you do block. This is *probably* A Bad Thing if you were counting - for
example - on your blocking operation taking a fixed & deterministic amount
of time so you don't periodically blow your timing budget.

I'm *reasonably* persuaded that the only way you could do it would be to say
at boot time - or via some privileged command - "I want to operate Realtime"
and let the GUI window apps' performance suck in exchange for the guarantees
you need from an RTOS. Since people are doing essentially this to get
realtime work done under Windows, it would seem like A Good Thing(tm) to
build right in from the start.

MDC
--
Marin David Condic
Senior Software Engineer
Pace Micro Technology Americas    www.pacemicro.com
Enabling the digital revolution
e-Mail:    marin.condic@pacemicro.com
Web:      http://www.mcondic.com/


"Ted Dennison" <dennison@telepath.com> wrote in message
news:4J0%6.1684$Kf3.17425@www.newsranger.com...
>
> I was thinking you ought to be able to somehow mark a process as "non
> time-slicing" or somesuch so that it could be scheduled along with normal
user
> processes, but still be realtime. Any real-time process is probably going
to be
> higher-priority than a user process, but it could still use the same
scheduler
> this way. But I'm not an expert in this field, so I'm guessing there may
be some
> instrinsic problems I don't see.
>






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

* Re: Ada Microkernel?
  2001-06-29 15:22                                           ` Marin David Condic
@ 2001-06-29 18:21                                             ` Ted Dennison
  2001-07-02 13:50                                               ` Marin David Condic
  0 siblings, 1 reply; 73+ messages in thread
From: Ted Dennison @ 2001-06-29 18:21 UTC (permalink / raw)


In article <9hi6fv$lop$1@nh.pace.co.uk>, Marin David Condic says...
>Suppose the rest of the world wants to timeslice. The timeslice thing is
>going to require some sort of setting of a clock/interrupt/timer that will
>stop your run-until-blocked process to give control to the scheduler. The
>secheduler may look and say "Ted's job is still the most important thing to
>do" and give you back the processor, but in the mean time, you've been
>interrupted and had control given to the OS for some duration. even if the
>duration is predictable, its still undsirable because it takes time from you

But that is already happening. After all, the scheduler has to wake up
periodicly to verify that no higher-priority task is ready to run.

The way vxWorks operates, there's a PC Real-time clock interrupt that can be
modified but by default goes off at 60hz on IRQ 0 (or was it 2?). The OS handles
that, and immediately invokes the scheduler to see if anything was sitting on a
"delay" (actually, a taskDelay) that has just expired. If so, the appropriate
scheduling data structures are modified, and a task switch is initiated if
needed. 

For schedulability analysis, I presume one would handle this either by adding
the appropriate multiple of the max scheduling delay (which the OS vendor would
hopefully provide), or by showing that the task in question completes in less
than one scheduling interval. Being able to provide that max scheduling delay
(and have it be a resonable number) is where I think most consumer OS's would
have trouble.

---
T.E.D.    homepage   - http://www.telepath.com/dennison/Ted/TED.html
          home email - mailto:dennison@telepath.com



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

* Re: Ada Microkernel?
  2001-06-29 14:26                           ` Ted Dennison
@ 2001-07-02  7:11                             ` Tarjei T. Jensen
  2001-07-02 13:25                               ` Ted Dennison
  2001-07-07 23:22                             ` Stefan Skoglund
  1 sibling, 1 reply; 73+ messages in thread
From: Tarjei T. Jensen @ 2001-07-02  7:11 UTC (permalink / raw)



Ted Dennison wrote
>I'd think that would be a horrible disadvantage on the PC platform. Folks
are
>going to want to be able to boot off of SCSSI devices, CDROM drives,
Floppies,
>ZIP disks, LS-120's, PCMCIA drives, firewire drives, and whatever else they
may
>invent next week. Its OK to not support all that stuff at first, but it
should
>be doable.

You misunderstand. It is only the very basic kernel which is written in
assembly language. Not the device drivers, etc.

Greetings,






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

* Re: Ada Microkernel?
  2001-06-29 10:29                           ` Fr�d�ric BOYER
@ 2001-07-02  7:13                             ` Tarjei T. Jensen
  0 siblings, 0 replies; 73+ messages in thread
From: Tarjei T. Jensen @ 2001-07-02  7:13 UTC (permalink / raw)



Fr�d�ric BOYER wrote
>I am not sure that all L4's implementation are written in assembly
language.
>Some implementation use c and c++. An Ada implementation could be very cool
>(for Ada and for us).

The basic L3 kernel core is written in assembly language. I assume that the
layers above is written in a high level language. I assume that L4 works the
same way.

Greetings,






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

* Re: Ada Microkernel?
  2001-07-02  7:11                             ` Tarjei T. Jensen
@ 2001-07-02 13:25                               ` Ted Dennison
  2001-07-05 21:37                                 ` Tarjei Tj�stheim Jensen
  0 siblings, 1 reply; 73+ messages in thread
From: Ted Dennison @ 2001-07-02 13:25 UTC (permalink / raw)


In article <9hp6rb$6t2@news.kvaerner.com>, Tarjei T. Jensen says...
>Ted Dennison wrote
>>I'd think that would be a horrible disadvantage on the PC platform. Folks
>are
>>going to want to be able to boot off of SCSSI devices, CDROM drives,
>Floppies,
>>ZIP disks, LS-120's, PCMCIA drives, firewire drives, and whatever else they
>may
>>invent next week. Its OK to not support all that stuff at first, but it
>should
>>be doable.
>
>You misunderstand. It is only the very basic kernel which is written in
>assembly language. Not the device drivers, etc.

Don't device drivers have to be loaded from a device *after* the boot process
has begun? Perhaps what I'm thinking of is a bootloader issue...

---
T.E.D.    homepage   - http://www.telepath.com/dennison/Ted/TED.html
          home email - mailto:dennison@telepath.com



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

* Re: Ada Microkernel?
  2001-06-29 18:21                                             ` Ted Dennison
@ 2001-07-02 13:50                                               ` Marin David Condic
  2001-07-02 16:57                                                 ` OPERA
  0 siblings, 1 reply; 73+ messages in thread
From: Marin David Condic @ 2001-07-02 13:50 UTC (permalink / raw)


The key to it is predictability. Or at least uniformity so you know that
your timing tests are going to be good. One could argue all day about this
OS versus that OS and their relative suitability for realtime work, but I
think that to be a candidate at all, the OS has to provide deterministic
behavior and stability. How compatible is this with the goals of a
"workstation" OS? I don't know. I think that from a requirements viewpoint,
one might insist that a single process should be able to run in some mode
where it can guarantee that its cycle time is 100% consistent. (You could
ask if this is with or without threads within the process - I'd think we
would want that.) As long as the OS will let the process run in a guaranteed
consistent cycle time, the rest is just efficiency and appropriate hardware
to make sure the cycle time is sufficiently fast.

AFAIK, the two things that this would impact the most would be the scheduler
and the device driver model (interrupt handling figuring into the device
driver model as far as I'm concerned.) If you had at the core of your OS
these two things built such that they were suitable for realtime, you'd have
something that could be marketed in a large variety of places. If you could
build a workstation OS on top of that - even if it had to have some
different operation mode - you'd have an environment that was quite valuable
for realtime/embedded development, for reasons that should be obvious.

Can an OS provide at least one "realtime" process and still allow other
processes to run in an acceptable manner? I don't know if this is doable,
but it would certainly be cool if it did exist. I'd even accept some sort of
configuration switch at boot time or OS build time just so you could have
essentially the same OS on your PC as would be used in the realtime/embedded
app. That enables a huge amount of development to occur on the desktop
rather than the lab - at an enormous cost/time savings.

MDC
--
Marin David Condic
Senior Software Engineer
Pace Micro Technology Americas    www.pacemicro.com
Enabling the digital revolution
e-Mail:    marin.condic@pacemicro.com
Web:      http://www.mcondic.com/


"Ted Dennison" <dennison@telepath.com> wrote in message
news:wG3%6.1950$Kf3.21097@www.newsranger.com...
> In article <9hi6fv$lop$1@nh.pace.co.uk>, Marin David Condic says...
>
> For schedulability analysis, I presume one would handle this either by
adding
> the appropriate multiple of the max scheduling delay (which the OS vendor
would
> hopefully provide), or by showing that the task in question completes in
less
> than one scheduling interval. Being able to provide that max scheduling
delay
> (and have it be a resonable number) is where I think most consumer OS's
would
> have trouble.
>






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

* Re: Ada Microkernel?
  2001-07-02 13:50                                               ` Marin David Condic
@ 2001-07-02 16:57                                                 ` OPERA
  0 siblings, 0 replies; 73+ messages in thread
From: OPERA @ 2001-07-02 16:57 UTC (permalink / raw)


Hello,

I am not sure to have completely understood the problem, because I'm no
specialist, but what would you think of the following :
- take as a basis for an new general purpose OS the RT Ravenscar. This Real Time
OS in Ada would be the micro-kernel. It provides a predictable management of
simple tasks (call them Ravenscar tasks) and static memory allocation.
- Then developp around this micro kernel, using GNORT, all the services needed
by a general purpose kernel, ie the management of  dynamic allocation of ADA
tasks (threads and processes) and ressources. This services would be provided by
"servers" (simple protected objects and Ravenscar tasks). This would involve
adding to the Ravenscar micro-kernel only the very few primitives needed to
handle dynamic tasks, for exemple to execute or suspend execution of a given ADA
task or modifiy it's environnement. The goal here is to keep the micro-kernel as
simple and predicatble as before for Ravenscar tasks, but to allow ADA tasks to
execute when it is idle. We can do the same for memory : the micro-kernel would
simply provide the ability to attach a memory segment to a task. The managment
of dynamic memory would be kept to the "memory service".

Therefore :
- a Real Time application would be attached to the system as a sort of driver,
and built with GNORT using Ravenscar restrictions.
- conventionnal application (developped with GNAT) would run just like on any
other OS.


Vincent




Marin David Condic a �crit :

> The key to it is predictability. Or at least uniformity so you know that
> your timing tests are going to be good. One could argue all day about this
> OS versus that OS and their relative suitability for realtime work, but I
> think that to be a candidate at all, the OS has to provide deterministic
> behavior and stability. How compatible is this with the goals of a
> "workstation" OS? I don't know. I think that from a requirements viewpoint,
> one might insist that a single process should be able to run in some mode
> where it can guarantee that its cycle time is 100% consistent. (You could
> ask if this is with or without threads within the process - I'd think we
> would want that.) As long as the OS will let the process run in a guaranteed
> consistent cycle time, the rest is just efficiency and appropriate hardware
> to make sure the cycle time is sufficiently fast.
>
> AFAIK, the two things that this would impact the most would be the scheduler
> and the device driver model (interrupt handling figuring into the device
> driver model as far as I'm concerned.) If you had at the core of your OS
> these two things built such that they were suitable for realtime, you'd have
> something that could be marketed in a large variety of places. If you could
> build a workstation OS on top of that - even if it had to have some
> different operation mode - you'd have an environment that was quite valuable
> for realtime/embedded development, for reasons that should be obvious.
>
> Can an OS provide at least one "realtime" process and still allow other
> processes to run in an acceptable manner? I don't know if this is doable,
> but it would certainly be cool if it did exist. I'd even accept some sort of
> configuration switch at boot time or OS build time just so you could have
> essentially the same OS on your PC as would be used in the realtime/embedded
> app. That enables a huge amount of development to occur on the desktop
> rather than the lab - at an enormous cost/time savings.
>
> MDC
> --
> Marin David Condic
> Senior Software Engineer
> Pace Micro Technology Americas    www.pacemicro.com
> Enabling the digital revolution
> e-Mail:    marin.condic@pacemicro.com
> Web:      http://www.mcondic.com/
>
> "Ted Dennison" <dennison@telepath.com> wrote in message
> news:wG3%6.1950$Kf3.21097@www.newsranger.com...
> > In article <9hi6fv$lop$1@nh.pace.co.uk>, Marin David Condic says...
> >
> > For schedulability analysis, I presume one would handle this either by
> adding
> > the appropriate multiple of the max scheduling delay (which the OS vendor
> would
> > hopefully provide), or by showing that the task in question completes in
> less
> > than one scheduling interval. Being able to provide that max scheduling
> delay
> > (and have it be a resonable number) is where I think most consumer OS's
> would
> > have trouble.
> >




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

* Re: Ada Microkernel?
@ 2001-07-03 18:05 Michael Erdmann
  2001-07-03 18:20 ` Ted Dennison
  0 siblings, 1 reply; 73+ messages in thread
From: Michael Erdmann @ 2001-07-03 18:05 UTC (permalink / raw)
  To: comp.lang.ada

May be i missed the point but mean while i am confused
about the scope of the future project.

- A small Kernel for embedded system with limited
  functionality.
- A real time kernel providing defined response
  times.
- A new operating system with loadable drivers etc.

I am missing the red line. So waht is the objective of the
project?

Regards
   M.Erdmann








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

* Re: Ada Microkernel?
  2001-07-03 18:05 Michael Erdmann
@ 2001-07-03 18:20 ` Ted Dennison
  0 siblings, 0 replies; 73+ messages in thread
From: Ted Dennison @ 2001-07-03 18:20 UTC (permalink / raw)


In article <mailman.994183205.28749.comp.lang.ada@ada.eu.org>, Michael Erdmann
says...
>
>May be i missed the point but mean while i am confused
>about the scope of the future project.

It depends on who you are addressing this to. I believe the original poster was
talking about just writing a Microkernel. The AdaOS folks as near as I can tell
are aiming at a full multiuser OS. Marin and I were talking about the
feasability of creating a RTOS that is *also* a full multiuser OS, without
resorting to putting some special greazy hack on an existing multiuser OS.

Probably the only one in there who merits the status of a "future project" was
the original poster.

---
T.E.D.    homepage   - http://www.telepath.com/dennison/Ted/TED.html
          home email - mailto:dennison@telepath.com



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

* Re: Ada Microkernel?
  2001-07-02 13:25                               ` Ted Dennison
@ 2001-07-05 21:37                                 ` Tarjei Tj�stheim Jensen
  0 siblings, 0 replies; 73+ messages in thread
From: Tarjei Tj�stheim Jensen @ 2001-07-05 21:37 UTC (permalink / raw)


Ted Dennison wrote:
> Don't device drivers have to be loaded from a device *after* the boot process
> has begun? Perhaps what I'm thinking of is a bootloader issue...

The boot can be done using the BIOS or similar services. Once you start
executing the kernel, you have to have som device drivers ready. In the
initial phase one does not need many drivers because one assumes that
one is booting from a disk device of some sort. Later on it is another
matter.


Greetings,



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

* Re: Ada Microkernel?
  2001-06-29 14:26                           ` Ted Dennison
  2001-07-02  7:11                             ` Tarjei T. Jensen
@ 2001-07-07 23:22                             ` Stefan Skoglund
  2001-07-09 13:51                               ` Ted Dennison
  1 sibling, 1 reply; 73+ messages in thread
From: Stefan Skoglund @ 2001-07-07 23:22 UTC (permalink / raw)


Ted Dennison wrote:
> >microkernel either. All the interesting developments in microkernels
> >happened after mach was released :-)
> 
> I did notice that the HURD folks blamed most of their delays (and thus the rise
> of Linux) on MACH.

It was a question of intellectual property rights.
The GNU project had in fact started its own kernel-development
effort and had made maybe 10% of the effort when
CMU released Mach with a GPL compatible license.



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

* Re: Ada Microkernel?
  2001-07-07 23:22                             ` Stefan Skoglund
@ 2001-07-09 13:51                               ` Ted Dennison
  0 siblings, 0 replies; 73+ messages in thread
From: Ted Dennison @ 2001-07-09 13:51 UTC (permalink / raw)


In article <3B4799AD.98849145@ebox.tninet.se>, Stefan Skoglund says...
>
>Ted Dennison wrote:
>> I did notice that the HURD folks blamed most of their delays (and thus the 
>> rise of Linux) on MACH.
>
>It was a question of intellectual property rights.
>The GNU project had in fact started its own kernel-development
>effort and had made maybe 10% of the effort when
>CMU released Mach with a GPL compatible license.

That was indeed a large part of it. But there was also the issue that debugging
Mach servers ended up being a real pain.

---
T.E.D.    homepage   - http://www.telepath.com/dennison/Ted/TED.html
          home email - mailto:dennison@telepath.com



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

end of thread, other threads:[~2001-07-09 13:51 UTC | newest]

Thread overview: 73+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-06-02  1:09 Ada Microkernel? B. Douglas Hilton
2001-06-02  2:11 ` DuckE
2001-06-02  2:25 ` Gerhard Häring
2001-06-02  2:41 ` Ted Dennison
2001-06-02  5:09   ` Dale Stanbrough
2001-06-02 21:31   ` B. Douglas Hilton
2001-06-02 23:21     ` chris.danx
2001-06-02 11:07 ` chris.danx
2001-06-02 20:30   ` McDoobie
2001-06-02 21:20     ` B. Douglas Hilton
2001-06-02 21:41       ` B. Douglas Hilton
2001-06-03  1:09         ` James Rogers
2001-06-02 23:00       ` chris.danx
2001-06-03  5:31         ` B. Douglas Hilton
2001-06-03 11:45           ` chris.danx
2001-06-03 22:54             ` Didier Utheza
2001-06-03 23:23               ` Florian Weimer
2001-06-04 14:37       ` Ted Dennison
2001-06-04 11:52     ` Chris Campbell
2001-06-09 23:54       ` McDoobie
2001-06-10  1:16         ` Chris Campbell
2001-06-10  7:13           ` Gerhard Häring
2001-06-10 12:14             ` Samuel Tardieu
2001-06-10 17:00             ` chris.danx
2001-06-11 20:54               ` chris.danx
2001-06-11 20:58                 ` chris.danx
2001-06-11 22:30                   ` tmoran
2001-06-11 22:35                     ` chris.danx
2001-06-11 23:24                   ` Robert A Duff
2001-06-12 20:57                   ` Randy Brukardt
2001-06-11 21:38                 ` Ted Dennison
2001-06-11 21:44                   ` chris.danx
2001-06-12  3:09                     ` DuckE
2001-06-12 10:39                       ` Jeff Creem
2001-06-11 23:22                 ` Robert A Duff
2001-06-12  9:58                   ` chris.danx
2001-06-12 17:27                     ` tmoran
2001-06-13 10:31                     ` Colin Paul Gloster
2001-06-23 14:58                     ` Stefan Skoglund
2001-06-24  0:22                       ` B. Douglas Hilton
2001-06-28  8:30                       ` Fr�d�ric BOYER
2001-06-28  9:50                         ` M. A. Alves
2001-06-28 14:21                           ` Ted Dennison
2001-06-28 14:39                             ` Wes Groleau
2001-06-28 15:01                             ` Marin David Condic
2001-06-28 17:45                               ` Tarjei Tj�stheim Jensen
2001-06-28 19:03                                 ` Marin David Condic
2001-06-28 19:15                                   ` Marin David Condic
2001-06-28 21:52                                     ` Ted Dennison
2001-06-29 13:16                                       ` Marin David Condic
2001-06-29 14:59                                         ` Ted Dennison
2001-06-29 15:22                                           ` Marin David Condic
2001-06-29 18:21                                             ` Ted Dennison
2001-07-02 13:50                                               ` Marin David Condic
2001-07-02 16:57                                                 ` OPERA
2001-06-29  4:37                                     ` Brian Catlin
2001-06-29 13:18                                       ` Marin David Condic
2001-06-29 15:09                                       ` Ted Dennison
2001-06-29  2:45                               ` Gerhard Häring
2001-06-29  2:32                             ` Gerhard Häring
2001-06-28 10:55                         ` chris.danx
2001-06-28 17:55                         ` Tarjei Tj�stheim Jensen
2001-06-29 10:29                           ` Fr�d�ric BOYER
2001-07-02  7:13                             ` Tarjei T. Jensen
2001-06-29 14:26                           ` Ted Dennison
2001-07-02  7:11                             ` Tarjei T. Jensen
2001-07-02 13:25                               ` Ted Dennison
2001-07-05 21:37                                 ` Tarjei Tj�stheim Jensen
2001-07-07 23:22                             ` Stefan Skoglund
2001-07-09 13:51                               ` Ted Dennison
2001-06-11 14:53           ` Ted Dennison
  -- strict thread matches above, loose matches on Subject: below --
2001-07-03 18:05 Michael Erdmann
2001-07-03 18:20 ` Ted Dennison

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