Making the Coda File System a 1 Class Sang Kil Cha

advertisement
Making the Coda File System a 1st Class
Citizen on Handheld Linux Devices
Unlocking the Hildon-FM &
Introducing Fine File Manager for Coda
 Sang Kil Cha
 Jae Yoon Chong
 Anoop Jaishankar
Mentor: Jan Harkes
15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2
Agenda
 Abstract
 High-level Requirement
 Achievement
 Risk Analysis
 Schedule
 Future Work
 Question
15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2
Abstract
 Failure-resilient, scalable, and secure access to
shared information by mobile user over wireless
network is a challenge
 Coda file system meets this challenge through
disconnected operation, weak connectivity,
translucent caching, and other mechanisms
15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2
High-level Requirement
 Visibility
 Coda file system should be visible in any application
that uses Hildon-FM library
 Hildon-FM should provide graphical user interface for
authentication
 Usability
 User should be able to access cached information in
any built-in application
15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2
Achievement
 Installed Coda client on Nokia N810 device
 Analyzed and modified Hildon-FM library to show
Coda file system
 Designed new user friendly file manager application
 Incorporated Coda authentication module in Hildon-
FM library
15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2
Coda Client
 Failed to run Coda client in Scratchbox environment
 Scratchbox tool-kit does not emulate Maemo
 Opportunity to learn more about Maemo, Scratchbox,
libraries, and other environment
 Installed Coda client on the device with required
dependencies
 Works for current Maemo version, Diablo
 Cache saved in internal memory
 Manual load of Venus and kernel module required
15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2
Coda Client
Manually loading Coda kernel module
15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2
Coda Client
Manually loading Venus client cache manager
15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2
Coda Client
Manually loading Venus client cache manager
15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2
Coda Client
 What to do next
 Automate loading Venus and kernel module
 Risk Analysis
 Venus crash, kernel module failed to load, cache
directory being deleted

Out of scope of this project
 Is internal memory enough for Coda?


2 GB space shared with other application
Yes, it is
15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2
Hildon-FM Library
 Application transparent vs. application aware
 Part of Hildon application framework, default library
for Maemo platform
 Default application (music player, web browser) use
the library for file system related operation
 Provides encapsulated view for protection of system
 Right click equivalent mechanism support
 Analyzed Hildon-FM source code to figure out its
structure and modified it to show Coda file system
15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2
Hildon-FM Library
Coda file system is shown in file manager
15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2
Hildon-FM Library
 What to do next
 Refresh Coda directory after Venus is executed and
the directory is mounted
15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2
File Manager Application
 From application-transparent to application-aware
 Some features cannot be made application
transparent
 Source code for Maemo file manager application is
not available to developer
 There’s no open source file manager that uses
Hildon-FM library
15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2
File Manager Application
New Fine File Manager (left) and original Maemo File Manager(right)
15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2
File Manager Application
 What to do next
 Copy and paste, and move
 More options in main menu
 Full file system display
15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2
Authentication Module
 User has to authenticate with Coda server
 Parameters required: username, password, realm
 Two ways
 Modify and include clog as a function
 Fork/exec a clog program to authenticate
 Problems:
 Context menu is application-dependent
15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2
Authentication Module (cont’d)
15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2
Risk Analysis
 Internal memory for caching
 Software/hardware update
 Theft of the device after authentication
15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2
Schedule
 Original schedule after checkpoint 1
ID
Tas k
Days
Start
1
2
3
4
5
6
7
8
Checkpoint 1
17 d
9/1/08
Modifying the H ildon-FM
Complete 9
9/1
9/23/08
9/1
10 d
9/24/08
10/7/08
Analyze Coda to combine w ith the file manager
5d
10/8/08
10/14/08
Combine the file manager w ith Coda
5d
10/15/08
10/21/08
Checkpoint 2
5d
10/22/08
10/28/08
10 d
10/29/08
11/11/08
5d
11/12/08
11/18/08
10 d
11/19/08
12/2/08
Debug additional stuff
Installation package & embellishment
Final Demo
9/24
10
9/21
9/23
10/11
11
11/1
12
11/21
10/7
10/8
10/14
10/15
10/21
10/22
10/28
10/29
11/11
11/12
11/18
11/19
12/2
 Sang Kil: file manager application
 Jae Yoon: analyze and modified Hildon-FM
 Anoop: authentication and file manager application
15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2
1
12/11
Schedule
 Revised Schedule, actual work done after checkpoint 1
ID
Task
Days
Start
Complete 9
10
9/21
9/22
9/1
1
Found source c ode and
analyzed Hildon-FM
2
3
4
5
6
7
8
9
10
11
12
13
16 d
9/1/08
9/1
9/22/08
Checkpoint 1
1d
9/23/08
9/23/08
Base file manager applic ation
3d
9/24/08
9/26/08
Implemented event handler
4d
9/29/08
10/2/08
33 d
10/3/08
11/18/08
Installed Coda in Scratchbox
5d
9/24/08
9/30/08
Installed Coda on the device
2d
10/1/08
10/2/08
10 d
10/3/08
10/16/08
Authentication module
7d
10/17/08
10/27/08
Checkpoint 2
1d
10/28/08
10/28/08
17 d
10/29/08
11/20/08
Installation pack age &
embellis hment
5d
11/25/08
12/1/08
Final Demo
1d
12/2/08
12/2/08
Implemented applic ation
func tions
Modifying the Hildon-FM
Debugging
11
10/11
11/1
9/23
9/23
9/24
9/26
9/29
10/2
10/3
9/24
10/1
10/3
12
11/21
11/18
9/30
10/2
10/16
10/17
10/28
10/29
15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2
10/27
10/28
11/20
11/25
12/1
12/2
12/2
Future Work
 Script for Coda client startup
 Fix Hildon-FM related problem
 USB disconnection, mount refresh
 Distinguish realms in authentication
 More features in file manager application
 Testing with multiple Coda server
 Embellishment / packaging
15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2
Future Work (cont’d)
Register with the official Maemo website, as an open source application
15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2
Questions
15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2
Hildon-FM Library
 Libraries used in our application
Gtk+2.0 Library
GtkObject
GtkWidget
GtkContainer
GtkBin
GtkWindow
HildonFileSe
lection
GtkDialog
HildonFileC
hooserDialog
GtkBut
ton
GtkToo
lbar
GtkBox
GtkEntr
y
HildonFileSy
stemModel
HildonFileD
etailsDialog
15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2
Work Division
New Coda
File Manager
Application
Hildon-FM
Analysis and
Modification
Coda Client
Authentication
Installation and
Module
Automation
Sang Kil
Cha
80%
10%
33%
10%
Jae Yoon
Chong
10%
80%
33%
10%
Anoop
Jaishankar
10%
10%
33%
80%
15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2
Download