Distributed Operating System on Exokernel and Container Concepts
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
admin-consoles/html5
kernel
libos/drivers
user-land
LICENSE
README.md

README.md

PersiaOS

OS can be used by 3 type of computers:

  • servers:
  • clients: Users Manager, PXE client, UI,
  • routers: IPv6 Sub Networking router, PXE server, Each build has specific features.

Architecture

Distributed Operating System on Monolithic Unikernel, Exokernel, Microkernel and Container Concepts.

User Authentication

Each user must have valid public key. New CPU structures have a unique immutable key that we use to improve security.

Services Manager

Each services(application) must have validated domain space e.g. my.sabz.city

Resources Authorization

Authorization can set to specific resource on specific domain. It looks like FreeBSD JAIL or Linux CGroups or Linux LXC or Docker that implement Operating System Level Virtualization Services can get minimum and maximum resource for accounting purpose e.g. RAM-min:1Gb, RAM-max:2Gb

Data Packet Routing

  • OS don't change or cut any data, just routing!

USB

Nature of USB protocol have enough data to route data packet easily and secure between services and devises.

IP

  • OS support multi IPv6 on multi NIC (Network interface controller). OS route ip packet between services(app) and NICs.
  • OS use resource authorization mechanism to schedule packet in each NIC by service registration data.
  • Each IP has public key that made by ::/64 router and send to owner of IP.
  • Each IP packet encrypt by paired EncryptionKey before send over MAC link. Due nature of MAC frame, MAC header can't be encrypted.
  • OS doesn't support fragmentation in any layer. App must respect MTU value from related method and just send max packet size otherwise packet will be drop at upper layer.
  • Just support IPv6! due IPv4 must deprecated along time ago! So every where you see IP it means IPv6!
  • Each service(app) has unique IP, So OS don't bother to do upper layer like transport layer! We strongly suggest don't use old ipv4 idea protocols like udp or tcp!
  • Developers can use auto-generation mechanism to decrease developing process overhead. We introduce ChaparKhane.
  • OS doesn't have any local IP! Detect device MAC after ARP lookup and Maybe packet route internally! So we don't have something like localhost or 127.0.0.1 due different in architecture.
Firewall

We suggest do firewall in ::/64 subnet router network level. each IP can send block signal to router. With this approach we can have both physical and upper layer security. If abuser send data to inner network services, It will easy to locate physically and remove it from router.

Storage Engine

We need to store and retrieve data in multi model! So OS don't have any schema forces in storage engine layer like FileSystems or RDBMS for security and performance reason. Services(apps) can connect to device (Raw data) without any additional layer.

Pros

  • It is very easy to have distributed storage with PersiaDB
  • Improve security because naked device (without FileSystems) can't read by any OS.
  • Improve performance because no additional layer.
  • Have distributed storage engine (file system)! because all device storage capabilities be as one storage capabilities in top layer of database.

How to install and use

Not implement yet to install or use!

Read more about kernels concept

Other Implementation

Production Ready!?

This OS is under development and not ready to use in real production. It can have breakable changes until version 1 release. But we are glad to hear your experience or idea about this concept.