From: Optikos <optikos@verizon.net>
Subject: Re: Why couldn't an operating system be written in ada
Date: Sat, 6 Apr 2019 21:32:00 -0700 (PDT)
Date: 2019-04-06T21:32:00-07:00 [thread overview]
Message-ID: <d4b4e527-9d29-436e-9db7-54780b7e9712@googlegroups.com> (raw)
In-Reply-To: <q8bla8$lmc$1@dont-email.me>
On Saturday, April 6, 2019 at 9:55:21 PM UTC-4, Nick Roberts wrote:
> On 10/01/2019 23:38, cenci.br@gmail.com wrote:
> > Em sábado, 13 de julho de 1996 04:00:00 UTC-3, Mark McKinney escreveu:
> >> 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?
> >
> > Is this discussion still active ?
>
> I have a little bit of a plan for this, but I must admit it is very
> ambitious. The biggest problem I face is getting help, as well as my own
> lack of skill in running these projects.
>
> My current plan goes along these lines:
>
> I am building a new Ada compiler that will use a new technology for
> targeting machine architectures. The following is a simplification, but
> it gives the gist of it.
>
> 1. The compiler builds Ada source text into an intermediary code, called
> 'PXC' (a kind of abbreviation for 'extended pseudo-code'). These PXC
> files are distributed to the target machines. Each PXC file is a module,
> and a complete program comprises many such modules (perhaps hundreds of
> them, or even thousands).
>
> 2. Each target machine itself has a program called the Realizor, which
> generates a real executable file, comprising actual machine code for the
> architecture of its own processor(s), from the complete set of PXC
> modules that go to make up the program.
>
> One of the big advantages of doing it this way is that global
> optimisations, including inlining of cross-module calls, can be
> performed by the Realizor. In addition, the Realizor can implement a
> strategy of capturing profiling data (execution statistics) for the
> program, and periodically re-realising it to yield still better
> optimisations.
>
> 3. Because of the way the Realizor works, all privilege level-changing
> calls (e.g. into the kernel) can be removed. Security is, nevertheless,
> fully maintained.
>
> (I also intend the technology to remove all use of hardware paging; this
> will be replaced by a more intelligent software-based segment-swapping
> mechanism.)
>
> 4. Because of 3 above, it is possible for the kernel and all the device
> drivers and other low-level software to be PXC modules, mixed in by the
> Realizor along with all the other PXC modules. This means that many
> kernel calls can be inlined, effectively eliminating all call overhead
> on them.
>
> I believe these technologies would enable a dedicated piece of software,
> running 24/7, to run significantly faster.
>
> When you consider how important performance is on today's vast farms of
> servers, that could be a pretty compelling reason for people to switch
> from traditional operating systems.
>
> All I have to do is to do it :-)
>
>
>
> I'm hoping it could be a way of getting Ada back into the mainstream. We
> all know in this forum that building future software in Ada, especially
> server software, would be a big step towards making it more secure and
> reliable.
>
> PS: There's a lot more about this scheme that I would like to say, but I
> don't want to turn this post into a dissertation, and I do want to get
> to bed soon. If you have any burning questions, please ask.
Why can't LLVM be your PXC? LLVM already is your PXC and already built out your Realizors for a plethora of ISAs.
next prev parent reply other threads:[~2019-04-07 4:32 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 ` Mark Eichin
1996-07-15 0:00 ` Brian Rogoff
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 [this message]
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
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 Robert C. Leif, Ph.D.
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-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-15 0:00 Simon Johnston
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