This page is "http://www.cs.tut.fi/~albert/BOAR/intro.html".

BOREDOM

The basic makeup of the OS

BOAR is a multi-user pre-emptive multitasking operating system with installable and removable shared dynamic re-entrant libraries and device drivers.

The heart of the BOAR operating system is the exec.library, which provides a pre-emptive multitasking environment for simple threads of execution called exec Tasks. Tasks are dispatched according to a prioritised queue with round-robin between the tasks with the same priority. Adjustable time-slice defaults to ten periods of 10 ms. If no task is ready to run, the processor will wait for an interrupt (and a waking task), thus relieving the processor bus for other activities and reducing the power consumption of the system.

exec.library is a dynamic, shared, re-entrant library, like all other libraries in the system. This means that there are no static addresses for application programs, and that all tasks can use the same library functions, and use them simultaneously. The only fixed address is 4, which holds a pointer to the exec library structure. The value of this pointer is called a library base. Calls to the library functions are performed using the library base and the right offset value for a specific call.

A library structure has three parts: function call vectors (with negative offsets from the library base), a standard library structure (which all libraries have in common) and a possible extension defined and used by the library itself.

Everything you absolutely need for application development can be found from the exec.library. However, it does not give you very easy input and output nor the possibility to dynamically load new code to the system. (Because BOAR does not have an MMU (Memory Management Unit), all code must be either location-independent or it must be relocated.)

Another library is provided to implement these tasks. With dos.library you can easily load new code, create new processes, easily operate on input and output streams, handle files and directories. A process is an extension to the exec task and provides fields that are needed when calling dos.library functions. Only some of the dos.library routines can be safely called from a task.

In BOAR we use ISO Latin-1 character set. Text files have lines separated with a single newline character ('\n'). EOF is no special code inside the files, EOF is a condition that is detected and acted upon by the handler that is handling that particular stream/file. The aux-handler interprets ^\ (ascii code 28) as an EOF when the handler is used in console (cooked/editing) mode. In raw (cbreak) mode no interpretation is done by the handler, all codes are passed through as-is.


exec.library

	,--------------------------------------------.
	| Tasks                                      |
	|--------------------------------------------|------------------.
	| Signals    Lists                          <=> Interrupts      |
	|--------------------------------------------|------------------'
	| Memory                                     |
	|--------------.--------------.--------------|
	| Semaphores  <=> Libraries  <=> MessagePorts|
	`--------------|              |--------------|
	               |  Devices    <=> Messages    |
	               `--------------|--------------|
	                              |  Device I/O  |
	                              `--------------'

serial.device


dos.library

aux-handler

ram-handler

rom-handler


Shell


Xilinx tools

xilbitcat
Concatenates Xact bit-format configuration files.
xilscript
Script file interpreter
xtfpart
XNF file partition software