based on posix and actors oneos: iot platform · iot platform aws greengrass azure iot edge google...

64
OneOS: IoT Platform based on POSIX and Actors Kumseok Jung, UBC Julien Gascon-Samson, ÉTS Montréal Karthik Pattabiraman, UBC

Upload: others

Post on 21-Jun-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: IoT Platformbased on POSIX and Actors

Kumseok Jung, UBCJulien Gascon-Samson, ÉTS MontréalKarthik Pattabiraman, UBC

Page 2: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Motivation

Near-future IoT Project

City of Vancouver

2

Page 3: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Motivation

Near-future IoT Project

City of Vancouver

Public Infrastructure3

Page 4: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Motivation

Near-future IoT Project

City of Vancouver

Public Infrastructure4

Page 5: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Motivation

Near-future IoT Project

City of Vancouver

Public Infrastructure5

Page 6: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Motivation

Near-future IoT Project

City of Vancouver

3rd Party Service

Public Infrastructure6

Page 7: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Motivation

AliceEngineer

City of Vancouver

7

Page 8: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Motivation

AliceEngineer

City of Vancouver

8

Page 9: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Motivation

AliceEngineer

City of Vancouver

Magic

9

Page 10: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Motivation

AliceEngineer

City of Vancouver

Magic

10

Page 11: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Motivation

AliceEngineer

City of Vancouver

Magic

11

Page 12: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Motivation

AliceEngineer

City of Vancouver

Magic

12

Page 13: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Challenges

AliceEngineer

Magic

Example Problem:

Collect GPS data from the 2 subsystems (Bus & Bike),compute an optimal scheduling policy for another subsystem (Subway)

13

Page 14: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Challenges: Heterogeneity

Company A

Company B

14

Page 15: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Challenges: Heterogeneity

Company A

Company B

Windows 64bit

Linux 32bit

Heterogeneity in Hardware and Operating Systems

15

Page 16: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Challenges: Heterogeneity

Company A

Company B

Windows 64bit

Linux 32bit

Azure IoT Edge Runtime

AWS IoT Greengrass

Heterogeneity in Languages and Frameworks

16

Page 17: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Challenges: Heterogeneity

Company A

Company B

Windows 64bit

Linux 32bit

Azure IoT Edge Runtime

AWS IoT Greengrass

Solution

Software within a specific framework isnot portable across different frameworks

17

Page 18: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Challenges: Heterogeneity

Company A

Company B

Windows 64bit

Linux 32bit

Azure IoT Edge Runtime

AWS IoT Greengrass

Solution

Solution

Software within a specific framework isnot portable across different frameworks

18

Page 19: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Challenges: Heterogeneity

Company A

Company B

Windows 64bit

Linux 32bit

Azure IoT Edge Runtime

AWS IoT Greengrass

Solution

Solution_1

Need to rewrite the same application logicfor different frameworks

19

Page 20: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Challenges: Heterogeneity

Company A

Company B

Windows 64bit

Linux 32bit

Azure IoT Edge Runtime

AWS IoT Greengrass

Solution

Solution_1

Difference in application semanticsresolved by more glue software

20

Page 21: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Challenges: Heterogeneity

Company A

Company B

Windows 64bit

Linux 32bit

Azure IoT Edge Runtime

AWS IoT Greengrass

Solution

Solution_1

We end up with: Heterogeneity in Application Software

21

Page 22: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Challenges: Scale & Dynamicity

Company A

Company B

22

Page 23: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Challenges: Scale & Dynamicity

Company A

Company B

23

Page 24: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Challenges: Scale & Dynamicity

Company A

Company B

24

Page 25: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Challenges: Scale & Dynamicity

Company A

Company B

25

Page 26: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Challenges: Scale & Dynamicity

Company A

Company B

26

Page 27: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Challenges: Scale & Dynamicity

Company A

Company B

27

Page 28: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Related Work

Distributed Computing Platforms

Device Independence

App

licat

ion

Por

tabi

lity

IoT PlatformAWS GreengrassAzure IoT Edge

Google Cloud IoT

28

Page 29: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Related Work

Distributed Computing Platforms

Device Independence

App

licat

ion

Por

tabi

lity

IoT PlatformAWS GreengrassAzure IoT Edge

Google Cloud IoT

Device IndependenceInterface Transparency

29

Page 30: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Related Work

Distributed Computing Platforms

Device Independence

App

licat

ion

Por

tabi

lity

IoT PlatformAWS GreengrassAzure IoT Edge

Google Cloud IoT

Cluster PlatformMesosphere DC/OS

KubernetesDocker Swarm

OpenHPC

30

Page 31: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Related Work

Distributed Computing Platforms

Device Independence

App

licat

ion

Por

tabi

lity

IoT PlatformAWS GreengrassAzure IoT Edge

Google Cloud IoT

Cluster PlatformMesosphere DC/OS

KubernetesDocker Swarm

OpenHPC

Interface TransparencyTopology Independence

Failure Tolerance

31

Page 32: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Related Work

Distributed Computing Platforms

Device Independence

App

licat

ion

Por

tabi

lity

IoT PlatformAWS GreengrassAzure IoT Edge

Google Cloud IoT

Distributed OSAmoeba

SpritePlan 9Inferno

Barrelfish

Cluster PlatformMesosphere DC/OS

KubernetesDocker Swarm

OpenHPC

32

Page 33: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Related Work

Distributed Computing Platforms

Device Independence

App

licat

ion

Por

tabi

lity

IoT PlatformAWS GreengrassAzure IoT Edge

Google Cloud IoT

Distributed OSAmoeba

SpritePlan 9Inferno

Barrelfish

Cluster PlatformMesosphere DC/OS

KubernetesDocker Swarm

OpenHPC

Interface TransparencyApplication PortabilityTopology Independence

Failure Tolerance

33

Page 34: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Our Goal: OneOS

Distributed Computing Platforms

Device Independence

App

licat

ion

Por

tabi

lity

OneOS

IoT PlatformAWS GreengrassAzure IoT Edge

Google Cloud IoT

Distributed OSAmoeba

SpritePlan 9Inferno

Barrelfish

Cluster PlatformMesosphere DC/OS

KubernetesDocker Swarm

OpenHPC

34

Page 35: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: Approach

Hardware

OS

Framework

User App

API

Runtime

API/ABI (system call)

Language

Chain of Programming Interfaces

35

Page 36: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: Approach

Hardware

OS

Framework

User App

API

Runtime

API/ABI (system call)

LanguageLow-Level

High-Level

Application Programming

Systems Programming

36

Chain of Programming Interfaces

Page 37: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: Approach

Hardware

OS

Framework

User App

API

Runtime

API/ABI (system call)

Language

37

Low-Level

High-Level

Page 38: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: Approach

Hardware

OS

Framework

User App

API

Runtime

API/ABI (system call)

Language

armv7

Linux

Runtime

x64

Windows

Runtime

38

High-Level

Low-Level

Page 39: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: Approach

Hardware

OS

Framework

User App

API

Runtime

API/ABI (system call)

Language

armv7

Linux

Runtime

x64

Windows

Runtime

Platform-Independenceby using High-level Language

39

Page 40: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: Approach

Hardware

OS

Framework

User App

API

Runtime

API/ABI (system call)

Language

armv7

Linux

Runtime

x64

Windows

Runtime

Platform-Independenceby using High-level Language,not by using Framework API

Framework Framework

40

Page 41: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: Approach

Hardware

OS

Framework

User App

API

Runtime

API/ABI (system call)

Language

armv7

Linux

Runtime

x64

Windows

Runtime

Platform-Independenceby using High-level Language,not by using Framework API

Platform

41

Page 42: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: Approach

Hardware

OS

Framework

User App

API

Runtime

API/ABI (system call)

Language

Platform

42

Page 43: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: Approach

Hardware

OS

API/ABI (system call)

Framework A

yourApp

API A

Framework C

herApp

API C

Framework B

User App

API B

Runtime

Language

PlatformHeterogeneity in Softwareunresolved by frameworks

43

Page 44: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Framework A

yourApp

API A

Framework C

herApp

API C

OneOS: Approach

Hardware

OS

Framework B

User App

API B

Runtime

API/ABI (system call)

Language

PlatformHeterogeneity in Softwareunresolved by frameworks

Application Portabilityworsens with more frameworks

44

Page 45: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: Approach

Adding Abstraction Layers on top

45

Page 46: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: Approach

Adding Abstraction Layers on topleads to “API hell”

46

Page 47: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: Approach

Adding Abstraction Layers on topleads to “API hell”

47

Page 48: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

Our approach:Not a high-level framework

OneOS: Approach

Hardware

OS

Framework

User App

API

Runtime

API/ABI (system call)

Language

48

Page 49: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: Approach

Hardware

OS

Runtime

API/ABI (system call)

Language

User App

49

Our approach:Not a high-level framework

Page 50: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: Approach

Hardware

OS

Runtime

API/ABI (system call)

Language

Node.js CPython

PythonJavaScript

User App herAppyourApp

50

Embrace heterogeneity in softwareallow existing technology to work together

Page 51: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: Approach

Hardware

OS

Runtime

POSIX API

Language

Node.js CPython

PythonJavaScript

User App herAppyourApp

High-level Language VMs share a common interface to the underlying abstract machine

51

Page 52: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: Approach

Hardware

OS

Runtime

POSIX API

Language

Node.js CPython

PythonJavaScript

User App herAppyourApp

High-level Applications are agnostic about the underlying abstract machine

52

?

Page 53: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: Approach

Hardware

OS

Runtime

Language

Node.js CPython

PythonJavaScript

User App herAppyourApp

High-level Applications are agnostic about the underlying abstract machineSystem call modeled as message between Actors

POSIX API

Actor.js Actor.py

Actor(kernel)

53

Page 54: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: Approach

Hardware

OS

Runtime

POSIX API

Language

Node.js CPython

PythonJavaScript

User App herAppyourApp

Applications make system callsto interact with other agents

54

Page 55: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: Approach

Hardware

OS

Runtime

POSIX API

Language

Node.js CPython

PythonJavaScript

User App herAppyourApp

Hijack low-level Abstraction Layeralter the operational semanticsof high-level software

55

OneOS Middleware

Page 56: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: Approach

Hardware

OS

Runtime

POSIX API

Language

Node.js CPython

PythonJavaScript

User App herAppyourApp

Hijack low-level Abstraction Layeralter the operational semanticsof high-level software

Intercept system callsredirect to various distributed services

56

OneOS Middleware

Page 57: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: Approach

Runtime

POSIX API

Language

Node.js CPython

PythonJavaScript

User App herAppyourApp

File SystemNetwork Interfaces

I/O Streams

57

IPC ServiceFile System Service

Scheduler Service

OneOS Middleware

Page 58: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: Design

x64 armv7x86

Windows MacOS Linux

OneOS

App 1 App 2 App 3

Network

OneOS Middleware

OneOS Middleware

OneOS Middleware

IPC FileSystem Scheduler Storage Session

58

Page 59: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: Design

x64 armv7x86

Windows MacOS Linux

App 1 App 2 App 3

Network

OneOS

OneOS Middleware

OneOS Middleware

OneOS Middleware

IPC FileSystem Scheduler Storage Session

fs.writeFile

59

Page 60: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: Design

x64 armv7x86

Windows MacOS Linux

OneOS

App 1 App 2 App 3

Network

OneOS Middleware

OneOS Middleware

OneOS Middleware

IPC FileSystem Scheduler Storage Session

fs.writeFile

60

Page 61: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: Design

x64 armv7x86

Windows MacOS Linux

OneOS

App 1 App 2 App 3

Network

OneOS Middleware

OneOS Middleware

OneOS Middleware

IPC FileSystem Scheduler Storage Session

process.stdout.write

61

Page 62: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: Design

x64 armv7x86

Windows MacOS Linux

OneOS

App 1 App 2 App 3

Network

OneOS Middleware

OneOS Middleware

OneOS Middleware

IPC FileSystem Scheduler Storage Session

62

POSIX Machine

Page 63: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: Proof-of-Concept Demo

DependableSystemsLab/OneOS63

Page 64: based on POSIX and Actors OneOS: IoT Platform · IoT Platform AWS Greengrass Azure IoT Edge Google Cloud IoT Distributed OS Amoeba Sprite Plan 9 Inferno Barrelfish Cluster Platform

OneOS: Discussion

Feedback Wanted:● Evaluation strategies● Practicality of Actor-based micro-kernel● Suitability of high-level language for

systems programming

Controversial Points:● Single system image appropriate for a

geographically distributed grid?● Mapping POSIX interface over an

inherently distributed and concurrent architecture?

● Limiting application space to high-level languages?

Open Issues & Future Work:● Security and Privacy model● Failure handling● Semantics of cyber-physical resources

Potential Drawbacks:● Fundamental tension between

cyber-physical resources and their abstract representations

● Reasoning about security concerns within high-level programming space

● Inability to make low-level optimizations

DependableSystemsLab/[email protected]