-=-=- 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.