Logo Studenta

Resumo de Informática Básica (38)

¡Estudia con miles de materiales!

Vista previa del material en texto

Este  proceso  y  el  archivo  ejecutable  se  conocen  como  compilación  estática  de  la  aplicación  de  
destino.  En  este  caso,  la  biblioteca  simplemente  actúa  como  un  contenedor  para  archivos  de  código  
objeto  que  no  difieren  (excepto  semánticamente)  de  los  archivos  objeto  intermedios  producidos  
durante  la  etapa  previa  de  compilación  del  programa.
Las  bibliotecas  dinámicas,  vinculadas  dinámicamente  o  de  vínculo  dinámico  son  archivos  que  
contienen  código  objeto  construido  independientemente  de  su  ubicación.
Históricamente,  las  bibliotecas  sólo  podían  ser  estáticas.  Una  biblioteca  estática,  también  conocida  
como  archivo,  es  un  archivo  contenedor  con  varios  archivos  de  código  objeto  empaquetados,  que  en  
el  proceso  de  vinculación  durante  la  compilación  se  copiarán  y  reubicarán  (si  es  necesario)  en  el  
archivo  ejecutable  final,  junto  con  el  resto  del  archivo.  archivos  fuente  código  objeto.
Bibliotecas  dinámicas
Bibliotecas  estáticas
Por  otro  lado,  cuando  la  aplicación  en  ejecución  requiere  acceso  a  las  rutinas  almacenadas  en  una  
biblioteca  dinámica  y  ejecuta  la  función  sketch,  el  cargador  de  enlace  dinámico  podrá  reemplazar  
esta  llamada  con  la  función  real  de  la  biblioteca  dinámica,  cargándola  en  la  memoria  si  ya  no  lo  era,  
y  mapeando  las  páginas  de  eso  en  el  espacio  de  memoria  del  proceso  del  programa.
En  la  construcción  estática  de  archivos  compilados,  las  direcciones  de  las  subrutinas  ensambladas  
se  resuelven  en  tiempo  de  compilación  (más  específicamente,  en  la  fase  de  vinculación),  de  modo  
que  las  referencias  a  subrutinas  en  la  biblioteca  se  resuelven  estáticamente,  de  la  misma  manera  
que  las  referencias  a  subrutinas  en  la  biblioteca.  biblioteca  Referencias  a  cualquier  otra  función  del  
programa.  Así,  la  dirección  real,  las  referencias  a  saltos  y  otras  llamadas  a  rutinas  se  almacenan  en  
una  dirección  relativa  o  simbólica.
Por  lo  tanto,  deben  estar  disponibles  como  archivos  independientes  del  programa.
La  mayoría  de  los  sistemas  operativos  modernos  proporcionan  bibliotecas  que  implementan  servicios  
del  sistema.  De  esta  forma,  estos  servicios  se  han  convertido  en  una  "materia  prima"  que  cualquier  
aplicación  moderna  espera  que  le  proporcione  el  sistema  operativo.  Como  tal,  la  mayor  parte  del  
código  utilizado  por  las  aplicaciones  modernas  se  proporciona  en  estas  bibliotecas.
ejecutable  (normalmente  en  los  directorios  del  sistema).  En  el  proceso  de  vinculación  (en  tiempo  de  
compilación),  se  genera  un  archivo  ejecutable  con  notas  de  qué  bibliotecas  dinámicas  se  necesitan  
(pero  no  dónde  encontrarlas)  y  funciones  de  "sketch"  que  se  encargan  de  delegar  la  llamada  a  la  
función  del  cargador  dinámico.
que  están  preparados  para  ser  solicitados  y  cargados  en  tiempo  de  ejecución  por  cualquier  programa,  
en  lugar  de  tener  que  estar  previamente  vinculados  en  tiempo  de  compilación.
Las  bibliotecas  se  pueden  vincular  a  un  programa  (u  otra  biblioteca)  en  diferentes  puntos  de  desarrollo  
o  ejecución,  dependiendo  del  tipo  de  vínculo  que  se  quiera  establecer,  como  se  detalla  en  la  sección  
"Tipos".
Machine Translated by Google
Machine Translated by Google

Continuar navegando