
The AdaOS Operating System (2000) - unilynx
http://web.archive.org/web/20070118074522/http://adaos.net/home-2004-12-23/doc/overview.html
======
thesuperbigfrog
The biggest issue with all of these "write a new operating system in my
favorite language X" (where X is Ada, C, C++, D, Rust, etc) is that in almost
all cases the operating system design slowly morphs into a buggy, half-baked
version of an existing operating system. Rarely are there compelling new
designs that are sufficiently better than what currently exists or was
previously created in a different programming language.

While a different programming language can enable different levels of
expressiveness, elegance, or nuance of control when interacting with hardware,
ultimately it is the higher-level design concepts and design maturity that
come into focus over time. (Does the design work in the real world? Is it
"battle tested" and can address / overcome various failure modes?)

These forces have shaped the operating systems that we have today into what
they are through years of heat and pressure. If you are contemplating writing
a new operating system in your favorite language X, take a few years to study
and understand how current operating systems solve real world problems and ask
yourself how your ideas / designs will be as good as or better than what
currently exists.

~~~
SkyMarshal
_> The biggest issue with all of these "write a new operating system in my
favorite language X" (where X is Ada, C, C++, D, Rust, etc) is that in almost
all cases the operating system design slowly morphs into a buggy, half-baked
version of an existing operating system._

The whole point of writing a new OS in a language that prioritizes memory
safety and provable correctness, like Ada or Rust, is specifically to explore
the possibility that by using a better language, the OS won't morph into a
buggy spaghetti code thing.

Safe languages impose fundamental constraints on the complexity of the system,
that C/C++ and others do not, and eliminate entire classes of bugs and
vulnerabilities at the compiler level.

People wonder why all our systems these days are insecure and getting hacked
left and right. Provably correct software and compiler-enforced memory safety
are two tools that will be part of the solution (maybe not sufficient, but
absolutely necessary).

~~~
thesuperbigfrog
I agree that using a safe language is a necessity, especially for safety
critical environments and to ensure better security. But a safe language alone
does not ensure a good design. Ada is a great language (although strings are a
bit of a pain), but that alone will not ensure a good operating system design.

POSIX is a great standard, but it is too tightly coupled with C. If a
similarly mature and open Ada-based standard could be designed and created,
that would be great. If such a design were created, what would it look like?
How would files be represented and stored? How would you start, stop, or
communicate with tasks? (POSIX-style signals? Rendezvous? Something else?)

There needs to be an open design that is as well thought out as the Ada
programming language to really take advantage of everything that it offers.

~~~
zozbot234
There's an official Ada binding for POSIX.

~~~
thesuperbigfrog
Do you have a link to the documentation?

I am aware of Interfaces.C and the non-standard but highly-useful GNAT.OS_Lib.
Any others would be nice to know about.

POSIX is a mature set of APIs and designs, but it is C-centric. It is an
impedance mismatch discards many of the advantages of using Ada in the first
place.

~~~
zozbot234
[http://www.cs.fsu.edu/~baker/florist.html](http://www.cs.fsu.edu/~baker/florist.html)
/ [http://sourceforge.net/projects/gnat-
florist/](http://sourceforge.net/projects/gnat-florist/)

It's a standard.

~~~
projektfu
(Was a standard, now withdrawn)

------
ajxs
I was just looking at this recently, funnily enough, while looking for other
examples of x86 Operating-System development in Ada.

Here are a few other examples of Operating-System development in Ada, in
various levels of completion.

\- [https://github.com/ajxs/cxos](https://github.com/ajxs/cxos)

\-
[https://github.com/Lucretia/bare_bones](https://github.com/Lucretia/bare_bones)

\- [https://marte.unican.es/todo.htm](https://marte.unican.es/todo.htm)

\-
[https://sourceforge.net/projects/lovelaceos/](https://sourceforge.net/projects/lovelaceos/)

\- [https://sourceforge.net/projects/sx-ada-
kalinda/](https://sourceforge.net/projects/sx-ada-kalinda/)

~~~
johnisgood
Do not forget AuroraUX.

Back when it was based on OpenSolaris:

[https://web.archive.org/web/20090314042407/http://auroraux.b...](https://web.archive.org/web/20090314042407/http://auroraux.blastwave.org/index.php/Main_Page)
(Main Page)

[https://web.archive.org/web/20090415214139/http://auroraux.b...](https://web.archive.org/web/20090415214139/http://auroraux.blastwave.org/index.php/AuroraUX:About)
(About)

Then DragonFlyBSD:

[https://web.archive.org/web/20110824053558/http://www.aurora...](https://web.archive.org/web/20110824053558/http://www.auroraux.org/index.php/Main_Page)
(Main Page)

[https://web.archive.org/web/20110824053558/http://www.aurora...](https://web.archive.org/web/20110824053558/http://www.auroraux.org/index.php/Main_Page#Why_Ada.3F)
(Why Ada?)

[https://web.archive.org/web/20110904173302/http://www.aurora...](https://web.archive.org/web/20110904173302/http://www.auroraux.org/index.php/System_Overview)
(System Overview)

[https://web.archive.org/web/20110904171806/http://www.aurora...](https://web.archive.org/web/20110904171806/http://www.auroraux.org/index.php/Project_Goals)
(Project Goals)

[https://web.archive.org/web/20091127065848/http://www.aurora...](https://web.archive.org/web/20091127065848/http://www.auroraux.org/index.php/Hydra_Package_Manager)
(Hydra Package Manager)

~~~
ajxs
Thanks so much for the link! I'm having a little trouble finding the source on
those pages. Is there a link to it that's still active?

~~~
johnisgood
Unfortunately not that I know of. :( I think I still have my hard drive
somewhere back from 2009, I might be able to get some data off from it. It is
an old Maxtor, 30 GB I think. The pins are broken so I will definitely have to
fix that, but I will have to find it first.

I believe I can get in touch with someone who was really enthusiastic about
the project! He was like 14 years old at the time, really really zealous so I
would like to think that he made backups. I got the links above from him a
couple of weeks (or months?) ago when we were going down the nostalgia lane.
:) For what it is worth, I met him on IRC (freenode), in #ada.

~~~
ajxs
I'm still lurking in there from time to time! If you can get it without too
much trouble I'm sure there are a few people out there who will appreciate it!

------
DonHopkins
The Symbolics Lisp Machine could run Ada, of course.

And then there was the Rational/R1000s400, the first only and last "Ada-only"
Computer.

[http://datamuseum.dk/wiki/Rational/R1000s400](http://datamuseum.dk/wiki/Rational/R1000s400)

[https://en.wikipedia.org/wiki/Rational_R1000](https://en.wikipedia.org/wiki/Rational_R1000)

The R1000 was a workstation released in 1985 by Rational Software for the
design, documentation, implementation, and maintenance of large software
systems written using the Ada programming language. The R1000 featured an
extensive tool set, including:

\- an Ada-83-compatible program design language

\- an integrated development environment that doubled as an operating system
shell

\- automatic generation of design documentation

\- source-language debugging

\- interactive design-rule checking and semantic analysis

\- incremental compilation

\- configuration management and version control.

Excerpts from Articles Filed Under: Rational 1000

[http://www.somethinkodd.com/oddthinking/category/rat1000/](http://www.somethinkodd.com/oddthinking/category/rat1000/)

Rational 1000: A Time-Travelling Debugger with No Future

[http://www.somethinkodd.com/oddthinking/2006/03/25/rational-...](http://www.somethinkodd.com/oddthinking/2006/03/25/rational-1000-a-time-
travelling-debugger-with-no-future/)

------
peter_d_sherman
[https://sourceforge.net/projects/adaos/files/](https://sourceforge.net/projects/adaos/files/)

~~~
vips7L
Why is sourceforge's ui so bad? Why not display the files instead of expecting
me to download some random zip file?

~~~
tornato7
Sourceforge isn't a reputable website anymore. They have been known for
bundling spyware/crapware with their installers of open source software.

~~~
Twirrim
That was under previous owners. They've since been bought out by a company
that actually gives a damn. Unfortunately there's a good argument for too
little, too late. The damage to the brand's reputation is immense.

~~~
inferiorhuman
SF still has tons of ads and other really obnoxious UI choices. Take for
example:

[https://sourceforge.net/projects/pkgconfiglite/](https://sourceforge.net/projects/pkgconfiglite/)

There's so much crap on that page I couldn't even begin to care about. On the
top half of the page: downloads this week, share this, open source software,
business software, services, resources, sourceforge's twitter account,
sourceforge's facebook account, sourceforge's linkedin, sourceforge
newsletters, and of course a gigantic sourceforge banner.

If you go further: user reviews, recommended projects, top searches, other
useful business software, similar business software, more twitter links
unrelated to the project, related business categories.

SourceForge is a freaking dumpster fire even if they're no longer bundling
malware.

------
jecel
Any list of operating systems written in Ada should include Intel's first 32
bit OS iMAX:

[https://cs.uwaterloo.ca/~Brecht/courses/702/Possible-
Reading...](https://cs.uwaterloo.ca/~Brecht/courses/702/Possible-
Readings/oses/imax-multiprocessor-os-sosp-1981.pdf)

------
goofballlogic
Does anyone know if the author completed other projects in Ada (or another
language)? I'd be interested in reading some code as well as the specs.

------
sqldba
Is Ada still around?

~~~
coldtea
It never went anywhere, still used for what it was used...

~~~
kpU8efre7r
What? I just left a job in defense software that used Ada and it was a fairly
new program.

~~~
coldtea
So we agree.

It never went anywhere => ie. it never left.

Still used for what it was used => ie. the same kind of software (defense,
etc).

~~~
infradig
The expression is "never went away" then, as "never went anywhere" usually
means it dudded.

------
m3kw9
I was hoping they’d call it AdiOS.

