-=-=- The AVIOS home page -=-=-

Last update: 3rd April 1998



The OS

AVIOS stands for A VIrtual Operating System and version 1.5.1 is currently available from ftp.ccs.neu.edu. and also ftp.demon.co.uk The idea behind this project is to have a networked system that can run multiple processes and be all things to all men. For example you could program it to be a talker or a bulletin board or even a mud but this has been done before (with things such as MudOS). The difference with Avios is that it does not run a single program (like MudOS) but runs many as separate processes even though it all appears as one process to Unix (Avios only runs on Unix) and so depending on which selection a given user makes when he connects he could use almost any type of networked (text based) application you care to write.


AviosPL

AviosPL is the name I've given to the language that is used to program Avios. It is a cross between Basic, Perl, C , shell script and Tcl with a bit of my own ideas thrown in and it is a procedural language. I'm not a great fan of object orientation since as far as I can see it really doesn't add much to a programming enviroment (though no doubt others would disagree) and more to the point an OO language is a damn site harder to write an interpreter for than a procedural one :)

I'll be the first to admit that AviosPL isn't going to break new ground as far as programming languages are concerned but it hopefully will be an easy language for people to learn and hence make coding server applications easier.

Below is a summary of most of the features of the language and the OS as a whole:
- Mappings (associative arrays) including reverse lookups on value.
- List processing (head, tail, member, elements etc)
- Typeless variables
- Process interrupts including timer interrupts
- Shared variables between processes including atomic test and set
     operations
- Process message queues
- Process forking
- Processes can exec an AviosPL program file *or* embedded code to
     create a new process
- Processes can control other processes including halting and killing them.
- File and directory creation and access commands with wildcard matches,
     chmod functionality and the ability to stat filesystem entries.
- ANSI colour and other terminal control functionality.
- All the standard language flow control commands you need such as
     while, for, foreach, do-until etc
- Second and microsecond timers
- Full maths expression parsing including bitwise operators.

For those interested click here for an example AviosPL program.