Skip to content

Latest commit

 

History

History
58 lines (45 loc) · 7.13 KB

PersiaOS.md

File metadata and controls

58 lines (45 loc) · 7.13 KB

PersiaOS - Operating System

OS can be used by many type of devices such as servers, clients by Users Manager, PXE client, UI, ..., routers by IPv6 Sub Networking router, PXE server, ...

Services

All services work with sRPC protocol. You can call them from any language with related SDK. As protocol standard each service categorized to get 32 bit identifier and each exported function inside each service get next 32 bit identifier, So each exported function have 64bit unique identifier in all life time of this codebase.

Architecture

See Architecture in Diagram
Distributed Operating System on Monolithic, Unikernel, Exokernel, Microkernel and Container Concepts but not tools that use them like docker, ... concepts! Tools like docker just born because file systems and networks problem in isolation and we fix that problem on related layer not invent new tools!

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

  • OS support multi NIC (Network interface controller). OS pass frames to router service(app) that will route packets between services(app) and NICs.
  • OS use resource authorization mechanism to schedule packet in each NIC by service registration data.
  • 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.

Network

  • Just support dedicated Giti Network protocol! So every where you see GP it means dedicated GP!
  • Each service(app) has unique GP, So OS don't bother to do upper layer like transport layer!
  • OS doesn't have any local GP! 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.
  • OS doesn't change or cut any data, just routing!
  • Each Device OS get GP range at min 32bit or 4,294,967,296‬ address from XP and route them to apps.
  • Diagram showing how GP packets route in their way!

USB

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

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.

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.