B e g i n s
Número 01
La Revista de Software Libre y Código Abierto
MARZO 2006
PROGRAMACION
Biblioteca en C
DESKTOP
Gnome 2.14
HOMO INSIPIENS
Open Document
Project
TIPS
¿Se te olvidó la
password de root?
TESTIMONIOS
Linux desde
Windows
Desktop
Gnome 2.14
Editorial
Bienvenidos
Con esto queremos dar inicio a Begins, revista que tiene por objetivo
tratar temas de Software Libre y Código Abierto.
Se ha realizado un esfuerzo tremendo para llegar a este primer número
y ansiando que no sea el último.
Esperamos poder llegar a los lectores que se interesen en las materias
que tiene por objetivo la revista.
Invitamos que envíen sus sugerencias , comentarios y dejamos la
puerta abierta para los interesados en participar en la construcción de la
revista ya sea enviando algún articulo o cualquier aporte que sea de
utilidad para los próximos números que deseamos lograr llevar a cabo
en un futuro cercano.
Editorial
[email protected]
Redacción
Dionisio Fernández
[email protected]
Alvaro Parra
[email protected]
Rodrigo Ramírez
[email protected]
Diseño
Luis Alvarez Alday
[email protected]
www.muestrate.cl
Begins fue realizado con
OpenOffice Impress 2.0
"Copyright (c) 2006 LinuxChillan. Se otorga permiso para copiar, distribuir y/o modificar este documento bajo los términos de la Licencia de
Documentación Libre de GNU, Versión 1.2 o cualquier otra versión posterior publicada por la Free Software Foundation; sin Secciones Invariantes
ni Textos de Cubierta Delantera ni Textos de Cubierta Trasera. Puedes consultar una copia de la licencia en http://www.gnu.org/copyleft/fdl.html".
Begins
Página 01
Contenidos
Programación en Bibliotecas C
A veces la utilización de bibliotecas nos ayudan la tarea de programación
porque nos permite la re utilización de rutinas (procedimientos y funciones)
en diferentes
programas que se desarrollen...
Gnome 2.14
El pasado 15 de Marzo la comunidad linuxera disfruto del lanzamiento de la
nueva versión de Gnome 2.14 siguiendo su costumbre al sexto mes fue
liberada.
Homo Insipiens
Alguna vez te has preguntado como puedes compartir información con el
resto del mundo sin que tengas que pagar una licencia determinada o ser un
delincuente utilizando los programas sin pagar esta?...
Tip's
¿Se te olvidó o perdiste la password de ROOT? A continuación se detallará
métodos para esos casos que has perdido u olvidado la password de root en
un Sistema Operativo con kernel Linux(SO/Linux).
Página 03
Página 05
Página 06
Página 08
Testimonios
Linux desde Windows, soy un usuario que habitualmente utiliza "Windows"...
Página 09
Editando Begins, cuando se me pidió colaborar con el diseño de la revista
Begins, lo primero que se me vino a la mente fue “¿en que formato?”...
Página 02
Begins
Programación
Programación de bibliotecas en C
“ Programar una biblioteca puede parecer una tarea algo complicada o
difícil pero realizar esto es sumamente fácil”
imprimir.c
A veces la utilización de bibliotecas nos ayudan la tarea de
programación porque nos permite
rutinas
funciones) en diferentes programas que se
(procedimientos y
desarrollen sin estar incluyendo el código de estas rutinas al
programa.
reutilización de
la
Por lo tanto si tenemos rutinas que utilizamos de manera frecuente en
nuestros programas un buen método es crear bibliotecas con ellas.
Si no sabes que es un biblioteca o mal llamadas librerías (por su mala
traducción del ingles library) podemos decir que son un grupo de
funciones y procedimientos que se agrupan en un archivo para su
utilización por otro programa. Existen las estáticas y compartidas, las
primeras al momento de compilar nuestro programa se incluyen en él
las rutinas que utiliza de la biblioteca y en las compartidas se incluyen
tan solo referencias a las rutinas de la biblioteca, esto ultimo permite
que cuando un programa se ejecuta estas bibliotecas se carguen en
memoria la cual puede utilizarse por otros programas sin necesidad de
cargar estos trozos de código otra ves en memoria ,esto es contrario a
las estaticas porque las rutinas están insertas en el programa y se
cargan cada estos trozos de código que hacen lo mismo sin la
posibilidad de ser utilizados por otro programa. Programar un
biblioteca puede parecer una tarea algo complicada o difícil pero
realizar esto es sumamente fácil, nuestra demostración se basará en
la construcción de una biblioteca estática y otra compartida, dentro de
nuestra biblioteca incluiremos un procedimiento que imprimirá un
mensaje en pantalla el que será pasado por parámetro y una función
que nos entrega en calculo del factorial de un numero dado (pasado
por parámetro), para luego que estas rutinas sean llamadas desde un
programa de ejemplo.
El proceso de crear una bibliotecas es escribir nuestro código fuente,
compilar a código objeto el fuente y crear la biblioteca con los archivos
objetos.
Biblioteca estática
A continuación procederemos a escribir nuestras rutinas que serán
incluidas en la biblioteca, los archivo de las rutinas serán factorial.c e
imprimir.c
Begins
#include <stdio.h>
void imprimir_en_pantalla (const char * mensaje){
printf ("%s", mensaje);
}
factorial.c
#include <stdio.h>
long factorial (long numero){
if (numero > 0)
return numero * factorial(numero 1);
else return 1;
}
Teniendo nuestros códigos fuentes los pasaremos a código objeto
utilizando gcc
gcc c imprimir.c factorial.c
Esto nos creara archivos terminados .o (imprimir.o y factorial.o)
Ahora procederemos a crear nuestra biblioteca estática con nuestros
archivos de
llamaremos
libejemploestatica.a
código objeto, a
la biblioteca
la
ar rsc libejemploestatica.a imprimir.o factorial.o
Esto último lo que hizo es crear el archivo de la biblioteca (opcion c),
introducir los archivos objeto al archivo creado (opción r) y por ultimo
crea un índice de los módulos (opción s), esto ultimo permite que el
linker (ld) al momento de compilar (ld es llamado por gcc) no tenga que
leerse toda la biblioteca completa ya que se agregan los índices y
descripción de los módulos. El proceso de crear el índice de los módulos
también se pude realizar con ranlib.
Página 03
Programación
miprograma.c
#include <stdio.h>
#include "libejemploestatica.h"
int main(){
printf("Programa ejemplo de utilización de biblioteca \n");
imprimir_en_pantalla("Vamos a calcular factorial \n");
printf ("El valor del factorial de 4 es : %i \n", factorial(4));
}
Ahora nos falta crear nuestro archivo de cabecera, los que
tienen terminación .h, en este archivo se incluirán las
llamadas a las rutinas de la biblioteca y es una manera
elegante porque también puedes incluir estas llamadas en el
programa que las vas utilizar.
archivo de cabecera libejemploestatica.h
extern void imprimir_en_pantalla (const char *);
extern long factorial (long);
No es necesario que el archivo de cabecera y biblioteca sean
iguales antes de su terminación ALGO.
Listo lo anterior realizaremos nuestro programa de ejemplo
de utilización de las rutinas de la biblioteca.
Y por ultimo compilar a ejecutable nuestro programa
utilizando la biblioteca
gcc o programa_ejecutable miprograma.c L.
lejemploestatica
Se puede observar que con la opción L le indicamos donde
estará nuestro archivo de cabecera y por lo tanto el . indicar
el directorio actual, también lo que corresponde l a la
biblioteca y en caso de SO c/Linux
llevan prefijo lib por eso no se antepone y fue la razón del
nombre que le dimos anteriormente. Al caso anterior hubiera
sido mas elegante haber creado el directorio include y lib
donde en include iría nuestro archivo de cabecera y lib la
biblioteca,
Página 04
para haber compilado siguiendo ese caso debería haber
hecho de la siguiente forma
Página 03
$ gcc o programa_ejecutable miprograma.c I./include
L./lib lejemploestatica
Biblioteca compartida
Siguiendo con el ejemplo anterior solo tenemos que hacer
lo siguiente para crear nuestra código objeto debemos
hacer de esta forma
gcc c fPIC factorial.c imprimir.c
la generación de la biblioteca compartida la cual tendrá
ahora la extensión .so
gcc shared o libejemplocompartida.so factorial.o imprimir.o
Y por último
compilado con nuestra biblioteca compartida
la generación de nuestro ejecutable
gcc o programa_ejecutable miprograma.c L.
lejemplocompartida
Eso sería todo, cualquier duda o comentario pueden
realizarlo al email
R o d r i g o R a m í r e z N .
[email protected]
Begins
Desktop
El pasado 15 de Marzo la comunidad linuxera disfruto del lanzamiento de la
nueva versión de Gnome 2.14 siguiendo su costumbre al sexto mes fue
liberada.
Esta vez los cambios no se centraron en lo estético del Escritorio más bien en
lo que pasa por debajo de este mejorando significativamente el rendimiento,
como ejemplo podemos ver que se optimizo el renderizado del texto, manejo
de memoria y la optimización de variadas aplicaciones. El hecho de que
renderice más rápido el texto y que tenga un mejor manejo de memoria
beneficia completamente a las aplicaciones hechas para Gnome y a las
GTK+.
Acá se puede apreciar el tiempo entre Gnome 2.12 y Gnome 2.14.
Claro que nunca hay que dejar de
implementar nuevas
funcionalidades, como es la inclusión de un mejor sistema de
búsqueda implementándolo en Nautilus ahora con CTRL + F
aparece el dialogo de búsqueda que además se complementa con
Beagle en lo que es la búsqueda para llevarla a un nivel de
exactitud que da mucho gusto.
Por otra parte algunas aplicacione
Comentarios de: Begins 01 200604 (0)
No hay comentarios