Skip to content

DarthCadeus/Osmium

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Osmium

A more elegant operating system for a more civilized age.

About

Osmium is an operating system based on the internet. It (will) has (have) support for all of the functions of an operating system. It focuses on the maximization of productivity in an easy and customizable way.

App System

Applications are made using web technologies. There are several types of applications:

DefaultApp

These are applications that come with the OS itself. It extends AppObject, but has more permissions, including the full access of everything. However, third-party apps will not be allowed to create apps using the DefaultApp Object.

AppObject

This is the root class for the app system, and it is run in an <iframe>, although the <iframe> is not sandboxed. It is assumed that these <iframes> are cross-origin. The OS does not communicate with the <iframe> in any way. These can be created by the user directly.

TrustedApp

These are the third party variant of the DefaultApp. These are sandboxed. These applications will be able to access the system to some extent, but they will be contained within a dialog.

Jailing

This uses the "jailed" library (or rather a slightly modified version of it - the slight modification currently does not do much). The api allows the application to set its own html. All event handlers, whether done with event listeners or onclick are removed.

Event Handling

All event listeners will be attached through the api provided to the application. These are sandboxed using a separate jailed plugin. It is automatically disconnected by adding an application.disconnect line directly to the code provided, so timeouts will not work properly.

IntegratedApp

IntegratedApps are not bound by a dialog. Their html code is directly appended to the site. Their js, however, is fully sandboxed, and event handlers like onclick directly embedded into html may be removed, although not yet.


Applications are prevented from conflicting with the concept of namespaces. These are done by modifying the API provided to the applications and adding a class of its app id to its container element. id attributes will be removed at some time in the future, although not yet.

Attributions

Images

Background pictures

author: Owen li (a.k.a DarthCadeus, owner of this repository)

created with: canva.com

File Icons

Folders

author website: http://www.thesquid.ink/flat-icons/

source: easyicon.net

Generic

author: Alessandro Roncone

author website: https://github.com/alecive/FlatWoken

source: easyicon.net

Other icons

author website: easyicon.net

source: easyicon.net

Apps

author: Owen li (a.k.a DarthCadeus, owner of this repository)

created with: canva.com

Folders

http://www.thesquid.ink/flat-icons/, easyicon.net

Dependencies

About

Online Operating System

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •