Lovelace
A free Ada-based Operating System



This project is an Open Source GPL project : feel free to join us !
We are looking for Ada and L4 or microkernel developers.
People who just want to help are welcome too !


What's new ?

2008-01-01 sr Full rewrite of this web page in pure HTML code. The previous page was really unmaintanable due to the previous page composer used. As a side effect, the page weight has been divided by 4. Links added to Lovelace source code, Ada France Monotone Server and AdaOs mailing list. Update Frederic Boyer email. Update AdaOs mailing list information. Reformat emails table. Shift image format to PNG. Change Adacore link. Test all links.
2007-03-22 sr Page is now directly available on http://lovelace.fr.
2006-01-24 fb Xavier works on interruption, memory and task implementation
2006-01-24 fb Frederic works on the design and implementation of the Lovelace File System
2006-01-15 fb Frederic and Xavier manage to boot a simple Ada code on top of a L4 micro-kernel in Bochs
2006-01-09 fb Project started

Presentation

Lovelace is a project to make a complete, secure, real-time operating system written in Ada 2005.

The main goal is to provide a full O.S. with build-in Ada task semantic, full Ada annexes compliant, and with a POSIX 1003.5 API.

Why Ada ?

We believe that Ada 2005 is the best general purpose programming language. Never a complete operating has been written in this language.

In the past, some operating system has been written in ada, but there are death now :
Now there are a few embedded real time O.S. written in Ada :
But those OS are not what we want to do. They haven't got a filesystem, they often haven't got a network stack nor a shell. They are not a complete user-final operating system. And that what we want to do.

We also choose a L4 pistachio microkernel because we didn't want to write everything from scratch, and L4 is a cool microkernel, available on many platforms, and well documented. L4 is not really Ada compliant by now (Development environment is written in C or C++) but it's easy to rewrite Ada libraries to support L4. Write Ada packages to efficiently support L4 is our primary work. Note this library could be re-used for other Ada projects on top of L4. Traditional L4 operating system implementations use a pre-compiler in order to make stub and skeleton between servers (to make IPC).

Ada provide an specialized annex to make remote calls between programs called "distributed annex or annex E". Lovelace servers use this mechanism to dialog together. Lovelace will probably use Polyorb (because it's support annexe E and CORBA) as standard middleware. The main advantage is that each servers could have an IDL interface and so, each programming language with a CORBA binding will be able to use/program Lovelace without any binding.

An other advantage is that program using Lovelace API can be ran from an other computer or partition over the network.
 
Architecture

architecture

Note that every servers (HD, Hard Disk driver, FD floppy disk driver, Tty console driver, etc.) run in the user level space.

Other operating systems (like Linux) can run on L4 in the same time than Lovelace.
 
Subprojects
 
L4 Lib Write a L4 lib with Ada 2005 in order to do system calls, implement protocols.
Lovelace run-time Port the GNAT run-time on top of L4 in order to use GNAT to write L4 servers with full tasks semantic implementation.
Lovelace file system Write the lovelace file server, in order to create, delete, opening file. Use ext2. Support floppy disk and IDE serial ATA hard disk in a first stage.
Lovelace network Write Ethernet and various protocol stacks (as TCP/IP) for Lovelace.
Lovelace security Define a global security policy for Lovelace and implement it in other subprojects.
Lovelace POSIX Implement the POSIX 1003.5.
Lovelace C Lib Port the glibc on top of L4.
Lovelace L4 microkernel Project to re-implement L4 in Ada in order to support several platforms and be full L4.

Security

The main Goal of this project is to made a very secure Unix like operating system, like Trusted (Unix) or Linux SE.

Components

Lovelace use the following components by now for its development :
Links

Lovelace Source Code
Ada France Monotone Server
L4 pistachio microkernel
GRUB
Bochs
QEmu
Ada France
Ada Europe
The home page for Ada brave developers
MaRTE OS
Adacore

Mainling list

adaos@lists.lovelace.fr

To subscribe, send a message to sympa@lists.lovelace.fr with with 'subscribe adaos your_surname your_name' in the subject.
To subscribe, send a message to sympa@lists.lovelace.fr with with 'unsubscribe adaos' in the subject.

lovelace.fr mailing list manager : lists.lovelace.fr

Contacts and people

If you have any question, suggestion about this project, please feel free to contact us.

Frédéric Boyer Project manager, file system, webmaster and documentation
Xavier Grave Project manager, kernel core and low interface developer
Stéphane Rivière Domain lovelace.fr owner, hosts web site, mailing-list manager and webmaster
Jean-Pierre Rosen Follow the project, give us excellent advices.