Design and Implementation of a USB File System
Design and Implementation of a USB File System for Bare PC Applications Presented by Dr. Ramesh K. Karne Department of Computer and Information Sciences Towson University Towson, MD 21252, USA (Authors: William Thompson, Ramesh Karne, Sonjie Liang, Alexander Wijesinha, Hamdan Alabsi, and Hojin Chang) rkarne@towson. edu http: //baremachine. towson. edu 1
History - Started in 2001 - Motivated by complexity and obsolescence - Frustrated by too many environments - Initially funded by NSF grants - Over 45 publications and 15 doctoral dissertations - Started from scratch and built all BMC code and over a dozen complex applications 2
Related Work - Exokernel - Bare Metal Linux - Nano and Micro Kernels - Lean kernels - Sandboxing - Palacio and Kitten - IO-Lite 3
What is a Bare Machine Computing (BMC)? - A computer application(s) run on a bare computing device (such as a PC) - The computing device consists of CPU, Memory, User interfaces such as (Keyboard, Mouse, Monitor, Network card) - Application(s) are self contained, self managed - The box containing the computing device is known as a bare machine - The concept is applicable any computing device 4
BMC Characteristics A Bare Machine is: 1. Ownerless 2. Valueless, no valuable resources in the bare box 3. Uses detachable or network storage 4. Bootable, loadable and controllable by user application(s) 5. Application(s) are stored on a detachable storage device such as a flash drive 6. There is nothing to damage in the bare machine, other than physical vandalism 7. Super secure, ultimate security for application(s) 8. A bare machine can be placed any place, accessed by anyone without ownership 9. A bare machine application is stable, not prone to obsolescence, contains code that does not depend on other computing environments 10. A bare machine application(s) are totally user controlled and closed systems. 5
What is a bare PC File System? - It is a standard FAT 32 compatible file system - USB based - Runs only on a x 86 compatible PCs, can be extended to other CPU architectures by writing direct API - The files can be accessible on other OSs - Lean, efficient and application driven - Resident on detachable devices - No OS vulnerabilities - Closed system 6
USB Layout 7
Memory Layout 8
Initialization Process 9
File Table Structure 10
File API 11
Use of API 12
USB Parameters and Driver 13
USB Operations 14
USB Analyzer Trace 15
Bare Root Directory 16
Root Directory on USB 17
Bare PC Screen Shot 18
Design Challenges - Broad knowledge for a programmer - Device driver knowledge - System and application programming - Debugging bare code - Reducing semantic-gap between application and hardware - Integrating with other bare PC applications 19
Further Research - Multiple USBs for storage - Integrating with SQLITE database and others - Integrating with Web server and Webmail - Extending to NFS and other file system protocols - Performance comparison with conventional systems - Adding security to USB flash drives 20
Conclusions - Presented a novel computing architecture (BMC) - Described internals of a bare PC file system - Possible use in super-secure applications - Bare to bare applications are super-secure - Identified further research 21
- Slides: 21