CodaFine1.0 DistributedFileSystemManager Manual MakingtheCodaFileSystema1stClassCitizenon HandheldLinuxDevices Abstract ThismanualprovidesdetailedinformationaboutCoda fineproject.it includesdetailsonhildonlibraries,maemo,installationinstructions, technicalrequirementsandotherdetails.
http://finefm.org TableofContents 1.Introduction [1]...3 1.2MaemoSystem...4 1.3Hildon...4 1.4Scratchbox...4 2.Installation...6 2.1BasicInstallation...6 2.2Prerequisites...6 2.3Configuring...6 2.4Buildingandinstalling...7 3.CodaFileSystem [2]...8 4.HildonFMLibrary...8 4.1HildonFramework [1]...8 4.2HildonFM...9 5.Conclusion... 10 5.1Ourachivement... 10 5.2FutureWork... 10 6.References... 10 2
http://finefm.org 3 1.Introduction [1] Fine means "the place where a piece of music finishes". (From new Oxford American Dictionary). Basically, we make Nokia's internet tablets work with Coda filesystem.thisprogramwillbethelastchapterofmobile&pervasivecomputing withcoda. Moreinformationonthisprojectcanbefoundinhttp://finefm.org. 1.1UnlockingtheHildon fmlibrary TheCodaDistributedFileSystemisanadvancednetworkfilesystemthatprovides several features such as disconnected operation which are not found in any other filesystem.itisusedonlinux,freebsd,netbsd,andwindowsntbasedoperating systems and runs on anything from a small ARM based handheld to 64 bit x86 systems. However, the day to day operation is not ready for main stream usage, most operationsrequiredroppingdowntothecommand line.becauseofcoda'sunique featuresitdoesn'tfallnicelyintoeitherlocalorremotefilesystemcategoriesona devicelikethenokian800,n810.localfilesystemstendtobesmallandrelatively slow,theyareaggressivelyindexedtoimprovesearchperformanceandgiveusers feedback what types of files are taking up space in which parts of the namespace. But crawling though the complete Coda namespace is infeasible. Remote file systems on the other hand are not show in the interface whenever there is no network connectivity, which is unreasonable in Coda's case because it supports disconnectedoperations.thisprojectinvolvesextendingtheopensourcehildon fm andfilechooserwidgestwhichareusedbyallmaemoapplicationstoincludeacoda file system volume as a fiest class object alongside the memory cards and remote SMBanduPNPfileservers.Aswellasprovidingusefuluserinterfacecomponentsto performvariousessentialtaskssuchasauthenticationandexplorationofaspectsof the Coda distributed file system on the handheld device. We named our project's subtitleasunlockingthehilon fmlibrary,becausewemodifiedthelibrarytomake our own file manager work with Coda. There is currently no open source file manager application for Maemo system. This application will be the first opensourcefilemanagerformaemooperatingsystem(n800,n810).
http://finefm.org 4 1.2MaemoSystem MaemoisDebianGNU/Linux basedosfornokia sinternettablets. Thedevicesaresmallerthanalaptop,largerthanaPDA,andquitelightweight. Someofthem(e.g.NokiaN810)haveasmallkeyboard,andallofthemhaveastylus andatouch sensitivescreen.thestylus drivenguiwillcausesomedesign challengeslateron,sincesoftwarewillneedtobedesignedwiththisinmind.there isalsoapossibilityofusinganon screenkeyboardwiththestylus,including handwritingrecognitionandapredictiveinputsystemtoaidtheuser.inalldevices, thereisalimitedsetofhardwarebuttonsavailableforapplications. 1.3Hildon Hildonisanapplicationframeworkoriginallydevelopedformobiledevices(PDAs, mobilephones,etc.)runningthelinuxoperatingsystem.itwasdevelopedbynokia for the Maemo operating system and is now a part of GNOME. It focuses on providing a finger friendly interface. It is primarily a set of GTK extensions that provide mobile device oriented functionality, but also provides a desktop environment that includes a task navigator for opening and switching between programs, a control panel for user settings, and status bar, task bar and home applets.itisstandardonthemaemoplatformusedbythenokiainternettablets. 1.4Scratchbox Scratchbox is maemo SDK s cross compiling environment. The default Scratchbox installationworksas isundermostconditions,butsomedetailsaregoodtoknow formorespecializedusage. The target inside Scratchbox contains a root file system that is being worked on. WhenanewtargetinsideScratchboxiscreated,atoolchainmustbespecifiedforit. Using this toolchain, applications are built for the target. Examples of a target are X86andARMEL,whichareprovidedbythemaemoSDKontopofScratchbox.
http://finefm.org 5 Host tools are native to the host provided for convenience and speed. They are always preferred over target tools and transparently for example cross compile applicationstothetargetarchitecture.hosttoolsconsistofdevkitsandtoolchains. A toolchain provides the minimal set of tools for compiling binaries for the target. OneandonlyonetoolchainmustbeselectedforeveryScratchboxtarget. CPU transparency methods take care of running the applications on an emulator, arget device or directly on the host transparently to the user. The available CPU transparency methods come from a special devkit called cputransp. For each of maemo SDK s pre defined targets, a CPU transparency method is selected and defined. A toolchain is a collection of tools used to produce binaries for the target environment. In addition to a compiler (gcc), it contains a linker (ld) and other binutils,suchasstrip,objdumpandstrings.adevkitisacollectionoftoolsnativeto thehost.atoolkitcanbeselectedordisabledforatarget.anexampleofadevkitis doctoolsdevkit,whichprovidestools(likedoxygen)forbuildingdocumentation. Arootstrapisarootfilesystemforthetargetdevice.MaemoSDKprovidesrootfile systemsforbothtargets(x86andarmel)insidescratchbox.notethattheuser s homedirectoryissharedforalltargets.the/tmpdirectoryissharedforalltargets andalsowiththehost. FromScratchbox spointofview,maemosdkisasetofpreconfiguredtargetsand rootfilesystems.onesetisprovidedforbothx86andarmelarchitecturesontop ofaworkingscratchboxinstallation.morescratchboxinformationcanbefoundat Scratchbox swebsite. TheseexplanationsarefromMaemoDiablos sreferencemanual.
http://finefm.org 6 2.Installation 2.1BasicInstallation 1. Obtainingthesources Thesourcescanbedownloadedfrom: http://finefm.org/ 2. ThesourcecodeforapplicationandHildonFileManagerarestoredinthe directory"finefm". 3. TheversionofMaemothatissupportedisMaemo4.1.1.TheHildonFile managerlibrarysupportedis2.0.6.1. UserscandownloadotherversionsofHildonFilemanagerfrom: http://repository.maemo.org/pool/maemo4.1.1/free/libh/libhildonfm/ 4. Autoconfmustbeinstalledonthesysteminordertosetupthebuild environment. 2.2Prerequisites GNUMakeisrequiredtobuildCodaFine. 2.3Configuring UsershavetoconfigurebothapplicationpartandthemodifiedHildon Librarypart.Thesecanbedonebyrunningtheconfigurescriptsas:
http://finefm.org 7 $cdfinefm/ $./configure $cd./libhildonfm 2.0.6.1/ $./configure 2.4Buildingandinstalling Inordertocompilethesource,usershavetomanuallycompilethe applicationandhildonlibrarysources.theycanbedoneas: $cdfinefm/ $make $cd./libhildonfm 2.0.6.1/ $make Toinstallthebinariesoftheapplicationusershavetomanuallycopyit to/usr/bin.butthebinariesofhildonfmcanbeinstalledbyrunninga makeinstall.thesebinariesarecopiedtothe/usr/local/directory. $cdfinefm/ $cpfinefm/usr/bin/ $cd./libhildonfm 2.0.6.1/ $makeinstall
http://finefm.org 8 3.CodaFileSystem [2] Codaisanadvancednetworkedfilesystem.IthasbeendevelopedatCMUsince1987 bythesystemsgroupofm.satyanarayanan.inthescsdepartment. CodaisadistributedfilesystemwithitsorigininAFS2.Ithasmanyfeaturesthatare very desirable for network filesystems. Currently, Coda has several features not foundelsewhere. Disconnectedoperationformobilecomputing Isfreelyavailableunderaliberallicense Highperformancethroughclientsidepersistentcaching Serverreplication Securitymodelforauthentication,encryptionandaccesscontrol Continuedoperationduringpartialnetworkfailuresinservernetwork Networkbandwithadaptation Goodscalability Well definedsemanticsofsharing,eveninthepresenceofnetworkfailures 4.HildonFMLibrary 4.1HildonFramework [1] TheuserinterfaceisbasedonXWindowSystemwithMatchboxwindowmanager. TheapplicationprogrammingAPIontopofXisaGTK+widgettoolkitwithHildon extensions.gtk+istheuiframeworkofthegnomeprojectaswell.othergnome
http://finefm.org 9 componentshavealsobeenincludedinmaemo,likegconfapplicationconfiguration management,xmllibrary,gnomevfs,evolutiondataserverforaddressbookand calendar management, GSF structured file streaming, and SVG (Scalable Vector Graphics). The multimedia framework is also the same, GStreamer based. Hildon framework provides components on top of the GNOME components to support controlpanel,statusbar,tasknavigator,andhomeapplets.hildonframeworkalso providesbackups/restoreservice,helpframework,andanapplicationinstaller. 4.2HildonFM Basically, almost ever application use the Hildon fm library to perform file operation. However, there is no open source file manager for Nokia s Internet tabletsthesedays.sowehavetomakeourownapplicationusingthislibrary. Fundamental problem of the hildon fm is, they encapsulate everything include foldersandfilessothattheuserscannotseetheactualfilesystem.theycallitasa protection butitisnotcomfortabletouse.also,thecodadirectorywillnotshow properly in the tablets. Thus, we changed and unlocked the hildon fm library to showthecodadirectoryandweaddedseveralcoda specificfunctionalitiessuchas authenticationusinganapplication transparentway.inthisway,everyapplication canseethecodadirectoryinthisdeviceandwecanusethisdeviceasarealmobile &pervasivedevice.
http://finefm.org 10 5.Conclusion WehavesuccessfullyportedCodafilesystemontheNokia sn810,maemodiablo. ThescenarioswetestedsuggestthatCodacanworkonlightweightdevicessuchas thenokia sinternettablet. 5.1Ourachivement WeinstalledCodaclientonNokiaN810device. WeanalyzedandmodifiedHildon FMlibrarytoshowCodafilesystem Wedesignednewuser friendlyfilemanagerapplication WeincorporatedCodaauthenticationmoduleinHildon FMlibrary Weextendedthefunctionalityoforiginalfilemanager:refreshandmovefiles. WeintegratedCodaandFinefmasonepackage,sothatusercaneasilyinstallit. 5.2FutureWork Thesearesomeworkswewilldointhefuture: Sourcecodeinstallationpackages Enhanceduserinterface;keypadshortcut Providefullfilesystemviewratherthanjustprotectedfolders 6.References [1]MaemoDiablos sreferencemanual. [2]http://coda.cs.cmu.edu