Inside NovaOS: how does it actually work?
As we all know, novaos is a really complex webapp. Its insides are multiple layers of documents and scripts that work together to create an ecosystem for you to strive.
Starting with the most basic aspect of Nova, the kernel.
The NovaOS kernel
Unlike an ordinary kernel, NovaOS has a 'kernel' that deals with how you manage windows and open apps. But for the time being, what you have to understand are 3 basic things
- Windows in novaos are separate document fragments or child documents.
- The code ran in the child document is injected by NovaOS on initializing the new child document.
- The windows, after the initialization, does not have anything to do with the original file unless it's compelled by a script to do so.
The kernel is really cool, the kernel comes with a lot of stuff, like openers, opener protocols, file opening systems, window management systems and a whole lot, which we will discuss later!
But now, to actually run an app, we need to store the app somewhere, so we got the NovaOS filesystem!
The file system
If you know at least something about NovaOS, you will know that NovaOS stores your files in your browser. How does it do this? well, its not very easy to categorize and store your data safely, while using the lowest of resources. How does nova do this?
The basics
NovaOS filesystem is a JavaScript Object, which is like a key data pair. In this, we get the highest container in the 'tree', this container, containing all data, is called the 'root'.
Now going deeper, we find many sub containers inside the root container. But calling it a 'container' is not relatable enough, so we can call them 'folders' instead. These folders are the topmost layer of the Nova filesystem.
Even deep, inside these folders, we can find subfolders, in which there can be more subfolders. This cycle of subfolder inside a subfolder can be repeated until the object is too oversized to fit in your pc's memory.
Folders
Folders are containers that contain 'files' or maybe subfolders. A folder in NovaOS has certain rules
- a folder should have a folder name.
- a folder name should end with '/' (deprecated)
Subfolders in folders just follows the same principles as the folders.
Files in NovaOS
Files in NovaOS are stored in folders, it has these keys:
- The file name with extension
- file content
- file metadata
- file ID
File names
The names of files are good for finding what file do you want, this is useful like a title of a file, where you can have a label of what is inside it.
But as useful as file names are for the users, it is as useful for the filesystem management functions. Where file names can be used to determine the file type and by that which app could open it.
File Name extensions
File name extensions are the things that come after the period (.) symbol in a file name.