Glosario

Sirva esta página de glosario técnico para la terminología específica que empezamos a utilizar. Agradeceré a quien la edite que la mantenga en orden alfabético, para comodidad de los usuarios…

Acerca de nuestra aplicación

Backup: (Copia de seguridad o copia de respaldo) Copia de datos de tal forma que estas copias adicionales puedan restaurar un sistema después de una pérdida de información.

Backup Desestructurado: Un almacén desestructurado podría simplemente ser una pila de disquetes o CD-R con una mínima información sobre qué ha sido copiado y cuándo. Ésta es la forma más fácil de implementar, pero sin embargo ofrece pocas garantías de recuperación de datos.

Backup Completa + Incremental: Un almacén completo-incremental propone almacenar varias copias de una fuente de datos más factible. En primer lugar se realiza la copia de seguridad del sistema por completo. Más tarde se realiza una copia de seguridad incremental, es decir, sólo con los ficheros que se hayan modificado desde la última copia de seguridad. Recuperar y restaurar un sistema completamente a un cierto punto en el tiempo requiere localizar una copia de seguridad completa y todas las incrementales posteriores realizadas hasta el instante que se desea restaurar. Los inconvenientes son tener que tratar con grandes series de copias incrementales y contar con un gran espacio de almacenaje.

Backup Espejo + Diferencial Un almacén de tipo espejo + diferencial inversa es similar al almacén completo-incremental. La diferencia está en que en vez de hacer una copia completa seguida de series incrementales, este modelo ofrece un espejo que refleja el estado del sistema a partir de la última copia y un historial de copias diferenciales. Una ventaja de este modelo es que solo requiere una copia de seguridad completa inicial. Cada copia diferencial es inmediatamente añadida al espejo y los ficheros que son remplazados son movidos a una copia incremental inversa. Una copia diferencial puede sustituir a otra copia diferencial más antigua sobre la misma copia total.

Versión Versión de un fichero o directorio en un instante dado. La lista de las versiones de un fichero nos indica como ha ido variando el contenido del fichero. La lista de las versiones de un directorio comprende cada versión de los ficheros y directorios que estén contenidos en ella. De esta manera, si se produce una nueva versión de un fichero, se produce una nueva versión del directorio que lo contiene, y del que contiene a éste, y así de forma recursiva hasta '/', por lo tanto, '/' cambia cuando se modifica cualquiera de los ficheros del sistema.

Herramientas

  • Autotools: Software que utiliza la mayoría de software libre para compilarse dependiendo del sistema en donde se compile. Hablando claro, "lo que hace que ./configure; make; make install funcione". Se puede configurar para que exija ciertas versiones de librerías de software antes de dejarte compilar un software. Son un tanto asquerositas de configurar, pero muy flexibles y un estándar.
  • Backend: Lo que no ves en el software pero hace el trabajo duro, el "modelo" en el modelo vista controlador.
  • Bazaar: Sistema de control de versiones distribuido que usan en launchpad.
  • Beagle: Copia de Spotlight. Demonio que permite indexar los contenidos de tu disco duro para hacer búsquedas via texto. Lee los metadatos también, de modo que -en teoría- se podrían buscar cosas como "fotos de la cámara tal", "Disco cual" aunque no esté en ninguna parte del nombre del archivo. Indexa dentro de PDF, logs de gaim, openoffice, etc. Utiliza inotify para indexar instantáneamente las cosas que han cambiado, sin tener que escanearse las carpetas desde cero para detectar esos cambios. Escrito en mono. *Creo* que gnome lo lleva por defecto, y está integrado en nautilus a partir de la 2.20.
  • Bindings:"Conectores". Si no entiendo mal, una librería ofrece bindings en diversos lenguajes cuando ofrece usarla directamente desde esos lenguajes (y te oculta el cómo).
  • C++: Lenguaje del averno XD.
  • C# (Cesharp): Lenguaje inventado por microsoft parecido a java (interpretado desde bytecode).
  • Control de versiones: A grosso modo, para llevar la gestión de archivos de texto (no exclusivamente), y permitir a varios usuarios trabajar sobre un mismo archivo sin que se pisen los cambios de uno y otro. Puede ser centralizado (hay un servidor y todos los usuarios trabajan contra eso, llamado repositorio; hay que estar conectado para subir cambios) o distribuido (cada usuario tiene su repositorio y se puede trabajar offline; entre usuarios se pueden mezclar repositorios, y es compatible con tener un repositorio central con la versión "estable" del código). Ver [http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated/]
  • .deb: Paquete de instalación binario de software. Lo usan debian y ubuntu.
  • Demonio: È un diavolo diavolo… Software corriendo en segundo plano en un unix/linux cualquiera.
  • Distro:/Distribución: (linux) Linux no hay uno-solo, sino que empresas / grupos de voluntarios se dedican a juntar todo el software útil (algo para ver ventanas, el kernel, compilador, editores de texto, y lo que se les ocurra) y en general poner un gestor de paquetes para instalar o desinstalar software directamente desde la distro, sin bajarlo de internet.
  • Empaquetar: Nada que ver con "paquetear" XD. Preparar el software para su instalación en distintas distribuciones de linux.
  • Frontend: Es la vista en el modelo vista controlador. (Véase Backend).
  • Gentoo: Una distro de linux en la que *casi* todo el software que instalas se compila antes desde el fuente. Para tenerla como hobby y gastar ciclos de reloj.
  • Git: Sistema de control de versiones distribuido, por ahora solo en linux, escrito en C y que usa Linus Torvalds (lo escribió él) para el desarrollo del kernel de linux.
  • Glibc: Librería estándar de C. Cuando haces "include patatin" estás usándola.
  • Gnome: Sistema de escritorio de linux. En linux no hay un único escritorio sino varios. Este es el más popular a raíz de ser el que va por defecto en ubuntu. Centrado en la usabilidad. Utiliza GTK por debajo.
  • Google code: Una de las opciones de portal. Incluye wiki (aunque yo preferiría seguir usando este porque me parece genial)
  • GTK: Toolkit gráfico para pintar ventanitas y demás que utiliza gnome. Equivalente al mfc de windows? Es multiplataforma. En C, con bindings para otros lenguajes.
  • D-bus: Sistema de comunicación interprocesos de linux. Lo utilizaríamos p.e. para pedir información al backend desde el frontend.
  • Debian: Distro de linux instalada en los laboratorios. Ubuntu se basó en ella en sus comienzos.
  • Inotify: Servicio que ofrece el kernel de linux para que informe de cambios (no sé qué tipos concretos) en archivos. Por ejemplo, beagle lo utiliza para cuando se guarda un log de conversación indexarlo automáticamente, u otros reproductores de música para vigilar una carpeta y añadir la música que contenga a sus bibliotecas instantáneamente.
  • KDE: Otro sistema de escritorio de linux. Este utiliza QT por debajo, y está escrito en C++.
  • Launchpad: Otra de las opciones de portal que tenemos. Permite subir código con bazaar, llevar la pista de bugs y relacionarlos con código, y subir "blueprints" que parecen algo así como documentos de trabajo.
  • Mono: Implementación libre del lenguaje csharp para linux.
  • Multiplataforma: Ver Turrón (XD). Para entendernos, "que funcione también en windows". Aunque podríamos pensar en que funcionase en FreeBSD / Mac OSX (para qué? con time machine… pero weno) / Solaris (le tengo ganas a ZFS).
  • Nautilus: Gestor de archivos de gnome. Equivalente al "explorer.exe".
  • pygtk: Conector de GTK para python, para escribir software que use gtk con el lenguaje python.
  • Python: Lenguaje de programación.
  • Qt: Toolkit parecido a GTK. Multiplataforma, y en C++ (aunque tiene bindings para cualquier cosa).
  • Spotlight: La búsqueda integrada de los mac. Como beagle, pero antes xD.
  • Subversion/svn: Sistema de control de versiones centralizado. Tiene un conector chulo para eclipse que integra la gestión de subir-el-código-etc con el eclipse directamente.
  • Svk: Sistema de control de versiones distribuído que amplia subversion. Usa sus mismos repositorios o listas-de-código, pero además funciona desconectado. Escrito en perl.
  • .tar.gz: Un archivo comprimido. Es como se suelen distribuir las fuentes del código.
  • Tracker: Copia de Spotlight también. Esta está escrita en C.
  • Ubuntu: Distribución de linux que regalan en delegación :P
  • UML: Un "lenguaje" visual que sirve para modelar código, en concreto programación orientada a objetos, y que nos van a exigir.
  • Wiki: Lo que estás leyendo XD. Sistema de gestión de contenidos web que permite a los usuarios editar las páginas fácilmente y guarda la historia de todas las ediciones. Mírate la wikipedia si no la conoces y hazte un favor :D
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License