Linux与Windows的设备驱动差异比较课件_第1页
Linux与Windows的设备驱动差异比较课件_第2页
Linux与Windows的设备驱动差异比较课件_第3页
Linux与Windows的设备驱动差异比较课件_第4页
Linux与Windows的设备驱动差异比较课件_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

AComparativeStudyoftheLinuxandWindowsDeviceDriverArchitectureswithafocusonIEEE1394(highspeedserialbus)driversMelekamTsegayeg98t4414@campus.ru.ac.zaSupervisorsProf.RichardFoss,BradleyKlinkradtAComparativeStudyoftheLin1OverviewTheLinuxandWindowsdriverarchitecturesTheLinuxandWindowsIEEE1394driverstacksDriverdevelopmentonthetwoplatformsResultsofthestudyOverviewTheLinuxandWindows2Whythestudywasconducted?MicrosoftWindowsandLinuxTwoofthemostpopularoperatingsystemsNopreviouscomparisonsoftheirdriverarchitecturesdonebyotherresearchersIEEE1394(firewire)PopularbusofferinghighdatatransferratesActiveresearchareafortheCSdepartment’sAudioEngineeringGroupWhythestudywasconducted?M3IEEE1394DataTransferratesof100,200and400MbpsIsochronousmodeoftransferGuaranteedbandwidth(80%)AsynchronousmodeoftransferGuaranteedpacketdelivery(20%ormore)Fullyplug‘nplayIEEE1394DataTransferrateso4IEEE1394ConsumerProductsIEEE1394ConsumerProducts5DeviceDriversAdriverisapieceofsoftwarethatextendsakernel’sfunctionalityDriversenableapplications(throughthekernel)totransferdatatoandfromadevicetocontroltheadevicetoallowmodificationofitsattributesComposedofasetofroutinesthatakernelcallsatappropriatetimese.g.read/writeDeviceDriversAdriverisapi6TypicaldriverroutinesAdriverwouldimplementInitialisationCleanupOpenReadWriteI/OControl(ioctl)CloseTypicaldriverroutinesAdrive7TheWindowsdriverarchitectureStandardmodelTheWindowsDriverModel(WDM)bus,functional&filterdriversPnP&PowermanagementCommunicationI/Orequestpackets(IRPs)TheWindowsdriverarchitectur8TheLinuxdriverarchitectureNostandarddrivermodelDriversaremodulesNoPnP&PowermanagementmessagedispatchingCommunicationthroughdirectfunctioncallsTheLinuxdriverarchitectureN9SidebysidecomparisonofthetwodriverarchitecturesLinuxWindowsSidebysidecomparisonofthe10IEEE1394driverstacksTheWindowsIEEE1394stackclosedsourcemaintainedbyMicrosoftstableTheLinuxIEEE1394stackopensourcemaintainedbytheLinux1394community(privateindividuals)taggedexperimentalIEEE1394driverstacksTheWin11TheWindowsIEEE1394stackHostcontrollerBusdriverClientdriversCommunicationI/Orequestblock(IRB)TheWindowsIEEE1394stackHos12TheLinuxIEEE1394stackHostcontrollerBusdriversClientdriversCommunicationdirectfunctioncallsDirectdriverpossibleTheLinuxIEEE1394stackHost13Sidebysidecomparisonofthetwo

IEEE1394stacksLinuxWindowsSidebysidecomparisonofthe14TheWindowsIEEE1394implementationTheWindowsIEEE1394implemen15TheLinuxIEEE1394implementationTheLinuxIEEE1394implementa16WhatoperationsshouldIEEE1394clientdriversprovide?AsynchronousOperationsReadWriteLockListenRegisterAsynchronousListeningDeregisterAsynchronousListeningIsochronousoperationsListenTalkAsynchronousstreaming WhatoperationsshouldIEEE1317WhatoperationsshouldIEEE1394clientdriversprovide?(Continued)BusresethandlingRegisterBusResetHandlerGenerateSoftBusResetObtainBusInformation(e.g.nodecount)LocalconfigurationROMmanipulationNetworktroubleshootingPingingofnodesWhatoperationsshouldIEEE1318DeviceDriverDevelopmentEnvironmentsDeviceDriverDevelopmentEnvi19IssuestobeconsideredwhencreatingdriversMemorymanagementThekernelprovidesmemoryallocation/de-allocationroutinesHastwopoolsofmemory(swappable,non-swappable)DatastructuresThekernelprovidesimplementationsforqueues,lists,stacksSynchronisationwithspinlocks,mutexes,semaphores,signalobjectsIssuestobeconsideredwhenc20Issuestobeconsideredwhencreatingdrivers(Continued)Driversroutinesmustbere-entranti.e.shouldbeexecutablebymultiplethreadswithnoproblemsavoidrecursionHardwareAbstractionLayeruseHALroutinesprovidedbythekerneltoaccesshardwareIssuestobeconsideredwhenc21MapofsoftwareproducedduringthisstudyMapofsoftwareproduceddurin22Windowsraw1394driverWindowsraw1394driver23Linuxraw1394-2driverLinuxraw1394-2driver24LinuxIeee1394diagLinuxIeee1394diag25DriverTestsTestswereruntodeterminehighestdatatransferratesthatcanbeachievedbyeachoftheIEEE1394drivershowclosethesecametothetheoreticalmaximumof50MB/sBusanalyserusedtomeasurethedurationofdatatransferstheamountofdatatransferredCalculatedthedatatransferrateinMB/sDriverTestsTestswererunto26TestresultsIsochronousmodeWindowsraw13948.9MB/spacketsize1024bytesLinuxraw13944.5MB/spacketsize512bytesIsochronousmode(buffered)Linuxraw1394-28.9MB/spacketsize1024bytesWindowsraw139417.7MB/spacketsize2048bytesTestresultsIsochronousmode27Testresults(continued)DriversfrombothLinuxandWindowsdonottransferdataatarateclosetothetheoretical50MB/sTheyachievealmosthalfthatduetothePCIbusbottleneck(theoretical132MB/s)InpracticehavethatavailablesharedbyallI/OdevicesattachedtothePCIbusThePCIbushaslatencyproblemsdriverimplementationmaynotbeefficientTestresults(continued)Driver28ConclusionAcomparisonoftheWindowsandLinuxdriverarchitectureshasshownthatDriversforthetwoplatformhavesimilarcomponentscomposedofroutinesforperformingI/OanddevicecontroldriversaremoduleswhichareloadableatruntimeWindowshasaformallydefineddrivermodel,Linuxdoesnot.PnPandpowermanagementsupportintegratedintheWindowsarchitecture,notsoinLinuxConclusionAcomparisonofthe29Conclusion(continued)AcomparisonoftheWindowsandLinuxIEEE1394stackshasshownthatTheirIEEE1394driverstacksarebrokenupintosimilarlayershostcontroller,busandclientdriverlayersEachstackprovidesthestandardIEEE1394operations(bothasynchronousandisochronous)TheLinuxIEEE1394stackisopensourcewhiletheWindowsstackisproprietaryEasiertocreateIEEE1394driversforLinuxthanWindowssinceallsourcecodeisavailableConclusion(continued)Acompar30FutureworkIEEE1394.1bridgeawarenessIEEE1394.1allowsextendingtheno.ofnodesto64Kinsteadofthecurrent63stillindraftphaseTheWindowsandLinuxIEEE1394driverdevelopersdidnottakeintoaccountIEEE1394.1bridgingintheirdesignThisstudyidentifiedbridgeawarenessrequirementsimplementationpossiblefortheLinux1394stacknotfortheWindows1394stack(closedsource)FullIEEE1394.1implementationandtestingnotdoneduringthisstudynoIEEE1394.1bridginghardwareavailablethestandardmaychangeFutureworkIEEE1394.1bridge31Questions?Questions?32AComparativeStudyoftheLinuxandWindowsDeviceDriverArchitectureswithafocusonIEEE1394(highspeedserialbus)driversMelekamTsegayeg98t4414@campus.ru.ac.zaSupervisorsProf.RichardFoss,BradleyKlinkradtAComparativeStudyoftheLin33OverviewTheLinuxandWindowsdriverarchitecturesTheLinuxandWindowsIEEE1394driverstacksDriverdevelopmentonthetwoplatformsResultsofthestudyOverviewTheLinuxandWindows34Whythestudywasconducted?MicrosoftWindowsandLinuxTwoofthemostpopularoperatingsystemsNopreviouscomparisonsoftheirdriverarchitecturesdonebyotherresearchersIEEE1394(firewire)PopularbusofferinghighdatatransferratesActiveresearchareafortheCSdepartment’sAudioEngineeringGroupWhythestudywasconducted?M35IEEE1394DataTransferratesof100,200and400MbpsIsochronousmodeoftransferGuaranteedbandwidth(80%)AsynchronousmodeoftransferGuaranteedpacketdelivery(20%ormore)Fullyplug‘nplayIEEE1394DataTransferrateso36IEEE1394ConsumerProductsIEEE1394ConsumerProducts37DeviceDriversAdriverisapieceofsoftwarethatextendsakernel’sfunctionalityDriversenableapplications(throughthekernel)totransferdatatoandfromadevicetocontroltheadevicetoallowmodificationofitsattributesComposedofasetofroutinesthatakernelcallsatappropriatetimese.g.read/writeDeviceDriversAdriverisapi38TypicaldriverroutinesAdriverwouldimplementInitialisationCleanupOpenReadWriteI/OControl(ioctl)CloseTypicaldriverroutinesAdrive39TheWindowsdriverarchitectureStandardmodelTheWindowsDriverModel(WDM)bus,functional&filterdriversPnP&PowermanagementCommunicationI/Orequestpackets(IRPs)TheWindowsdriverarchitectur40TheLinuxdriverarchitectureNostandarddrivermodelDriversaremodulesNoPnP&PowermanagementmessagedispatchingCommunicationthroughdirectfunctioncallsTheLinuxdriverarchitectureN41SidebysidecomparisonofthetwodriverarchitecturesLinuxWindowsSidebysidecomparisonofthe42IEEE1394driverstacksTheWindowsIEEE1394stackclosedsourcemaintainedbyMicrosoftstableTheLinuxIEEE1394stackopensourcemaintainedbytheLinux1394community(privateindividuals)taggedexperimentalIEEE1394driverstacksTheWin43TheWindowsIEEE1394stackHostcontrollerBusdriverClientdriversCommunicationI/Orequestblock(IRB)TheWindowsIEEE1394stackHos44TheLinuxIEEE1394stackHostcontrollerBusdriversClientdriversCommunicationdirectfunctioncallsDirectdriverpossibleTheLinuxIEEE1394stackHost45Sidebysidecomparisonofthetwo

IEEE1394stacksLinuxWindowsSidebysidecomparisonofthe46TheWindowsIEEE1394implementationTheWindowsIEEE1394implemen47TheLinuxIEEE1394implementationTheLinuxIEEE1394implementa48WhatoperationsshouldIEEE1394clientdriversprovide?AsynchronousOperationsReadWriteLockListenRegisterAsynchronousListeningDeregisterAsynchronousListeningIsochronousoperationsListenTalkAsynchronousstreaming WhatoperationsshouldIEEE1349WhatoperationsshouldIEEE1394clientdriversprovide?(Continued)BusresethandlingRegisterBusResetHandlerGenerateSoftBusResetObtainBusInformation(e.g.nodecount)LocalconfigurationROMmanipulationNetworktroubleshootingPingingofnodesWhatoperationsshouldIEEE1350DeviceDriverDevelopmentEnvironmentsDeviceDriverDevelopmentEnvi51IssuestobeconsideredwhencreatingdriversMemorymanagementThekernelprovidesmemoryallocation/de-allocationroutinesHastwopoolsofmemory(swappable,non-swappable)DatastructuresThekernelprovidesimplementationsforqueues,lists,stacksSynchronisationwithspinlocks,mutexes,semaphores,signalobjectsIssuestobeconsideredwhenc52Issuestobeconsideredwhencreatingdrivers(Continued)Driversroutinesmustbere-entranti.e.shouldbeexecutablebymultiplethreadswithnoproblemsavoidrecursionHardwareAbstractionLayeruseHALroutinesprovidedbythekerneltoaccesshardwareIssuestobeconsideredwhenc53MapofsoftwareproducedduringthisstudyMapofsoftwareproduceddurin54Windowsraw1394driverWindowsraw1394driver55Linuxraw1394-2driverLinuxraw1394-2driver56LinuxIeee1394diagLinuxIeee1394diag57DriverTestsTestswereruntodeterminehighestdatatransferratesthatcanbeachievedbyeachoftheIEEE1394drivershowclosethesecametothetheoreticalmaximumof50MB/sBusanalyserusedtomeasurethedurationofdatatransferstheamountofdatatransferredCalculatedthedatatransferrateinMB/sDriverTestsTestswererunto58TestresultsIsochronousmodeWindowsraw13948.9MB/spacketsize1024bytesLinuxraw13944.5MB/spacketsize512bytesIsochronousmode(buffered)Linuxraw1394-28.9MB/spacketsize1024bytesWindowsraw139417.7MB/spacketsize2048bytesTestresultsIsochronousmode59Testresults(continued)DriversfrombothLinuxandWindowsdonottransferdataatarateclosetothetheoretical50MB/sTheyachievealmosthalfthatduetothePCIbusbottleneck(theoretical132MB/s)InpracticehavethatavailablesharedbyallI/OdevicesattachedtothePCIbusThePCIbushaslatencyproblemsdriverimplementationmaynotbeefficientTestresults(continued)Driver60ConclusionAcomparisonoftheWindowsandLinuxdriverarchitectureshasshownthatDriversforthetwoplatformhavesimilarcomponents

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论