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=-0.4 required=5.0 tests=AC_FROM_MANY_DOTS,BAYES_00 autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,5bcf30769d6d9599 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2001-09-04 07:45:44 PST Path: archiver1.google.com!newsfeed.google.com!newsfeed.stanford.edu!newsfeeds.belnet.be!news.belnet.be!psinet-eu-nl!psiuk-p4!uknet!psiuk-n!news.pace.co.uk!nh.pace.co.uk!not-for-mail From: "Marin David Condic" Newsgroups: comp.lang.ada Subject: Re: Ada OS talk (was: ADA os talk) Date: Tue, 4 Sep 2001 10:40:37 -0400 Organization: Posted on a server owned by Pace Micro Technology plc Message-ID: <9n2p56$ds1$1@nh.pace.co.uk> References: NNTP-Posting-Host: dhcp-200-133.miami.pace.co.uk X-Trace: nh.pace.co.uk 999614438 14209 136.170.200.133 (4 Sep 2001 14:40:38 GMT) X-Complaints-To: newsmaster@news.cam.pace.co.uk NNTP-Posting-Date: 4 Sep 2001 14:40:38 GMT X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Xref: archiver1.google.com comp.lang.ada:12699 Date: 2001-09-04T14:40:38+00:00 List-Id: There is GNORT (GNAT No RunTime - where do they get these names?). I don't know if simply sticking to a subset of Ada gives you pure code or not with GNAT, but there is at least available somewhere a version of GNAT that could be used to build a boot loader & kernel. (BTW: I believe this is the subset that is used to build RTEMS which then acts as the kernel for embedded Ada apps.) AFAIK, the existing GNAT for PC architecture machines is going to rely on OS calls to do all of its scheduling. I believe that the Unix variants use POSIX calls, but I don't know if the same is true for PC/Windows versions. That poses a problem in that if you want to build an OS kernel, you ultimately need to have an Ada compiler that uses its services to schedule, etc. That means modifying the compiler or living with POSIX. Not impossible, but it is more work. One approach might be to identify an available version of GNORT (I don't know if it is generally available?) and figure that this is the Ada subset from which to build the boot loader, kernel, and enough other stuff to get some rudimentary app loaded and executing. From there, you could think in terms of building a "Core" that rode on top the kernel and provided services to any other app. That Core could start out small & might even support POSIX calls as an initial cut. (Ultimately, you build your own OS calls, but this lets you get something useful out there as well as making yourself compatible with all sorts of other stuff.) If you got far enough to have a Kernel that could run a Core that could run several general Ada apps (supporting processes & tasks) then the rest of it is a matter of adding apps & extending your core until you think you've got something real. I have not given much thought to device drivers, but obviously that needs to be considered early on. I don't know if it needs much consideration for a Kernel, but certainly by the time you get to the Core, you'd better know how you are going to hook to the physical hardware. (You can abstract for a while - possibly even working with a simulated environment on top of something like NT, but eventually, you've got to hook to real, live hardware.) 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/ "M. A. Alves" wrote in message news:mailman.999611824.11826.comp.lang.ada@ada.eu.org... > > Good strategy. Now, is there a fragment of Ada that GNAT compiles into > native machine code i.e. independently of host OS? (Then we could use > that fragment to write the boot, compile it in a working machine with the > same architecture, put it on the floppy boot sector, and use a clean > machine to test it.) Or a fragment dependent on some host OS things but > that we can tamper with in the GNAT backend to make it independent? > > Also, what is the fragment of Ada necessary and sufficient to make a full > Ada compiler/interpreter? > > -- > , > 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 > >