comp.lang.ada
 help / color / mirror / Atom feed
* Building a new OS using Ada
@ 2009-02-05  7:10 Cedric.Lannock
  2009-02-05  7:19 ` Ludovic Brenta
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Cedric.Lannock @ 2009-02-05  7:10 UTC (permalink / raw)


Hi all,

we had a discussion on building a new OS based on Minix3 quite a while
ago. I am still thinking about it.

When I made the suggestions to develop a new Ada OS based on Minix 3 I
had a couple of aims in mind. First of all I wanted to learn how Minix
3 works and how to build an operating system. Furthermore I wanted to
learn the Ada programming language in full detail. But when I am doing
this it should have an interesting outcome. My thought was, to build
an operating system that can work on any platform. This was the reason
why I suggested Minix 3 because the kernel is small enough for porting
it to many different devices. In the end it could be one for all.

The discussion about this project raised a lot of new aspects and I
was thinking about it quite a while. I try to get my thoughts clear
and describe a little bit more where I think such a project could lead
to.

The first thing I will do is to describe the latest developements in
computer science, give a description of a vision of a new OS, give a
short and of course incomplete overview of existing OS that could be
used a starting point.

So let me describe the latest developments in computer science from my
perspective. There are four main aspects I see currently:

1. More diverse equipment used to access the internet, especially
mobile devices.
2. Using a browser as the main platform for new applications.
3. Distributed computing.
4. Parellelism within a machine and between machines.

Currently there are a lot of new devices entering the market, e.g.
nettops, mobile phones, PDA's, etc. A lot of applications are build
around the browsers. These applications are build to highly
interoperate with each other. The applications on the machines work
strongly together and are highly work-sharing (division of labour). In
addition to this the work load is processed by two or more processors
in parallel and also on two or more machines in parallel.

My vision of a new OS would be to have a high reliable OS that can
work on any machine. Therefore a micro kernel architecture is
favourable. Because it is small, it can easily transferred to new
devices and because it is a micro kernel it is a good base for
reliablity.

Nowadays the internet is still regarded as computers which are
connected through the net to each other. But what about thinking it
vice versa? What about thinking of the internet as one big organism
where the cells of this organism are the devices comprising it. As in
a real organism there are different cells all with there own special
purpose but nethertheless belonging to one single organism.

We have a lot of examples for the macro organisms like Dorylus (driver
ant: http://en.wikipedia.org/wiki/Driver_ant,
http://www.amazon.com/Ants-Bert-H%C3%B6lldobler/dp/0674040759). Each
single individual has only a small brain with a very simple program
but hooking them together by exchanging pheromones when touching they
can make complex decision within their swarm. We could make it similar
when developing a new OS.

If we have a micro kernel OS for any machine the drivers for the
hardware would be important. If the drivers are no longer included in
the kernel then they can be loaded later. We could establish a service
where the kernel determines the hardware it is running on and then it
could query a server – like a domain name server – to get to know
where the appropriete driver could be found. Each machine with the
same hardware and driver available could be the server for another
machine which lacks this special driver. This way nobody would need to
worry about its device drivers for his/her hardware as long as a
driver is available somewhere on the net.

Having one OS for all machines it would be possible to distribute
tasks over all machines. As in the thinking of cells of an organism
each cell would contribute to the complete system and some organs and
in the end the complete organism would take the benefit for that work.

When it comes to the functions of the OS we could build small
components which could be connected in many different ways to each
other comprising solutions. These little components could be the genes
of the OS as they are to the cells of an organism. I think the Unix-
like OS have shown this concept at all when implementing a piping
mechanism. Maybe the new OS could enhance it by being able to take
more complex messages instead of simple streams. These little
functions could be like Cytosin, Guanin, Thymin and Adenin. Maybe we
need a little bit more than that but we could think about a functions
which operate the same way. The can only be interconnected in a
special way but then forming always something new. In this sense it is
a little bit like LEGO. There a certain amount of bricks which can be
connected only in special ways. But the things build by them could be
numerous.

Because a lot of applications are build into browsers the new OS could
offer a good browser technology making it easy to developers to build
applications for the new OS because they could take to already
available software directly to the new platform.

Consequently thinking these ideas further could lead to a new OS which
might be better than the one's we already have.

When I read all the articles to the discussion mentioned above I was
looking for other places to start. I searched the web and came across
a lot of other micro kernel OS, like GNU Hurd,QNX, VxWorks, FreerRTOS
or eCos. As mentioned by some listers we could take the best of all of
these and use it as a basis for our own new OS. It could be favourable
to examine these and decide which one to start with and what features
of the other OSes to integrate.

To start with an existing micro kernel OS and reworking it could be a
sort of an evolutionary process. In the end we could have a mutated
Minix 3 or whatever OS was the starting point.

Now I would like to switch my writing style to get back to the
discussion we had before concerning some issues and concerns.

--- Why do you want to reinvent the wheel by developing another POSIX
OS? I would probable include a POSIX API in the feature list. ---
I think POSIX is a widespread standard within OSes and might be
helpful to port other applications to the new OS.

--- GNAT was not designed to build stand-alone bootable code. How to
build it on different devices? ---
As far as I understood the gcc compiler it should be able to build Ada
programs also. As gcc runs on a lot of machines it might help to build
Ada programs for a lot of platforms.


--- What's wrong with other Oses like GNU, Microsoft or Apple? ---
Everything is alright with these. I am thinking of something new. A
tool where I can get to know modern technology and have a thing is
interesting enough to work on for a while.

--- Most people use GRUB boot loader which is written in C. That kind
defects the concept of 100% Ada OS. ---
If there are components which will support the overall goals of the
project it is IMHO not necessary to do it without it.

--- Do you want to target embedded systems? ---
Yes, of course. As new devices appear on the market all are hooked to
the internet. So the new OS should be able to run on them.

Next steps could be:

1. Discuss the vision of a new OS
2. Agree upon target and goals
3. Evaluate existing OS (technology and licnse models)
4. Decide on starting point
5. Develop a feature list and decide on it

What do you think?

Best regards

Cedric Lannock


PS. Maybe we could discuss it Sunday on FOSDEM. Will anybody be there?

PSS. Due to a lot of spam I had to shut down the mentioned account.



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Building a new OS using Ada
  2009-02-05  7:10 Building a new OS using Ada Cedric.Lannock
@ 2009-02-05  7:19 ` Ludovic Brenta
  2009-02-05 10:17   ` xavier grave
  2009-02-05 15:55   ` andrew
  2009-02-08 12:39 ` Ivan Levashew
  2009-02-11 16:13 ` Hibou57 (Yannick Duchêne)
  2 siblings, 2 replies; 12+ messages in thread
From: Ludovic Brenta @ 2009-02-05  7:19 UTC (permalink / raw)


Cedric.Lannock wrote:
> PS. Maybe we could discuss it Sunday on FOSDEM. Will anybody be there?

Good idea. See you at the Ada DevRoom. Xavier Grave will be there and
probably very interested in this discussion.

--
Ludovic Brenta.



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Building a new OS using Ada
  2009-02-05  7:19 ` Ludovic Brenta
@ 2009-02-05 10:17   ` xavier grave
  2009-02-05 14:53     ` Ludovic Brenta
  2009-02-05 15:55   ` andrew
  1 sibling, 1 reply; 12+ messages in thread
From: xavier grave @ 2009-02-05 10:17 UTC (permalink / raw)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Ludovic Brenta a �crit :
> Cedric.Lannock wrote:
>> PS. Maybe we could discuss it Sunday on FOSDEM. Will anybody be there?
> 
> Good idea. See you at the Ada DevRoom. Xavier Grave will be there and
> probably very interested in this discussion.

Yes indeed :)

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkmKvNcACgkQVIZi0A5BZF4qKgCcCMMfRY3QtMRVxLj1nrn1fMt5
EysAoJtSHLzlAvLeTWyfqJkxnOsayNIg
=9yon
-----END PGP SIGNATURE-----



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Building a new OS using Ada
  2009-02-05 10:17   ` xavier grave
@ 2009-02-05 14:53     ` Ludovic Brenta
  0 siblings, 0 replies; 12+ messages in thread
From: Ludovic Brenta @ 2009-02-05 14:53 UTC (permalink / raw)


> Ludovic Brenta a écrit :
> > Cedric.Lannock wrote:
> >> PS. Maybe we could discuss it Sunday on FOSDEM. Will anybody be there?
>
> > Good idea. See you at the Ada DevRoom. Xavier Grave will be there and
> > probably very interested in this discussion.
>
> Yes indeed :)

That reminds me about the Saturday evening dinner we're organizing for
Adaists. If you would like to attend, please tell me before Saturday
14:00 CET (by email or in person when we meet at FOSDEM). So far 14
persons have registered, among whom Xavier and myself.

--
Ludovic Brenta.



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Building a new OS using Ada
  2009-02-05  7:19 ` Ludovic Brenta
  2009-02-05 10:17   ` xavier grave
@ 2009-02-05 15:55   ` andrew
  2009-02-05 16:17     ` FOSDEM (Was: Building a new OS using Ada) Jacob Sparre Andersen
  2009-02-05 16:17     ` Building a new OS using Ada Georg Bauhaus
  1 sibling, 2 replies; 12+ messages in thread
From: andrew @ 2009-02-05 15:55 UTC (permalink / raw)


On Feb 5, 1:19 am, Ludovic Brenta <ludo...@ludovic-brenta.org> wrote:
> Cedric.Lannock wrote:
> > PS. Maybe we could discuss it Sunday on FOSDEM. Will anybody be there?
>
> Good idea. See you at the Ada DevRoom. Xavier Grave will be there and
> probably very interested in this discussion.
>
> --
> Ludovic Brenta.

Where is the DevRoom?  Is this a website or discussion list?  What is
FOSDEM?



^ permalink raw reply	[flat|nested] 12+ messages in thread

* FOSDEM (Was: Building a new OS using Ada)
  2009-02-05 15:55   ` andrew
@ 2009-02-05 16:17     ` Jacob Sparre Andersen
  2009-02-05 16:17     ` Building a new OS using Ada Georg Bauhaus
  1 sibling, 0 replies; 12+ messages in thread
From: Jacob Sparre Andersen @ 2009-02-05 16:17 UTC (permalink / raw)


Andrew wrote:

> Where is the DevRoom?  Is this a website or discussion list?  What
> is FOSDEM?

FOSDEM is a conference (which has been announced a few times here on
c.l.a).  You can read about it on <http://fosdem.org/2009/>.

The Ada DevRoom is the Ada track of the conference.  You can read
about it on <http://fosdem.org/2009/schedule/tracks/ada>.

Greetings,

Jacob (who's going to Bruxelles this weekend)
-- 
Those who can't laugh at themselves leave the job to others.






^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Building a new OS using Ada
  2009-02-05 15:55   ` andrew
  2009-02-05 16:17     ` FOSDEM (Was: Building a new OS using Ada) Jacob Sparre Andersen
@ 2009-02-05 16:17     ` Georg Bauhaus
  1 sibling, 0 replies; 12+ messages in thread
From: Georg Bauhaus @ 2009-02-05 16:17 UTC (permalink / raw)


andrew schrieb:
> On Feb 5, 1:19 am, Ludovic Brenta <ludo...@ludovic-brenta.org> wrote:
>> Cedric.Lannock wrote:
>>> PS. Maybe we could discuss it Sunday on FOSDEM. Will anybody be there?
>> Good idea. See you at the Ada DevRoom. Xavier Grave will be there and
>> probably very interested in this discussion.
>>
>> --
>> Ludovic Brenta.
> 
> Where is the DevRoom?  Is this a website or discussion list?  What is
> FOSDEM?

http://www.fosdem.org

http://www.fosdem.org/2009/schedule/devrooms/ada



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Building a new OS using Ada
  2009-02-05  7:10 Building a new OS using Ada Cedric.Lannock
  2009-02-05  7:19 ` Ludovic Brenta
@ 2009-02-08 12:39 ` Ivan Levashew
  2009-02-12  5:50   ` Cedric Lannock
  2009-02-11 16:13 ` Hibou57 (Yannick Duchêne)
  2 siblings, 1 reply; 12+ messages in thread
From: Ivan Levashew @ 2009-02-08 12:39 UTC (permalink / raw)


Cedric Lannock wrote:
> 
> The first thing I will do is to describe the latest developements in
> computer science, give a description of a vision of a new OS, give a
> short and of course incomplete overview of existing OS that could be
> used a starting point.

Personally, I'd like incremental computation to be incorporated into 
everyday programs.

http://www.cs.cornell.edu/info/people/tt/research/incremental-computation/derivation.html

Most of the computations could be performed in an incremental manner. 
Rewriting compilers and other tools in an incremental programming 
language might significantly boost performance (at cost of space, of 
course, but it's a good deal).

> These applications are build to highly interoperate with each other.
What do you mean? I haven't noticed a boost of interoperability. It's 
still a heavy task, as it was 10 years ago.

> Each single individual has only a small brain with a very simple
> program but hooking them together by exchanging pheromones when
> touching they can make complex decision within their swarm. We could
> make it similar when developing a new OS.
As a common rule, a trust is a vulnerability.

The only exclusion I can see is F2F darknets, where every peer owner 
knows owners of neighbour peers (and this isn't necessarily transitive).

You could experiment with F2F at the moment. No need to wait a new OS.

As RIAA shuts down torrent trackers and dc++ hubs, people are more and 
more interested in preserving their life style. F2F is the answer. 
Finally, there is no server. Just people's computers and nothing else.

You'd have hard time describing f2f benefits for those who haven't used 
p2p, but p2p is nowadays not uncommon.

> I think the Unix- like OS have shown this concept at all when
> implementing a piping mechanism. Maybe the new OS could enhance it by
> being able to take more complex messages instead of simple streams.

My wishlist:
1. Rowsets
2. Audio/Video streams
3. Loosy structures. Virtually every scripting language have them:
numbers, strings, dictionaries, lists. They are definitelly not 
attributes of strong typing, however, they form a commodity basis. A 
kind of CLD. In abscense of these structures, strings are used, which is 
much worse. They are present both in Core Foundation and Qt, but they 
are not interoperable enough.
XML is probably an overhead. I can hardly remember a programming 
environment with XML nodes serving as data holders in runtime.

> Because a lot of applications are build into browsers the new OS could
> offer a good browser technology making it easy to developers to build
> applications for the new OS because they could take to already
> available software directly to the new platform.
A constantly increasing amount of work.

> --- GNAT was not designed to build stand-alone bootable code. How to
> build it on different devices? ---
> As far as I understood the gcc compiler it should be able to build Ada
> programs also. As gcc runs on a lot of machines it might help to build
> Ada programs for a lot of platforms.
GCC intermediate interface isn't thick enough to provide all the needed 
information about a target platform. Porting GCC isn't enough to port 
GNAT. GNAT requires personal attention.

Maybe someday GCC intermediate interface will be thick enough for Ada 
and Java (Java is also in need of multitasking features). At the moment, 
the extra work is being repeated twice, for GNAT and GCJ (and maybe others).

-- 
If you want to get to the top, you have to start at the bottom



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Building a new OS using Ada
  2009-02-05  7:10 Building a new OS using Ada Cedric.Lannock
  2009-02-05  7:19 ` Ludovic Brenta
  2009-02-08 12:39 ` Ivan Levashew
@ 2009-02-11 16:13 ` Hibou57 (Yannick Duchêne)
  2009-02-12  0:16   ` anon
  2 siblings, 1 reply; 12+ messages in thread
From: Hibou57 (Yannick Duchêne) @ 2009-02-11 16:13 UTC (permalink / raw)


On 5 fév, 08:10, "Cedric.Lannock" <Cedric.Lann...@gmx.net> wrote:
> Because a lot of applications are build into browsers the new OS could
> offer a good browser technology making it easy to developers to build
> applications for the new OS because they could take to already
> available software directly to the new platform.

I deeply agree with this. The browser aspect would be even more
important than the POSIX aspect (in respect to end user). POSIX
services for core computation and browser like services for the UI.

This could indeed ends up in a lighweight OS, while offering all the
major needs.

A question is till pending : which audiance are you targeting ?
Typical nowadays users or computation users ? If you wish to target
the second kind of users, then POSIX + browser services is clearly
enough... but if you whish to target most of nowadays users, you will
face a lot of work with the heavy and silly requirements of
multimédia.

Have a nice time

Y.D.



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Building a new OS using Ada
  2009-02-11 16:13 ` Hibou57 (Yannick Duchêne)
@ 2009-02-12  0:16   ` anon
  0 siblings, 0 replies; 12+ messages in thread
From: anon @ 2009-02-12  0:16 UTC (permalink / raw)


If you want to check out a Browser app type of OS try looking into the 
dead OS SUN project called JAVAOS. 

In <a669c428-4606-409f-81fb-710adbfbeb24@h5g2000yqh.googlegroups.com>, =?ISO-8859-1?Q?Hibou57_=28Yannick_Duch=EAne=29?= <yannick_duchene@yahoo.fr> writes:
>On 5 f=E9v, 08:10, "Cedric.Lannock" <Cedric.Lann...@gmx.net> wrote:
>> Because a lot of applications are build into browsers the new OS could
>> offer a good browser technology making it easy to developers to build
>> applications for the new OS because they could take to already
>> available software directly to the new platform.
>
>I deeply agree with this. The browser aspect would be even more
>important than the POSIX aspect (in respect to end user). POSIX
>services for core computation and browser like services for the UI.
>
>This could indeed ends up in a lighweight OS, while offering all the
>major needs.
>
>A question is till pending : which audiance are you targeting ?
>Typical nowadays users or computation users ? If you wish to target
>the second kind of users, then POSIX + browser services is clearly
>enough... but if you whish to target most of nowadays users, you will
>face a lot of work with the heavy and silly requirements of
>multim=E9dia.
>
>Have a nice time
>
>Y.D.




^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Building a new OS using Ada
  2009-02-08 12:39 ` Ivan Levashew
@ 2009-02-12  5:50   ` Cedric Lannock
  2009-02-12  9:50     ` Hibou57 (Yannick Duchêne)
  0 siblings, 1 reply; 12+ messages in thread
From: Cedric Lannock @ 2009-02-12  5:50 UTC (permalink / raw)


> > Each single individual has only a small brain with a very simple
> > program but hooking them together by exchanging pheromones when
> > touching they can make complex decision within their swarm. We could
> > make it similar when developing a new OS.
>
> As a common rule, a trust is a vulnerability.
>
> The only exclusion I can see is F2F darknets, where every peer owner
> knows owners of neighbour peers (and this isn't necessarily transitive).
>
> You could experiment with F2F at the moment. No need to wait a new OS.
>
> As RIAA shuts down torrent trackers and dc++ hubs, people are more and
> more interested in preserving their life style. F2F is the answer.
> Finally, there is no server. Just people's computers and nothing else.
>
> You'd have hard time describing f2f benefits for those who haven't used
> p2p, but p2p is nowadays not uncommon.
>

f2f is a concept that looks at different computers hooked to a
network. With regard to system theory (http://en.wikipedia.org/wiki/
Systems_theory) this concept could also be used inside the OS.
If on a computer only the OS is installed, the OS could look for
components needed to fulfill a certain task on other computers it
knows. These components could be used if trusted.

But there is another aspect in this context: If the components of the
OS or other Apps are stored distributedly somewhere in the net then
the hole systems relies on the connection to this computers. To handle
this the OS could store a list of computers of which it knows that a
certain component is available there. When a certain component is
needed the OS could query the computers in its list. Each time it
queries this computer it could add a success counter to the computers
address in its list. If the computer is not available it tracks it by
reducing the counter. If the first computer is not available it tries
the next in its list. Doing this it has a list of trusted and
available computers I can rely on. Furthermore the computer cells
within this internet organism could query the lists of available and
trusted computers and if the computer queried is trusted it could copy
the list for its own work.

Having such a concept in place the installation of an application
would result in building lists of computers for the components needed.

But there should be the possibility to store some or all components
locally in case the internet is not available. The user should be
allowed to choose how he/she would like to work.

But how to distribute a new OS to the users?
As the kernel could be comprised of only a few thousend lines of code
the OS is small enough to be distributed a worm. It could be
DISTRIBUTED as one but not BEHaVE as one. A littel GUI could pop up
and ask the user if it could be installed in parallel to the existing
OS. If the user agrees the current setup is stored and a boot loader
is installed making it possible to run the new OS out of the existing
partition. This boot loader should offer the opportunity to uninstall
the OS at any time and restore the formly setup completly.

Such a thing is only possible if the OS and all applications can be
stored distributed and if there is no need to install everything a one
machine.

Cedric



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Building a new OS using Ada
  2009-02-12  5:50   ` Cedric Lannock
@ 2009-02-12  9:50     ` Hibou57 (Yannick Duchêne)
  0 siblings, 0 replies; 12+ messages in thread
From: Hibou57 (Yannick Duchêne) @ 2009-02-12  9:50 UTC (permalink / raw)


On 12 fév, 06:50, Cedric Lannock <Cedric.Lann...@gmx.net> wrote:
> But there is another aspect in this context: If the components of the
> OS or other Apps are stored distributedly somewhere in the net then
> the hole systems relies on the connection to this computers. To handle
> this the OS could store a list of computers of which it knows that a
> certain component is available there. [...]

Looks like something working like a DNS server.

But what about the connection itself ? There will be different
flavours of the kernel with different pre-integrated drivers ?



^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2009-02-12  9:50 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-02-05  7:10 Building a new OS using Ada Cedric.Lannock
2009-02-05  7:19 ` Ludovic Brenta
2009-02-05 10:17   ` xavier grave
2009-02-05 14:53     ` Ludovic Brenta
2009-02-05 15:55   ` andrew
2009-02-05 16:17     ` FOSDEM (Was: Building a new OS using Ada) Jacob Sparre Andersen
2009-02-05 16:17     ` Building a new OS using Ada Georg Bauhaus
2009-02-08 12:39 ` Ivan Levashew
2009-02-12  5:50   ` Cedric Lannock
2009-02-12  9:50     ` Hibou57 (Yannick Duchêne)
2009-02-11 16:13 ` Hibou57 (Yannick Duchêne)
2009-02-12  0:16   ` anon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox