From: russ lyttle <lyttlec@removegmail.com>
Subject: Re: Why couldn't an operating system be written in ada
Date: Wed, 27 Feb 2019 14:51:26 -0500
Date: 2019-02-27T14:51:26-05:00 [thread overview]
Message-ID: <q56pnt$m6p$1@gioia.aioe.org> (raw)
In-Reply-To: 1d9e7148-cc7d-423b-9c4a-2372d1af4ddd@googlegroups.com
On 2/27/19 2:10 PM, Shark8 wrote:
> On Tuesday, February 26, 2019 at 4:14:03 PM UTC-7, lyttlec wrote:
>> On 2/26/19 3:46 AM, Niklas Holsti wrote:
>>> On 19-02-25 23:56 , Rabican wrote:
>>>> On Saturday, July 13, 1996 at 3:00:00 AM UTC-4, Mark McKinney wrote:
>>>>> It has been claimed that the capability to interface with other
>>>>> languages
>>>>> is a great asset to ada. Sometimes interfacing can be a tremendous
>>>>> liability. Besides the OS could perform most of work that the language
>>>>> runtime does. So why not build an OS in ADA?
>>>>
>>>> yeah why not? anything?
>>>
>>> This has been discussed many times before in comp.lang.ada.
>>>
>>> The first question is not "why not build an OS is Ada", the first
>>> question is "why build a new OS at all"?
>>>
>>> Then, if a new OS is going to be built for some reason, we can ask which
>>> language should be used, and of course (IMO) Ada would be a strong
>>> contender. However, for larger systems, the OS must usually implement a
>>> "process" concept that goes beyond Ada tasking and provides isolation
>>> between different users and applications. This means that the OS will
>>> have a process/service-level API that is not, as such, Ada-language
>>> specific. And so the fact that the OS is implemented in Ada becomes
>>> invisible on the application level.
>>>
>>> This is not to say that an OS API specified in Ada could not be an
>>> improvement (for Ada applications) on the current OS APIs which are
>>> usually specified in C. However, such an Ada OS API could also be
>>> provided for an OS implemented in C or some other language.
>>>
>>> At present, for small, (mostly) stand-alone embedded Ada systems, the
>>> bare-machine Ada run-times are sufficient -- and they are usually
>>> written in Ada. For larger or network-connected systems, where a
>>> comprehensive OS is needed, the Ada compiler vendors often provide
>>> run-times that hide the chosen OS (say, VxWorks) from the Ada
>>> applications, making the OS implementation language irrelevant (as long
>>> as the OS works).
>>>
>>> There are of course exceptions, such as the RTEMS real-time OS/kernel
>>> which originally supported Ada run-times but for which I believe there
>>> is today no vendor-supplier Ada run-time, which means that Ada projects
>>> that choose to use RTEMS (for some unfathomable reason) have to bind to
>>> the RTEMS C-level services directly.
>>>
>>>> can ada do CSP?
>>>
>>> Your question is rather vague, but the answer is almost certainly "yes"
>>> -- the Ada rendez-vous is very similar to an (unbuffered) Occam channel.
>>>
>> As to why write an OS in Ada, read Bruce Schneier's book "Click Here to
>> Kill Everybody". There is a need for an OS that can be proven correct
>> and can be scaled down to SBC size. Only a small subset of Ada would be
>> required to write the kernel. For example, Tasks are not needed to write
>> a kernel, nor are any POSIX features.
>> As far as I can tell, the only candidate language for writing such an OS
>> are Ada and Fortran. (Not too sure about Fortran.)
>
> Tasks would be ideal for a nice chunk OS design, especially considering the move to multicore architectures.
>
I mean that the kernel should provide tasking, but tasks would not be
required to write the kernel. It's a bit off topic for an Ada group, but
just what would a kernel with native multi-core support look like?
next prev parent reply other threads:[~2019-02-27 19:51 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
1996-07-13 0:00 Why couldn't an operating system be written in ada Mark McKinney
1996-07-15 0:00 ` Nasser Abbasi
1996-07-15 0:00 ` Robert Dewar
1996-07-17 0:00 ` Randy Greene
1996-07-17 0:00 ` Hannes Haug
1996-07-15 0:00 ` David Wheeler
1996-07-15 0:00 ` Michael Levasseur
1996-07-25 0:00 ` Greg Harvey
1996-07-26 0:00 ` Kent Mitchell
1996-07-16 0:00 ` Poutanen Olavi
1996-07-15 0:00 ` Jon S Anthony
1996-07-15 0:00 ` Brian Rogoff
1996-07-15 0:00 ` Mark Eichin
1996-07-16 0:00 ` Jon S Anthony
2019-03-02 16:07 ` Optikos
2019-03-03 22:14 ` russ lyttle
2019-01-10 23:38 ` cenci.br
2019-01-10 23:54 ` Lucretia
2019-04-07 1:55 ` Nick Roberts
2019-04-07 4:32 ` Optikos
2019-04-07 10:35 ` Nick Roberts
2019-04-07 14:06 ` Optikos
2019-01-14 11:26 ` George Shapovalov
2019-02-25 2:25 ` russ lyttle
2019-03-09 18:43 ` Norman Worth
2019-02-25 21:56 ` Rabican
2019-02-26 8:46 ` Niklas Holsti
2019-02-26 9:30 ` Dmitry A. Kazakov
2019-02-26 23:32 ` lyttlec
2019-02-27 2:00 ` Dennis Lee Bieber
2019-02-27 6:20 ` russ lyttle
2019-02-27 8:26 ` Dmitry A. Kazakov
2019-02-27 13:54 ` russ lyttle
2019-02-27 15:55 ` Dmitry A. Kazakov
2019-02-27 16:46 ` russ lyttle
2019-02-27 23:52 ` Randy Brukardt
2019-02-27 8:20 ` Dmitry A. Kazakov
2019-02-27 14:06 ` russ lyttle
2019-02-27 14:23 ` Niklas Holsti
2019-02-27 16:01 ` Dmitry A. Kazakov
2019-02-27 17:04 ` russ lyttle
2019-02-27 17:29 ` Dmitry A. Kazakov
2019-03-09 18:46 ` Norman Worth
2019-02-26 23:13 ` lyttlec
2019-02-27 19:10 ` Shark8
2019-02-27 19:51 ` russ lyttle [this message]
2019-02-27 22:12 ` Niklas Holsti
2019-03-01 15:07 ` fabien.chouteau
2019-02-27 10:47 ` Patrick Jakubowski
2019-02-28 6:23 ` G. B.
2019-02-28 8:28 ` Simon Wright
-- strict thread matches above, loose matches on Subject: below --
1996-07-15 0:00 Simon Johnston
1996-07-15 0:00 Robert C. Leif, Ph.D.
1996-07-17 0:00 ` wfranck
1996-07-22 0:00 ` Felicia R. Rosemond (214)-462-5371 ple1 SE
1996-07-29 0:00 ` Wallace E. Owen
1996-07-17 0:00 ` Mark McKinney
1996-07-20 0:00 ` Michael Feldman
1996-07-22 0:00 ` Theodore E. Dennison
1996-07-22 0:00 ` Larry Kilgallen
1996-07-30 0:00 ` Pascal Martin @lone
1996-08-01 0:00 ` Bob Kitzberger
1996-08-03 0:00 ` Pascal Martin @lone
1996-07-17 0:00 ` wfranck
1996-07-19 0:00 Marin David Condic, 407.796.8997, M/S 731-93
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox