Contemporary user programs are mostly run on computers running an operating system. We cannot rely on the operating system when writing programs that target bare metal. Assembly languages also lack a standard library that is usually present in most higher-level languages and contains a large portion of commonly used functions.
In our thesis, we designed an execution environment for the SIC/XE computer. It allows easier programming and defines some conventions for better interoperability between programs. It offers some functionality that would otherwise be part of an operating system or standard library. It provides the programmer a shared standard library with some of the most commonly used functions. The environment offers functions for working with the filesystem, printing text to the screen and some lower-level system functions. It also allows dynamic loading and execution of programs.
|