josteinaj Skrevet 6. mai 2009 Del Skrevet 6. mai 2009 Jeg sitter og lurer litt på hvordan ting blir lastet i minnet når det kjøres... (i Linux) Hvis jeg kjører et program så lastes vel hele programmet i minnet før det kjøres... og hvis det ikke er plass i minnet får det vel rett og slett ikke lov til å kjøre vil jeg tro... (Jeg har problem med plass på en liten embedded Linux maskin). Hvordan er det med dynamiske biblioteker? de lastes vel også inn i minnet sammen med programmet... Hva om jeg kjører to programmer som er avhengig av samme dynamisk lenkede bibliotek? Lastes det delte biblioteket to ganger inn i minnet slik at det tar like stor plass i minnet som om programmene hadde vært lenket statisk? Lenke til kommentar
GeirGrusom Skrevet 7. mai 2009 Del Skrevet 7. mai 2009 Jeg er ikke helt sikker på hvordan det gjøres i Linux, men etter det jeg har forstått, støtter ikke Linux kernelen dynamisk lasting av biblioteker, men det er lagt inn som et eget program som fungerer som en wrapper (samme med drivere) Hvordan dette teknisk fungerer vet jeg ikke. Men ihvertfall så er en bieffekt av dette at en kan blande 32-bit og 64-bit biblioteker og drivere som kan sees på som uheldig. Lenke til kommentar
Sokkalf™ Skrevet 8. mai 2009 Del Skrevet 8. mai 2009 Shared libraries (som ordet "shared" impliserer) vil kunne bli delt mellom programmer, så de (eller ihvertfall deler av dem) kun tar plass i minnet én gang. @GeirGrusom: Du tenker på "linux loaderen", altså ld-linux.so? Jeg er ikke sikker på hvordan denne fungerer sånn teknisk sett, men den har vel ikke noe å gjøre med drivere. Drivere kan såvidt jeg kan skjønne lastes dynamisk av kernel, og du kan ikke blande 32-bit og 64-bit drivere. Lenke til kommentar
GeirGrusom Skrevet 8. mai 2009 Del Skrevet 8. mai 2009 I see. Vel, da er jeg blitt feilinformert ^^ Lenke til kommentar
josteinaj Skrevet 8. mai 2009 Forfatter Del Skrevet 8. mai 2009 (...) de (eller ihvertfall deler av dem) kun tar plass i minnet én gang. (...) Takk! Det var det jeg lurte på Lenke til kommentar
jonnor Skrevet 23. mai 2009 Del Skrevet 23. mai 2009 På Linux og andre unix lignende systemer er dynamisk linkede biblioteker nesten utelukkende delte. Både på disk, og i minne. En fin introduksjon finner du her: http://www.ibm.com/developerworks/linux/li...y/l-shlibs.html Det du må passe på er at dine to applikasjoner faktisk linker til samme bibliotekfil, spesielt at det er samme versjon. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå