We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Loupe: Designing Application-driven Compatibility Layers in Custom Operating Systems

00:00

Formal Metadata

Title
Loupe: Designing Application-driven Compatibility Layers in Custom Operating Systems
Title of Series
Number of Parts
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Providing support for mainstream applications is fundamental for a new/custom OS to have impact in the short and long term. This is generally achieved through the development of a compatibility layer, currently an ad-hoc and unoptimized process that involves a vast amount of unnecessary engineering effort. There is a need for efficient methods to measure precisely what OS features are really required by a given set of target applications, gathering results that can help drive the development of compatibility layers by pinpointing what features should be implemented in priority. In this talk I will present a streamlined methodology to optimize the development of the OS features required to build a compatibility layer in order to support a set of target applications, focusing on the system calls of the Linux ABI. To avoid engineering effort overestimation, we rely on dynamic analysis. The methodology revolves around a tool called Loupe that measures, for every system call invoked by an application processing an input workload (e.g. benchmark, test suite, etc.), which ones really need to be implemented and which ones can be faked/stubbed/partially implemented. Given a set of applications and input workloads, Loupe can compute for a given OS an optimized compatibility layer development plan, aiming to support as many applications as possible, as early as possible. We analyze Loupe's measurements over a wide (100+) set of applications, and demonstrate in particular that the effort needed to provide compatibility is significantly lower than that determined by previous works using static analysis: our study shows that as much as 40-60\% of system calls found in application code are not even needed to successfully run meaningful workloads and even full test suites.
System programmingOperations researchPrototypeVector potentialNumberSource codeBinary codePhysical systemProcess (computing)BuildingKernel (computing)Loop (music)Standard deviationCartesian coordinate systemBitLibrary (computing)Slide ruleRepository (publishing)Software developerMultiplication signBinary fileWordPhysical systemMeasurementCodeProcess (computing)CASE <Informatik>Source codeLevel (video gaming)Different (Kate Ryan album)Binary codeImplementationMereologyOperating systemEmulatorGame controllerRevision controlHypermediaStudent's t-testCrash (computing)System callInformation securityTerm (mathematics)NumberAbstractionSelf-organizationFlow separationPrototypeProjective planeMathematical optimizationOperator (mathematics)Machine learningSet (mathematics)Total S.A.Uniqueness quantificationForcePoint cloudDomain nameArmMultitier architectureDampingParameter (computer programming)Branch (computer science)Computer animation
Process (computing)BuildingOrganic computingImplementationLatent heatMathematical analysisKolmogorov complexityInformation securityInstallation artCodePhysical systemSoftware developerObservational studyStability theoryFile formatCompilation albumOverhead (computing)Web pageLine (geometry)System callSource codeAerodynamicsStatisticsMeasurementMobile appDatabaseWorkloadScripting languageView (database)outputGastropod shellKernel (computing)ImplementationMessage passingPhysical systemSystem callLoop (music)Operating systemPlanningSubsetoutputCodeCore dumpInheritance (object-oriented programming)Cartesian coordinate systemRight angleLevel (video gaming)Electronic mailing listMathematical analysisOnline helpBinary codeBitMathematical optimizationWeb pageSet (mathematics)HookingMagnifying glassPoint (geometry)Stress (mechanics)Operator (mathematics)Uniqueness quantificationProcess (computing)Semiconductor memoryPresentation of a groupMobile appServer (computing)Web 2.0Generic programmingInterface (computing)Kernel (computing)Library (computing)1 (number)Software developerGame controllerRepository (publishing)MeasurementOrder (biology)ResultantStudent's t-testView (database)Point cloudDatabaseComputer fileFluid staticsWorkloadStandard deviationCASE <Informatik>EstimationHoaxDescriptive statisticsSource codeMultilaterationComputer animation
Mobile appType theoryComplete metric spaceScripting languageCodeComputer fileServer (computing)Client (computing)WorkloadMathematical analysisProxy serverSystem callEstimationAerodynamicsImplementationBinary codeFluid staticsPhysical systemEmailElectric currentLimit (category theory)Configuration spaceSystem programmingChannel capacityMathematical analysisPhysical systemComputer fileEntire functionCartesian coordinate systemScripting languageHoaxSystem callSuite (music)Mobile appRight angleSoftware testingClient (computing)ResultantCASE <Informatik>Ferry CorstenWrapper (data mining)Library (computing)Cloud computingLevel (video gaming)BenchmarkOpen setArithmetic meanBitBinary codeCodeType theoryCrash (computing)Complete metric spaceMessage passingNumberSubsetReading (process)Operating systemDifferent (Kate Ryan album)DatabaseView (database)BuildingServer (computing)Letterpress printingError messageFunction (mathematics)AdditionPlanningSource codeFluid staticsImplementationDemo (music)Multiplication signCuboidLimit (category theory)EstimationRevision controlTerm (mathematics)Software developerCustomer relationship managementMaxima and minimaDynamical systemGoodness of fitWorkloadStandard deviationSet (mathematics)EmailComputer animation
RootkitSequenceNormal (geometry)Level (video gaming)System callScripting languageSoftware testingMultiplication signParameter (computer programming)Loop (music)Binary fileBinary codeComputer configurationComputer animation
Normal (geometry)Gastropod shellSoftware testingLoop (music)Scripting languageFunction (mathematics)Parameter (computer programming)Standard deviationComputer animation
StatisticsRootkitDatabaseMathematical analysisGamma functionAerodynamicsEmailGEDCOMSoftware testingCache (computing)Fluid staticsBuildingWage labourSoftware testingCASE <Informatik>Mobile appSet (mathematics)Different (Kate Ryan album)Multiplication signBitPhysical system
System callVertex (graph theory)Streaming mediaCore dumpProxy serverGamma functionExpressionWorld Wide Web ConsortiumDatabaseGEDCOMComputer fileResultantHoaxCartesian coordinate systemComputer animation
MeasurementBuildingProcess (computing)Streamlines, streaklines, and pathlinesPhysical systemWorkloadMeasurementSemiconductor memoryLevel (video gaming)Computer programmingOperating systemFile systemSystem callVirtualizationFlagComputer animation
Program flowchart
Transcript: Englisch(auto-generated)