This document introduces "ash", a shell that allows controlling multiple devices with a single interface. Ash uses a text-based command language to send commands over a network to remotely control devices installed with the ash application. The architecture includes an evaluator that parses commands, a user interface, and device controllers. Commands can register functions and callbacks. The code is structured as lists, and ash supports interfaces from Android, Ubuntu, OSX, and Windows.
Breaking the Kubernetes Kill Chain: Host Path Mount
ash
1. ash: a shell for multiple devices
SeongJae Park / Seoul National University
sjpark@dcslab.snu.ac.kr
2. Multiple Devices and Multiple
Interfaces
As Useful, New Device Invented,
People Suffer Unfamiliar Interface of New
Devices
Critical For Accessibility
3. ash: Use Preferred One Interface For
Multiple Devices Control
Android
Ubuntu
OSX
Windows 8
Control any
devices via any
device(even self)
5. Control Path Between Ash Systems
Evaluator
User Interface
Device controller
Evaluator
User Interface
Device controller
Network
From ash on
device A,
Control device B which ash
installed.
6. Any Interface, Module Can Be
Imported
ash application
by 3rd party
Evaluator
User Interface
Device controller
7. Language: Everything Is A List
ash is a shell
Evaluator
ash is a shell
ash is [a sh]ell
Evaluator
ash is a sh ell
8. Language: Plain List Or Function
Call
ash is a shell
Evaluator
ash is a shell
touch DOWN 300 500
Evaluator
touch DOWN 300 300
Registered
Function name
9. Language: Code Is A List
ash$ add_callback [default alias click] [
[touch DOWN [arg 1] [arg 2]]
[touch UP [arg 1] [arg 2]]
]
11. This work by SeongJae Park is licensed under the
Creative Commons Attribution-ShareAlike 3.0 Unported
License. To view a copy of this license, visit http:
//creativecommons.org/licenses/by-sa/3.0/.