APPLICATIONS - LeFreq/Singularity GitHub Wiki

What are applications in SingularityOS? If EverythingIsAnObject, then all apps are objects. But all objects are also apps, so we have a cool little system of making sure every useful thing we can do has a NAME, making it re-usable and self-documenting.

First, sharply dilineate between data from the user's perspective and the applications that will host, process, store, and share that data. This latter is built up out of OBJECTS.

Object primitives for I/O can be dilineated between data for the user and meta-data for the user.

SingularityOS, by design, does not dictate the method of communication to the user. That is, a graphical windowing display is not assumed. The object administrators can build complete text-only systems (that say fit in 1Mb) or elaborate graphical windowing systems.

For the sake of easier re-use, on-screen application objects can be inspected to identify the Object in use. This inspection goes as deep as the user desires: there are no proprietary applications.

So applications start at object primitives, like keyboard(or other)_input_stream, text(or other)_output_stream, text_windows_output_stream, hold_data (starting at something like a line or sentence, like a buffer), function_object (starting at operations higher than basic arithmetic).

This might be enough to start building complete computer applications. So let's upgrade the classic "hello world" app into one that except interaction with the user, an echo program that displays what you type.

The OS can assume that there is an output device (standard out) that accept a stream of text (ASCII-type) characters. Everything else must be included in the object and the higher-level object delegating tasks to lower level objects.

SOS HelloWorld(KeybIn,):


ScreenSupervisor():

  operator <<(

See also:
⚠️ **GitHub.com Fallback** ⚠️