A File System for System Programming in Ubiquitous Computing Christian Decker, Michael Beigl, Albert Krohn TecO, University of Karlsruhe Institut for Telematics Telecooperation Office (TecO)
TecO File System for System Programming in Ubicomp, ARCS Outline Ubiquitous Computing and Devices Development on Ubicomp Devices File System Approach Applications Related Work Conclusion
TecO File System for System Programming in Ubicomp, ARCS Ubiquitous Computing - Ubicomp … building aware environments Other areas Safety applications Military applications AwareHome (GATech) AwareOffice (TecO)
TecO File System for System Programming in Ubicomp, ARCS Embedded Sensor Devices in Ubicomp Limited computing power, 8-bit microcontroller Few kilobytes … 512 kilobytes of Flash memory Customized radio protocols Battery powered Extensible by various sensors Motes Particles Telos
TecO File System for System Programming in Ubicomp, ARCS Ubicomp Development – State-of-the-Art Manage a variety of resources, esp. sensors Lightweight OS (e.g. TinyOS) OS shields resources, e.g. sensors No direct access Communication through events -> event dispatching Library based access models Abstract access functions Direct access, virtually no overhead But… shielding/abstraction causes still confusion
TecO File System for System Programming in Ubicomp, ARCS Ubicomp Development – Case Study Study comprising of various students, practical courses and projects Findings Experience lack Huge number of various sensor interfaces Developers are stuck to the well-known Application complexity Developer focus on distributed application logic Rich sensor interfaces, poorly used Interface breach Sensor interfaces similar, only slight difference Hard to realize -> debugging
TecO File System for System Programming in Ubicomp, ARCS File System Approach Design principles Developer in the center Support developer to follow the simplest way Easy-to-understand interfaces -> generic Support in two ways Uniform representation of all resources Uniform access model
TecO File System for System Programming in Ubicomp, ARCS Resources
TecO File System for System Programming in Ubicomp, ARCS Resources cont.
TecO File System for System Programming in Ubicomp, ARCS Name Space File = entity identifying a resource Directory = special file identifying collections of files Uniform, hierarchical namespace /dev/ - direct resources, e.g. sensors, memory, power supply, communication interface /context/ - mediated resources, access direct resources, application functions, algorithms /usr/ - data files
TecO File System for System Programming in Ubicomp, ARCS Access Model Fundamental operations read(..) and write(..) – data transfer operations Resources are coupled with specific r/w methods Example: read(1, buf, 1) Additional operations open(..) mount(..)/umount(..) getType(..) Type System Type of resource, developer decides Compatibility in resource combinations Resource identifier Resource nameTypeReadWrite 1/dev/voltage3pFunc... VoltageSensorGet(int &v) {... } NOP() { ; }
TecO File System for System Programming in Ubicomp, ARCS Particle File System File system for Particle platform (Ubicomp device, sensor network) 18f6720 PIC microcontroller 128KB FlashROM, 4KB RAM, 512KB external Flash Resources Memory – 512KB Flash Power supply – AAA battery Wireless communication Sensors – acceleration, light, force, temperature, audio, ball switch Actuators – LEDs, speaker
TecO File System for System Programming in Ubicomp, ARCS Application: Telnet PC Particle “/context/telnet/less /usr/file1“
TecO File System for System Programming in Ubicomp, ARCS Application: Telnet cont. Telnet application combines resources “context/telnet/less“ is a resource Application function represented in the file system “less” checks for type of argument “less” denies access to /dev/accl, but grants access to /usr/file1
TecO File System for System Programming in Ubicomp, ARCS Application: Over-the-Air- Programming Programming is file copy! Bridge Compiled Program Particle FTP Proxy Network
TecO File System for System Programming in Ubicomp, ARCS Performance File system ~1900 bytes RAM ~2100 bytes ROM File library ~10 kilobytes ROM Access overhead *buf = f() Call + store result 26 instruction cycles read(fd,buf,1) lookup for function pointers + call + store result More parameters 100 instruction cycles
TecO File System for System Programming in Ubicomp, ARCS Related Work Plan9 All resources are files and accessed like files Client/server concept Dynamo, Context-aware file system (CFS) Middleware and infrastructure solutions Context-based sharing and visibility of data PDA like devices MatchBox, Micro-ROM File systems for small embedded sensor devices Only for data storage in files
TecO File System for System Programming in Ubicomp, ARCS Conclusion and Outlook File system Uniform resource representation (direct/mediated) Uniform access on resources (read/write) Combining resources (compatibility by type system) Implementation on embedded sensor system (ParticleFS) Applications: Telnet + Over-the-Air-Programming Future work Unblocking resource access Represent remote resources Shell/Macroprogramming
TecO File System for System Programming in Ubicomp, ARCS Thank you Q&A