Maverick Application Interface
The Maverick API provide services for applications, such as file handling, communication i/o, basic user interface, keyboard input etc..
How It Works
When the operating system receives a request to start a certain application, it first validates the request. Then it allocate memory for the application code, additional codesegments and datasegments, stacks, task state data. Then it creates the data structures which contain data about the tasks runtime enviroment, such a registers values and paging directory (if paging is enabled).
By default the only registers that will be available to a newly started task, is its own codesegment (execute and readable, not writable), a stack, a datasegment and the service calls to the Message Server.
If an application file contain additional codesegments, and datasegments, these will also be available when execution is transferred to the task for the first time. The segments will be mounted as defined in the application file header, that is codesegments can be mounted executable and also (optional) readable. Datasegments can be mounted readable and also (optional) writable).
If the task then want to write on the screen it has to request a video buffer, for storage i/o it has to request a storage buffer. The same goes for communication i/o, keyboard input, control input ect..
List of functions provided by the system
Listed below are the groups of functions provided by the system in version 0.1 of the Maverick Operating System. Click on the function name to see more specific details.
List of system functions
|Basic User Interface
||This group of services provide common functions used by the running user interfaces. That is functions which are common to both text, graphic, and remote interfaces. The list of function include Login() and Logout().
||The Communication I/O group contain functions to Open and Close connections, Send and Receive packets.
||The Control Services allow applications to receive control input from fx. a mouse.
||The keyboard services allow applications to read keyboard status, receive character input, wait until character input and such.
||The functions in the Memory Management group are used to allocate and deallocate memory to the task/thread. More priviledge functions, such as 'enable/disable paging' and 'free physical memory' are available, but with security measures.
||Basic functions which start the Package Manager so it can install, deinstall or update software packages.
||The storage I/O services are used to get and store data on devices in the system. These devices can be harddrives, ram drives, cd-rom drives, floppy-drives, cd-recorders, tape-streamers etc.
||The system management services are most priviledge functions which allow the system to enable/disable sercurity.
||Through the Task Management functions it is possible to start new tasks or create a new thread from the existing task.
||The timer services allow applications to specify a timeout, at which the shall be reactivated again. This may be usefull when waiting for data.