Advanced Computing Environment
brix-os project page
Why a new language?
Go read the about page so you have a basic idea of the operating system.
BRiX will not use hardware to isolate processes and all threads execute without user privileges. The user interface component allows users to login, renders an interface for them to access their data and handles job scheduling all without threads knowing what user owns them. The contact service provides widgets that may be added to the user interface to display a list of contacts or information about a specific contact. When one of these widgets is viewed the UI passes the user name to the contact service and it renders the widget without the container code ever seeing any contact details. Services may provide restrictedinterfaces that query the current user from the UI and allow code to query data but the code will not compile without authorization from the user.
This not only requires a language with compile and runtime checks but also one that prompts the user before compiling code that makes use of restricted features. The user should be able to download, compile and execute code from untrusted sources without worry of it comprimising their system or accessing their data. Users may place their trust in specific code repositories and allow all packages to be compiled without prompting to use restricted features, while the paranoid can manually approve each restricted package. The IDE can be used to jump to each restricted section of code which should be well commented.
The language also keeps track of each binary it produces and loads them into memory when needed. Code must have references to access files which prevents binaries from being tampered with since Tetra doesn't make them available to anyone. It can also track APIs across modules and detect breakage before updated modules are placed in the binary pool. Tight integration between the IDE, repository, package manager, compiler and operating system provide a cleaner experience and increased security.
Tetra must be designed to satisfy a wide range of people and attempts to do so by incorporating the best features found in modern languages. Other languages can compile to Tetra code and interpreted languages will work fine as long as they don't generate any executable code. The problem is that these languages are designed to work with files and lack the features needed to properly run in a BRiX environment. The best way to use them is with a libOS environment for an existing operating system. Therefore, Tetra is about the only option to produce code that integrates well with the BRiX environment and must be able to replace the others.
Copyright © 1995-2017 Brand Huntsman