From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,f45b1f6d53ecbae4 X-Google-Attributes: gid103376,public From: Mark Eichin Subject: Re: Why couldn't an operating system be written in ada Date: 1996/07/15 Message-ID: #1/1 X-Deja-AN: 168864666 sender: eichin@maneki-neko.cygnus.com references: <4s8rud$9j3@tribune> organization: Cygnus Support, Eastern USA newsgroups: comp.lang.ada Date: 1996-07-15T00:00:00+00:00 List-Id: > A neat idea whose time is long since gone. The OS "wars" have been fought > and largely lost.... :-( Well, the users lost anyway :-} However, research certainly continues -- and there need to be good arguments against doing OS research using fragile, difficult to read languages like C... MK, VSTA, and other operating systems exist to serve as research platforms (and sometimes as operational platforms when "modern" 70's and 80's systems just can't cut it.) Surely there is justification for using Ada in this context, at least? I brought up this point with a well known linux kernel developer, and between the two of us we came up with several things that I didn't know Ada95 well enough to answer: 1) Can you do efficient raw memory operations (ie. raw byte arrays, explicit control of when an access can be eliminated, and no overhead [or at least, not stored in-place, for an object like a page or a video card?] 2) Can you interface efficiently to machine code (ie. equivalent of inline asm, where you *mostly* can code a high level algorithm but the core needs to be a particular hardware level instruction. A GNAT-specific answer is ok, in this case...) 3) Can you work without tasking (since you're implementing the scheduler!) [I'll take arguments that you should in fact use Ada tasking within the kernel, if they're detailed...] 4) Can you do complete memory management (without garbage collection.) As you can see, I *don't* know much Ada, though I've gotten a start on Barnes' excellent "Ada95" text. My guesses are that (1) is possible, but you must go out of your way to do it; (2) might be possible in GNAT; (3) is probably obvious and (4) is true but the reasoning is subtle. I haven't thought of any other potential obstacles to OS work in Ada; it would seem a good choice, based on the *intent* of the design, but I can't yet judge the results. _Mark_ Cygnus Support, Eastern USA