[cap-talk] Backwater (was: Language-based OS domain separation)

Matej Kosik kosik at fiit.stuba.sk
Tue Jun 19 19:58:30 EDT 2007


Marc Stiegler wrote:
> Jonathan said:
> 
>> Yes. One project in particular that is doing some very interesting work
>> is the Singularity project at Microsoft. They don't quite have a domain
>> separation story that is right, but they have done some work that
>> demonstrates a sound foundation for building one.
> 
> 
>>From what I have heard, it sounds like the Singularity project folks
> threw out the simplicity as their first step in development. Of
> course, once you throw the simplicity away, you can never get it back,
> and moreover, things that need simplicity as a foundation (like
> security) can never be right.
> 
> What I find far more interesting is the Backwater work by our own
> Matej Kosik using Pict as the programming language. I just got back
> from a 2-week vacation, on which the only technical material I took
> with me was the Pict tutorial and the Backwater report (at
> http://altair.dcs.elf.stuba.sk:60001/mediawiki/index.php/Backwater).
> 
> As nearly as I can tell, Matej has more of a securely-cooperative
> operating system in fewer lines of code than I have ever seen before.
> Ever. Even KeyKos is a clumsy oversized behemoth compared to this.
> And yes, that is including the runtime support for the language. The
> only gotcha that I see (one that Jonathan has already identified as a
> significant issue with language-based approaches, and one there's been
> a lot of talk about here lately) is the resource management.
> 
> Anyway, Jonathan, I'd be intrigued by your opinion of Backwater, if
> you find yourself suddenly with time on your hands and a sudden mad
> desire to learn an actors-style language (pict).
> 
> If I myself ever get back on schedule with my currently
> hopelessly-late project, I plan to spend some time playing with
> Backwater myself (if Matej will help me, that is :-)

Gladly.

If anyone wanted to install (the original, unmodified) Pict it is available also as a Debian package from my repository
http://altair.dcs.elf.stuba.sk:60001/mediawiki/index.php/Debian_GNU/Linux_Packages

as follows:

	apt-get install pict

The original source code for Linux is not compilable (last time I checked). I needed working version of the Pict compiler when I was reading the document and wanted to gain some practical experience. The Debian package brings also a manual page. The source code of the Debian package

	apt-get source pict

contains also source code of all the documents (those LaTeX source codes are not available elsewhere). This is all good because there are (small) errors and they can be corrected.

> Since I seem to
> have gotten myself into the business of doing performance benchmarks
> (since doing Emily, so we'd have a high-performance language in the
> object-cap family), I'm thinking of comparing benchmarks in Backwater
> against benchmarks in Windows and Linux.
> 
> As an actors language, it seems to me that pict might present some
> interesting opportunities to exploit multicore processors. Matej, I
> presume that Backwater does not currently have any support for a
> multicore, right??
>
> Any clue how difficult it might be to put some
> primitive multicore functionality into it?

This is correct.

<my first guess>
The support for multiple cores could be perhaps added as follows:
- ensure thread-safety of the Pict runtime (this will decrease performance and readability)
- create as many hardware threads as you have cores (this most probably will increase performance)
(it would not impact the semantics of the language and the code written in Pict)
- if possible, enhance (with respect to multiple available CPU cores) the garbage collector.

To some degree there may be gains in efficiency.
</my first guess>

There are also different options (with different properties).
-- 
Matej Kosik

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 252 bytes
Desc: OpenPGP digital signature
Url : http://www.eros-os.org/pipermail/cap-talk/attachments/20070620/9524b627/attachment.bin 


More information about the cap-talk mailing list