Herramientas y utilidades Open Source - PowerPoint PPT Presentation

1 / 38
About This Presentation
Title:

Herramientas y utilidades Open Source

Description:

Herramientas de desarrollo b sicas en Linux. Basadas en los compiladores GNU, gcc ... Los m dulos se pueden cargar: Por configuraci n est tica del servidor. ... – PowerPoint PPT presentation

Number of Views:253
Avg rating:3.0/5.0
Slides: 39
Provided by: memnon
Category:

less

Transcript and Presenter's Notes

Title: Herramientas y utilidades Open Source


1
Herramientas y utilidades Open Source
  • Luis Suárez
  • Centro de Referencia Linux UAM-IBM

2
Agenda
  • Herramientas de desarrollo básicas en Linux.
  • Compiladores.
  • Bibliotecas.
  • Entornos de desarrollo.
  • Control de versiones.
  • Entornos gráficos. XWindow.
  • GNome.
  • KDE.
  • Samba.
  • Otras herramientas
  • Plataformas OSS compatibles .NET.
  • Herramientas de trabajo en grupo.
  • Suites de oficina

3
Herramientas de desarrollo básicas en Linux
  • Basadas en los compiladores GNU, gcc
  • El mejor compilador de C para arquitecturas PC.
  • Cumple con más estándares que cualquier otro
    compilador.
  • Permite generar código objeto con optimizaciones
    para las múltiples arquitecturas ( x86, ia-64,
    PowerPC, MIPS, R6000, M68000, ARM, Sparc, Alpha)
  • Incluye compilador de C / C / Objective C,
    Pascal, Fortran, ADA y Java
  • Se puede utilizar para generar programas
    ejecutables bajo Windows, utilizando las
    librerías cygwin.
  • Herramientas de depuración
  • gdb depurador con interfaz de comandos modo
    texto.
  • Interfaces gráficas para gdb xxgdb, ddd.
  • Análisis de programas en ejecución (profiler)
    gprof.

4
Bibliotecas de desarrollo
  • Bibliotecas estándar
  • glibc Biblioteca C que incluye estándares ISO C
    (ISO 9899/ANSI X3.159), Posix (ISO 9945), BSD,
    SystemV y XPG (X/Open Portability Guide).
  • libstdc. Biblioteca estándar C ISO 14882.
  • libgcj, para soporte de Java.
  • Existen múltiples bibliotecas de utilidades.
    Entre otras muchas, se puede destacar
  • libpthreads Biblioteca de hilos y semáforos
    POSIX.
  • libncurses Biblioteca de manejo de pantallas de
    texto con direccionamiento de posiciones.
  • libpcap Biblioteca de captura de paquetes de
    redes. Utilizada por herramientas de análisis de
    tráfico y sniffers.
  • libcrypt Biblioteca de criptografía.
  • libgsl Biblioteca de cálculo científico (GPL).
  • Bibliotecas gráficas sobre XWindow
  • GTK GIMP Toolkit. Diseñado como reemplazo de
    Motif. Base de Gnome.
  • Qt Desarrollada por Trolltech para su plataforma
    de desarrollo de GUIs. Base de KDE.

Herramientas de desarrollo
5
Generación e instalación de aplicaciones
  • Compilación de programas mediante gmake.
  • Macros, dependencias, compilación, enlace,
    instalación, borrado
  • autoconf
  • Produce un script de configuración (configure).
    Adapta los archivos genéricos de definición de
    una aplicación para compilar correctamente en una
    determinada plataforma.
  • automake
  • Genera un modelo de makefile interpretable por
    autoconf a partir de un modelo simple de
    dependencias.
  • libtool
  • Construye librerías compartidas adaptadas al
    sistema.
  • Gestores de paquetes instalables (rpm, apt)
  • Generación de paquetes instalables. Con scripts
    de pre y post instalación.
  • Gestión de instalación y mantenimiento de
    versiones, con verificación de dependencias.

Herramientas de desarrollo
6
Proceso básico de generación de una aplicación
automake
configure
makefile.am
makefile.in
makefile
.h.in
.h
autoconf
configure.in
configure
dependencias
makefile
rpm
Paquete instalable
gmake
fuentes
ejecutables
apt
gcc libtool
Pre-instalación
.h
Post-instalación
bibliotecas
Adaptado de la fuente http//sources.redhat.com/a
utobook/
Herramientas de desarrollo
7
Entornos de desarrollo integrados
  • Anjuta
  • Editor de textos que integra las herramientas GNU
    ( gcc, automake, autoconf, make y gdb ) en un
    entorno que hace más fácil el seguimiento de los
    cambios.
  • Permite desarrollar proyectos en varios lenguajes
    de programación.
  • Soporte para resaltar la sintaxis en función del
    lenguaje.
  • Visión de la estructura del directorio del
    proyecto.
  • Integración del depurador gdb con el texto.
  • Generación automática de los archivos necesarios
    para la configuración previa a la instalación del
    proyecto.
  • Kdevelop y QtDesigner
  • Facilita el desarrollo de aplicaciones con
    interfaz gráfica.
  • Características similares a Visual C.
    Programación visual arrastrando y soltando.
  • Emplean librería gráfica Qt, en lugar de MFC.

Herramientas de desarrollo
8
Entornos de desarrollo integrados. Anjuta
Herramientas de desarrollo
9
Entornos de desarrollo integrados. Kdevelop y
Qt-designer
Herramientas de desarrollo
10
Otros entornos de desarrollo Open Source
  • Eclipse
  • Framework de desarrollo desarrollado por IBM.
  • Existen multitud de PlugIns que le dan toda la
    funcionalidad necesaria.
  • NetBeans
  • Entorno de desarrollo visual para Java 2.
    Desarrollado por Sun.
  • Permite diseño de aplicaciones con componentes
    gráficas mediante la técnica arrastrar y
    soltar.
  • Glade Generador de interfaces gráficas sobre
    GTK y Gnome.
  • BloodShed Dev-C Entorno de desarrollo para gcc
    sobre MS Windows.
  • XBasic IDE y generador de interfaces gráficas
    multiplataforma.
  • Maguma studio (antes phpIDE) Entorno de
    desarrollo para php en Windows.

Herramientas de desarrollo
11
Control de versiones (I)
  • El control de versiones es especialmente
    necesario con el modelo de desarrollo de las
    aplicaciones de software libre, donde cientos de
    desarrolladores pueden estar trabajando con
    partes del mismo código
  • Se dispone de dos aplicaciones principales OSS
    para resolver este problema
  • Concurrent Version System, CVS
  • Es el más utilizado en la comunidad de software
    libre.
  • Mantiene todos los archivos fuente del proyecto
    en un servidor, almacenando los cambios que se
    producen entre cada una de las versiones.
  • Los usuarios trabajan de manera local y solo se
    aplican los cambios a los ficheros de desarrollo
    cuando todos los usuarios han terminado de
    trabajar con ellos.
  • Permite actualización compartida sobre archivos
    (unreserved check-out). Facilita integración de
    cambios y detección de conflictos.

Herramientas de desarrollo
12
Control de versiones (II)
  • Subversion Se crea como alternativa, mejora y
    evolución de CVS, para ofrecer todo lo que se
    echa en falta de CVS
  • Control de versiones de los directorios, cambios
    de nombre y meta-datos.
  • Atomicidad de los cambios de versión. Los números
    de versión se mantienen por revisión, no por
    fichero.
  • Utiliza Apache y WebDAV/DeltaV como servidor del
    repositorio.
  • Facilidad para crear nuevas ramas de desarrollo.
  • Diseño de librerías pensadas en el entorno
    cliente/servidor por capas, lo que evita los
    problemas de mantenimiento que tienen algunas de
    las aplicaciones asociadas a CVS.

Herramientas de desarrollo
13
Entornos gráficos. El entorno X-Window
  • XWindow es una Interfaz de Usuario Gráfica
    (Graphical User Interface, GUI) desarrollada por
    el Massachusetts Institute of Technology, MIT.
  • XFree86 es la versión de uso público de la
    Versión 11 Release 6 de Xwindows, disponible en
    muchas plataformas, Linux entre ellas.
  • Está estructurado en dos niveles
  • Servidor gráfico Programa ejecutado en la
    estación de trabajo que sirve recursos llamados
    Displays. Un Display es la combinación de un
    dispositivo gráfico de salida y uno (o varios)
    dispositivos de entrada.
  • Cliente Programa de aplicación, capaz de
    comunicarse a través del protocolo de TCP/IP con
    un servidor (local o remoto).
  • El sistema X-Window es por tanto transparente a
    la red. Sobre un mismo Display se pueden
    proyectar aplicaciones ejecutadas desde varios
    ordenadores distintos de manera simultánea.

14
Elementos del entorno X-Window
  • El servidor Controla la pantalla y los
    dispositivos de entrada / salida. Comunica con
    los clientes a través de TCP/IP (TCP well known
    port 6000 y siguientes).
  • API básica de clientes xlib. Funciones básicas
    de dibujo.
  • Widget toolkits Bibliotecas de elementos
    gráficos de alto nivel menús, botones, canvas,
    etc. Los más empleados Open Source son GTK y Qt.
  • Gestor de ventanas Cliente específico XWindow
    que controla la creación, destrucción,
    movimiento, cambio de tamaño, superposición de
    las ventanas. Ejemplos fvwm, Enlightenment,
    sawfish, kwm
  • Características y comparaciones en
    http//xwinman.org/.
  • El entorno de trabajo. Programa de gestión del
    escritorio. Estandarizan la interfaz de usuario
    de las aplicaciones. Los más extendidos son
  • GNU Network Object Model Environment, GNOME.
  • K Desktop Environment, KDE.
  • Alternativa ligera XFce.

XWindow
15
Arquitectura del servidor XFree86
  • Estructura modular con carga dinámica de módulos,
    similar al kernel.
  • Los módulos pueden, por lo general, ser
    independientes del sistema operativo.
  • Los módulos se pueden cargar
  • Por configuración estática del servidor.
  • Por especificación en el archivo de
    configuración.
  • Por ser necesarios para la carga de otro módulo.
  • La carga de un módulo tiene funciones para
    verificar que el módulo funcionará correctamente.
    Si fallan, el módulo no se inicia.
  • La funcionalidad de los módulos es diversa
    drivers, gestión fuentes, frame buffer

Fuente http//www.linux-mag.com/2000-09/gear_01
.html
XWindow
16
GNOME
  • Es un entorno de trabajo que permite a los
    usuarios un acceso sencillo a las funciones del
    ordenador. Incluye
  • Panel de arranque de aplicaciones y visualización
    de su estado.
  • Escritorio de trabajo.
  • Un conjunto de herramientas y aplicaciones
    estándar.
  • Un conjunto de convenciones que permiten la
    cooperación y consistencia entre las aplicaciones
    que contiene.
  • Es un entorno de distribución gratuita. Funciona
    en muchos sistemas Unix.
  • Construido sobre una infraestructura básica
    CORBA.
  • Basado en el widget toolkit GTK. Incluye
    bibliotecas de desarrollo adicionales propias
    para integrar aplicaciones en el entorno.

XWindow
17
Elementos de GNOME
XWindow
18
Arquitectura Gnome
GTK
Fuente
Fuente http//wiki.cs.uiuc.edu/cs427/thearchite
ctureofGNOME
XWindow
19
KDE
  • K Desktop Environment.
  • Es un entorno de trabajo similar a GNOME, que
    cubre las mismas funciones y de un modo similar.
  • Posee los mismos elementos para ejecutar
    aplicaciones y organizarlas en menús.
  • Herramientas de configuración del entorno y del
    gestor de ventanas similares a las proporcionadas
    por GNOME.
  • Las diferencias importantes con GNOME están al
    nivel de la arquitectura de componentes y no son
    apreciables por el usuario común.
  • KDE tiene un modelo de objetos que permite mayor
    integración de las aplicaciones desarrolladas con
    sus librerías.
  • Se pueden intercambiar aplicaciones y menús entre
    ambos entornos, así como acceder a aplicaciones
    propias de un entorno desde otro.
  • Las librerías Qt que utiliza KDE hacen que C
    sea el lenguaje indicado para realizar
    aplicaciones integradas con KDE.

XWindow
20
SAMBA Opening Windows to a wider world
  • SAMBA es la implementación para sistemas UNIX del
    protocolo SMB/CIFS para compartición de archivos
    e impresoras en red.
  • Permite la compartición de archivos en red entre
    sistemas operativos UNIX y cualquiera de las
    versiones de Windows.
  • Permite realizar autenticación de usuarios en
    dominios Windows.
  • Proporciona resolución de nombres de Windows
    (WINS).
  • Fácil de administrar, con posibilidades de
    configuración vía web.

21
Netbios sobre TCP/IP
Resolución Nombres
Datagramas
Netbios
Servicios Orientados a Conexión
TCP/IP
UDP137
TCP137
UDP138
TCP139
Servidor
Cliente
Samba
22
SAMBA como servidor de archivos
  • Permite que los usuarios accedan a los archivos e
    impresoras compartidas en la red
    independientemente de que utilicen un sistema
    UNIX, Apple OS X o Microsoft Windows.
  • Permite compartir archivos siguiendo el modelo de
    seguridad ACL de Windows NT/2000/XP.
  • Además aporta
  • Mayor fiabilidad.
  • Mayor rendimiento.
  • Sin costes de licencias.
  • Mayor independencia del hardware.

Samba
23
SAMBA como método de autenticación de usuarios en
la red
  • SAMBA permite realizar la autenticación de
    usuarios (tanto Linux como Windows) en el sistema
    a través de la red.
  • Permite utilizar un servidor LDAP para realizar
    la autenticación.
  • Permite actuar a un sistema Linux como
    controlador primario (Primary Domain Controller,
    PDC) de un dominio Windows, con la posibilidad de
    añadir servidores Windows o SAMBA como miembros
    del dominio
  • Si el PDC del dominio es un servidor SAMBA, se
    puede utilizar otro servidor SAMBA o Windows como
    servidor secundario (Backup Domain Controller,
    BDC) del mismo.
  • Debido a la falta de especificaciones de la base
    de datos Security Accounts Management (SAM) de
    Windows NT, aún no es posible utilizar un
    servidor SAMBA como BDC de un PDC Windows.
  • Soporta plenamente las características del perfil
    móvil de Windows. Sin embargo, con la versión
    actual de SAMBA aún no están soportadas todas las
    características de directorio activo incorporadas
    en Windows 2000.

Samba
24
SAMBA para usuarios Linux
  • SAMBA también resulta una alternativa a NFS en
    entornos UNIX en los que no son necesarias todas
    las características de ese sistema.
  • En entornos Linux permite montar los recursos
    compartidos y ejecutar comandos sobre ellos del
    mismo modo que NFS.
  • El perfil móvil no solo es aplicable a entornos
    Windows, sino que también es posible en entornos
    Linux con SAMBA, por tanto la movilidad de
    usuarios también se aplica a este sistema
    operativo
  • El soporte de SAMBA está integrado en los
    navegadores de archivos de los entornos de
    escritorio más comunes ( KDE y GNOME ), por lo
    que los usuarios inexpertos pueden acceder a los
    recursos compartidos del mismo modo que lo harían
    en Windows.

Samba
25
SAMBA casos de uso (I)
  • Servidor Samba integrado en dominio Windows

Servidor Windows
Win 2K Active Directory Domain Controller
Servidor Samba
Clientes Windows o Linux
Samba
26
SAMBA casos de uso (II)
  • Dominio Samba con servidores Windows

Servidor Windows
Linux Domain Controller (no completamente compatib
le AD)
Servidor Samba
Clientes Windows o Linux
Samba
27
SAMBA casos de uso (III)
  • SAMBA permite una gestión centralizada con LDAP,
    múltiples dominios, múltiples PDCs e integración
    con directorio activo

IBM Dir Integrator
Servidor Active Directory
Servidor LDAP
Linux Domain Controller
Linux Domain Controller
Samba
28
Otras herramientas OSS
  • Existen múltiples herramientas OSS, entre las que
    se pueden destacar
  • Todos los servicios TCP/IP básicos Correo,
    Telnet, FTP, Web, SSH, NFS, RPCs, NNTP, NTP
  • Sistemas de Oficina.
  • Sistemas de gestión del trabajo en grupo.
  • Emuladores de plataforma .NET.
  • Plataformas de producción J2EE.
  • Gestores de bases de datos.
  • Diseño gráfico.
  • Gestión de red y de aplicaciones.
  • Mecanismos de seguridad y detección de
    intrusiones.
  • Análisis de tráfico.

29
Plataformas OSS compatibles .NET
  • Existen dos proyectos para realizar un sistema
    OSS compatible con la plataforma .NET
  • Mono, de Ximian Inc. Es el más avanzado. Cuenta
    con los siguientes componentes en funcionamiento
  • Core ensamblado de las clases mscorlib, System,
    System.Security y System.XML
  • ADO.NET System.Data y otros proveedores de bases
    de datos.
  • ASP.NET Soportados WebForms y Web Services.
  • Compiladores C, VB.NET
  • Librerías específicas Open Source, Unix y Gnome
  • En desarrollo clases correspondientes a las
    ventanas y formularios de Windows
  • DotGNU. Ha desarrollado los siguientes
    componentes
  • DotGNU Portable.NET Implementación de .NET CLI,
    y los compiladores de C y C.
  • DGEE Servidor de webservices.

Otras aplicaciones
30
Herramientas de oficina
  • Suites integradas que contienen las principales
    herramientas necesarias para realizar el trabajo
    de oficina
  • Procesador de textos, hoja de cálculo,
    presentaciones, flowcharts, dibujo vectorial,
    dibujo raster, generación de informes, gráficos
    de negocio, editor de fórmulas, acceso a bases de
    datos.
  • Las más extendidas son
  • KOffice Integrada en KDE
  • Gnome Office Integrada en Gnome.
  • Open Office
  • La más completa y utilizada.
  • Liberada por Sun como Open Source a partir de
    Star Office.
  • El entorno de oficina puede ser la killer
    application que decante el uso de la plataforma
    cliente.

Otras aplicaciones
31
Compatibilidad Open Office / Star Office
Fuente Tech Republic, Examine Open Offices
Interoperability with Microsoft Office,
http//techrepublic.com.com/5100-6270-5083657.html
Otras aplicaciones
32
Herramientas de trabajo en grupo Kroupware
  • Para gestionar los proyectos comunes y la
    gestión entre el personal de la empresa se
    desarrollan las suites de trabajo en grupo que
    incorporan las funcionalidades de correo
    electrónico, mensajería entre usuarios, agenda y
    calendarios comunes, asignación de tareas, etc.
  • En el mercado existen desde hace tiempo programas
    que permiten realizar este tipo de tareas, Lotus
    Notes es un ejemplo de ellas.
  • Existen alternativas de suites OSS que
    disponibles, basadas en una interfaz web y las
    nativas.
  • Entre estas últimas destaca Kroupware,
    desarrollada para la agencia federal para la
    seguridad en tecnologías de la información del
    gobierno alemán
  • Si solo necesitamos un lector de correo
    electrónico compatible con Microsoft Exchange,
    Ximian Inc. ofrece un programa que permite a su
    lector de correo electrónico Evolution utilizar
    un servidor de correo Exchange.

Otras aplicaciones
33
Herramientas de trabajo en grupo Kroupware
  • Qué ofrece Kroupware ?
  • Correo electrónico, con posibilidad de
    utilización de comunicaciones cifradas.
  • Agenda privada.
  • Agenda global mantenida en un directorio LDAP.
  • Calendarios privados.
  • Notas privadas que se pueden pasar a otros
    usuarios.
  • Listas de tareas, que se pueden asignar a otros
    usuarios.
  • Gestión de uso de recursos compartidos ( ej.
    Salas de reuniones ), mediante calendarios de
    eventos.
  • Sincronización con agendas PDA Palm.
  • Posibilidad de integración con Outlook.

Otras aplicaciones
34
Herramientas de trabajo en grupo Kroupware
  • El gestor de calendarios de kroupware

Otras aplicaciones
35
Herramientas de trabajo en grupo Kroupware
  • Viendo las notas personales

Otras aplicaciones
36
Herramientas de trabajo en grupo Kroupware
  • Invitando a un evento a otro usuario

Otras aplicaciones
37
Herramientas de trabajo en grupo Evolution
  • Desarrollada por Ximian Inc.
  • Agrupa en una herramienta las siguientes
    funcionalidades
  • Correo electrónico, con agenda, filtros,
    múltiples cuentas, etc.
  • Calendario.
  • Gestión integrada de la información Visión
    general de notas, citas, to-do lists, etc.
  • Seguridad y cifrado de la información.
  • Compatibilidad con otras herramientas. Mediante
    Ximian Connector (no gratuito), se puede enlazar
    con servidor Microsoft Exchange.

Otras aplicaciones
38
Referencias
  • The GCC Home Page http//gcc.gnu.org/.
  • The GNU C Library http//www.gnu.org/software/lib
    c/libc.html.
  • Gary V. Vaughan, Ben Elliston, Tom Tromey and Ian
    Lance Taylor, GNU Automake, Autoconf and Libtool,
    May 2001. http//sources.redhat.com/autobook/.
  • Daniel Manrique, XWindow System Architecture
    Overview HOWTO, May 2001. http//www.tldp.org/HOWT
    O/XWindow-Overview-HOWTO/
  • Dirk Hohndel, The XFree86 Architecture, Linux
    Magazine, September 2000. http//www.linux-mag.com
    /2000-09/gear_01.html.
  • Gnome Architecture Overview, http//developer.gnom
    e.org/arch/.
  • The Architecture of Gnome, http//wiki.cs.uiuc.ed
    u/cs427/thearchitectureofGNOME.
Write a Comment
User Comments (0)
About PowerShow.com