Applications with a user interface
This is the users interface with the system. It is a command line interface running in text mode graphics. The user can start and stop applications from the CLI. It also provides some commands for dealing with files.
The debugger in the Maverick OS can run in the modes described below. The different modes are provided to make debugging both easy and reliable. The debugger itself can be started by a configurable keypress sequence or by an int3 instruction in the target code. When it is started it detects which kind of code it is debugging and selects the appropiate debugging mode. The debugger has its own restricted address space and provides all of the low level functions it needs, so that it can completely take over the system. These are the available debugging modes:
When the target code is part of the OS
there is no way for the debugger to know if the functions provided by the Maverick API
are reliable. Therefore the debugger will only use its own functions when operating in this mode. The user can declare additional functions safe, and then use them in this debugging mode. The sturctures which the operating system were using when running can be used as reference when following calls and etc. But they should not be trusted as they could have been overwritten.
When the target code is an application the debugger will use the Maverick API
just like any normal application. The rest of the system is also still running, and there is access to external hardware. Only the target application and possibly its child threads are freezed.
The user can switch to this mode when debugging. The target will run like normal, but the debugger collect information from it, such as API calls and etc.
This is probably going to be small set of applications which will be able to do file copying, renaming, deleting, create subdirectories and similar things.
An application which can be used to configure the system. It is used to manage modules and drivers. Additionally it is used to configure the modules and drivers.
An application which allow the user (with restrictions) to open or close tasks/processes/threads.
A text editor with the basic functions like copying.