欢迎来到天天文库
浏览记录
ID:34317080
大小:748.62 KB
页数:47页
时间:2019-03-04
《how to write shared libraries.pdf》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、HowToWriteSharedLibrariesUlrichDrepperdrepper@gmail.comDecember10,2011AbstractToday,sharedlibrariesareubiquitous.Developersusethemformultiplereasonsandcreatethemjustastheywouldcreateapplicationcode.Thisisaproblem,though,sinceonmanyplatformssomeadditionalte
2、chniquesmustbeappliedeventogeneratedecentcode.Evenmoreknowledgeisneededtogenerateoptimizedcode.Thispaperintroducestherequiredrulesandtechniques.Inaddition,itintroducestheconceptofABI(ApplicationBinaryInterface)stabilityandshowshowtomanageit.1Preface1.1ALit
3、tleBitofHistoryThebinaryformatusedinitiallyforLinuxwasana.outForalongtime,programmerscollectedcommonlyusedvariant.Whenintroducingsharedlibrariescertaindesigncodeinlibrariessothatcodecouldbereused.Thissavesdecisionshadtobemadetoworkinthelimitationsofdevelop
4、menttimeandreduceserrorssincereusedcodea.out.Themainacceptedlimitationwasthatnoreloca-onlyhastobedebuggedonce.Withsystemsrunningtionsareperformedatthetimeofloadingandafterward.dozensorhundredsofprocessesatthesametimereuseThesharedlibrarieshavetoexistinthef
5、ormtheyareofthecodeatlink-timesolvesonlypartoftheproblem.usedatrun-timeondisk.Thisimposesamajorrestric-Manyprocesseswillusethesamepiecesofcodewhichtiononthewaysharedlibrariesarebuiltandused:everytheyimportforlibraries.Withthememorymanagementsharedlibrarymu
6、sthaveafixedloadaddress;otherwiseitsystemsinmodernoperatingsystemsitisalsopossiblewouldnotbepossibletogeneratesharedlibrarieswhichtosharethecodeatrun-time.Thisisdonebyloadingthedonothavetoberelocated.codeintophysicalmemoryonlyonceandreusingitinmultipleproce
7、ssesviavirtualmemory.LibrariesofthisThefixedloadaddresseshadtobeassignedandthishaskindarecalledsharedlibraries.tohappenwithoutoverlapsandconflictsandwithsomefuturesafetybyallowinggrowthofthesharedlibrary.Theconceptisnotverynew.OperatingsystemdesignersItisthe
8、reforenecessarytohaveacentralauthorityforimplementedextensionstotheirsystemusingtheinfras-theassignmentofaddressrangeswhichinitselfisama-tructuretheyusedbefore.TheextensiontotheOScouldjorproblem.Butitgetswors
此文档下载收益归作者所有