36
Ext2 On Singularity Scott Finley University of Wisconsin – Madison CS 736 Project

Ext2 On Singularity

  • Upload
    coyne

  • View
    45

  • Download
    0

Embed Size (px)

DESCRIPTION

Ext2 On Singularity. Scott Finley University of Wisconsin – Madison CS 736 Project. Ext2 Defined. Basic, default Linux file system Almost exactly the same as FFS Disk broken into “block groups” Super-block, inode /block bitmaps, etc. Microsoft Research’s Singularity. - PowerPoint PPT Presentation

Citation preview

Ext2 On Singularity

Ext2 On SingularityScott FinleyUniversity of Wisconsin MadisonCS 736 ProjectBasic, default Linux file systemAlmost exactly the same as FFSDisk broken into block groupsSuper-block, inode/block bitmaps, etc.Ext2 DefinedNew from the ground upReliability as #1 goalReevaluate conventional OS structureLeverage advances of the last 20 yearsLanguages and compilersStatic analysis of whole systemMicrosoft Researchs SingularityImplement Ext2 on SingularityFocus on read support with cachingInvestigate how Singularity design impact FS integrationInvestigate performance implicationsMy GoalsI have a Ext2 working on SingularityReading fully supportedCaching improves performance!Limited write supportSingularity designGarbage collection hurts performanceReliability is good: I couldnt crash it.Overview of ResultsSingularity DetailsDetails of my Ext2 implementationResultsOutlineSingularityEverything is written in C#Small pieces of kernel (< 5%) in assembly and C++ as neededKernel and processes are garbage collectedNo virtual machineCompiled to native codeVery aggressive optimizing compilerProgramming EnvironmentSingularity is a micro kernelEverything else is a SIPSoftware Isolated ProcessNo hardware based memory isolationSIP Object Space isolation guaranteed by static analysis and safe language (C#)Context switches are much fasterProcess ModelAll SIP communication is via message channelsNo shared memoryMessages and data passed via Exchange HeapObject ownership is trackedZero copy data passing via pointersCommunication ChannelsApplication creates buffer in ExHeapDisk Read ExampleAppFile SystemDisk DriverExchange HeapEmpty BufferApplication send read request to file systemFile system owns the bufferDisk Read ExampleAppFile SystemDisk DriverExchange HeapEmpty BufferFile system sends read request to driverDriver owns the bufferDisk Read ExampleAppFile SystemDisk DriverExchange HeapEmpty BufferDriver fills buffer and replies to file systemDisk Read ExampleAppFile SystemDisk DriverExchange HeapFull BufferFile system replies to applicationDisk Read ExampleAppFile SystemDisk DriverExchange HeapFull BufferApplication consumes the bufferDisk Read ExampleAppFile SystemDisk DriverExchange HeapExt2 ImplementationExt2Control: Command line applicationExt2ClientManager: Manages mount pointsExt2FS: Core file system functionalityExt2Contracts: Defines communicationRequired PiecesSystem service (SIP) launched at bootAccessible at known location in /dev directoryDoes Ext2 stuffOperates on Ext2 volumes and mount pointsExports Mount and UnmountWould also provide Format if implemented300 lines of codeExt2 Client ManagerCommand line applicationAllows Ext2 Client Manger interface accessNot used by other applications500 lines of code Ext2 ControlCore Ext2 file system.Separate instance (SIP) for each mount point.Exports Directory Service Provider interfaceClients open files and directories by attaching a communication channelInternally paired with an Inode.Reads implemented, Writes in progress2400 Lines of codeExt2FsClient wants to read file /mnt/a/b.txtExt2 mounted at /mntApp --CH0-->SNS: AppSNS: AppExt2Fs: AppExt2Fs: App