Publicidad

sábado, 8 de noviembre de 2008

Bibliotecas-(programacion)

Hola que tal compañeros les mando esta información sobre bibliotecas que va a ser uno de los temas que vamos a ver mas adelante....saludos...espero y les guste

Yrvin ossiel dorantes Carreon

Bibliotecas

una biblioteca (o librería) es un conjunto de subprogramas utilizados para desarrollar software. Las bibliotecas contienen código y datos, que proporcionan servicios a programas independientes, es decir, pasan a formar parte de éstos. Esto permite que el código y los datos se compartan y puedan modificarse de forma modular. Algunos programas ejecutables pueden ser a la vez programas independientes y bibliotecas, pero la mayoría de éstas no son ejecutables. Ejecutables y bibliotecas hacen referencias (llamadas enlaces o links) entre sí a través de un proceso conocido como enlace (o link), que por lo general es realizado por un software denominado enlazador o linker.

La mayoría de los sistemas operativos modernos proporcionan bibliotecas que implementan la mayoría de los servicios del sistema. De esta manera, estos servicios se convierten en una "materia prima" que cualquier aplicación moderna espera que el sistema operativo ofrezca. Como tal, la mayor parte del código utilizado por las aplicaciones modernas se ofrece en estas bibliotecas.

Tipos de bibliotecas

Bibioteca estàtica

Históricamente, las bibliotecas sólo podían ser estáticas. Una biblioteca estática, también conocido como archivo, consiste en un conjunto de rutinas que se copian en una aplicación por el compilador o el enlazador, produciendo archivos con código objeto y un fichero ejecutable independiente. Este proceso, y el archivo ejecutable, se conoce como una construcción estática de la aplicación objetivo. La dirección real, las referencias para saltos y otras llamadas a rutinas se almacenan en una dirección relativa o simbólica, que no puede resolverse hasta que todo el código y las bibliotecas son asignadas a direcciones estáticas finales.

El enlazador resuelve todas las direcciones no resueltas convirtiéndolas en direcciones fijas o relocalizables (desde una base común) cargando todo el código y las bibliotecas en posiciones de memoria en tiempo de ejecución. Este proceso de enlazado puede durar incluso más tiempo que el proceso de compilación, y debe ser realizado cada vez que alguno de los módulos es recompilado. La mayoría de los lenguajes compilados tienen biblioteca estándar (por ejemplo, la librería estándar de C), pero los programadores también pueden crear sus propias bibliotecas personalizadas. Los compiladores comerciales proporcionan tanto las bibliotecas estándar como las personalizadas.

Un enlazador pueden trabajar sobre tipos específicos de ficheros objeto, y por lo tanto requiere tipos específicos (compatibles) de bibliotecas. Los ficheros objeto recopilados en una biblioteca pueden distribuirse y utilizarse fácilmente. Un cliente, ya sea un programa o una biblioteca de subrutinas, accede a una biblioteca objeto referenciando sólo por su nombre. El proceso de enlazado resuelve las referencias buscando en las bibliotecas de el orden dado. Por lo general, no se considera un error si un nombre puede encontrarse varias veces en un determinado conjunto de las bibliotecas.

Bibliotecas dinámicas

Enlace dinámico significa que las subrutinas de una biblioteca son cargadas en un programa en tiempo de ejecución, en lugar ser enlazadas en tiempo de compilación, y se mantienen como archivos independientes separados del fichero ejecutable del programa principal. El enlazador realiza una mínima cantidad de trabajo en tiempo de compilación, registra que rutinas de la biblioteca necesita el programa y el índice de nombres o números de las rutinas en la biblioteca. La mayor parte de la labor de enlazado se realiza en el momento en que la aplicación se carga (tiempo de carga o loadtime) o durante la ejecución (tiempo de ejecución o runtime). El necesario código enlazado, llamado por el cargador, es de hecho parte del sistema operativo subyacente. En el momento adecuado el cargador localiza las bibliotecas en el disco y añade los datos relevantes de éstas en el espacio de memoria del proceso.

Algunos sistemas operativos sólo pueden enlazar una biblioteca en tiempo de carga, antes de que el proceso comience su ejecución, otros son capaces de esperar hasta después de que el proceso haya empezado a ejecutarse y enlazar la biblioteca sólo cuando efectivamente se hace referencia a ella (es decir, en tiempo de ejecución). Esto último se denomina "retraso de carga". En cualquier caso, esa biblioteca es una biblioteca enlazada dinámicamente.

El enlace dinámico, por su naturaleza, tiene tan sólo las limitaciones establecidas por las licencias de software.

Los plugins son un uso común de las bibliotecas enlazadas dinámicamente, que son especialmente útiles cuando unas bibliotecas pueden ser sustituidas por otras con una interfaz similar, pero diferente funcionalidad. Se puede decir que un software tiene una "arquitectura de plugin" si utiliza bibliotecas con una funcionalidad básica con la intención de que puedan ser sustituidas. Sin embargo, el uso de las bibliotecas enlazadas dinámicamente en la arquitectura de una aplicación no significa necesariamente que puedan ser sustituidas.

El enlace dinámico se desarrollo originalmente en los sistemas operativos Multics a partir de 1964. Se trataba de una característica del MTS (Michigan Terminal System), construido a finales de los 60.[1] En Microsoft Windows, las bibliotecas enlazadas dinámicamente se denominan DLLs (Dynamic Linking Library).

No hay comentarios: