title: NetBSD

text: NetBSD ha surgido como resultado del esfuerzo de un gran número de personas que tienen como meta producir un sistema operativo tipo Unix accesible y libremente distribuible.


title: NetBSD

text: La primera versión de NetBSD (0.8) data de 1993 y surge del sistema operativo BSDLite 4.3, una versión de UNIX desarrollada en la Universidad de California Berkeley, y del sistema 386BSD, el primer BSD portado al CPU Intel 386.


title: NetBSD

text: NetBSD toma su nombre de la versión 4BSD/Tahoe-Net/1 de los BSD, pues sobre ellos se desarrolló el protocolo TCP/IP, el protocolo más importante en Internet. NetBSD, al igual que FreeBSD, se deriva de la última versión de los BSD, la 386BSD 0.1. El primer release de NetBSD (la versión 0.8) vio el mundo el 20 de abril de 1993.


title: NetBSD

text: NetBSD está basado en una gran variedad de software de libre distribución que incluye entre otros, a 4.4BSD Lite de la Universidad de California-Berkeley, a Net/2 (Berkeley Networking Release 2) el sistema de ventanas X del MIT y software de GNU.


title: NetBSD

text: Actualmente NetBSD se centra en ofrecer un sistema operativo estable, multiplataforma, seguro.Está diseñado teniendo como prioridad escribir código de calidad y bien organizado, y teniendo muy en cuenta también el cumplimiento de estándares (POSIX, X/Open y otros más relevantes): prueba de este buen diseño es su amplia portabilidad.


title: NetBSD

text: Se trata de un sistema operativo maduro, producto de años de desarrollo (los orígenes de BSD están sobre el año 1977), y partiendo del sistema UNIX sexta edición.


title: NetBSD

text: Algunas ventajas sobre otros sistemas operativos:NetBSD ha sido portado a un gran número de arquitecturas de computadores, desde minicomputadores VAX a PDAs Pocket PC; el lema de NetBSD es «"Of course it runs NetBSD"» (por supuesto que corre NetBSD). El núcleo y el espacio de usuario para todas las plataformas soportadas (que comprenden alrededor de una veintena de diferentes procesadores) se compilan desde un árbol de código central y unificado gestionado con CVS.


title: NetBSD

text: Debido a la gestión de código fuente centralizada y a un diseño altamente portable, las adiciones de funcionalidad general (no específicas de un hardware en concreto) benefician a todas las plataformas inmediatamente sin necesidad de «portarlas».


title: NetBSD

text: El desarrollo de controladores de dispositivos es también con frecuencia independiente del hardware. Es decir, el controlador para un dispositivo PCI funcionará independientemente de que tal dispositivo esté instalado en un i386, Alpha, PowerPC, SPARC o cualquier otra plataforma con buses PCI. Muchos controladores de NetBSD también tienen el código específico de un cierto bus dividido en subcontroladores de bus, permitiendo a un mismo controlador para un dispositivo específico operar vía diferentes buses (por ejemplo ISA, PCI, PCMCIA...).


title: NetBSD

text: Esta independencia de plataforma ayuda gratamente al desarrollo de sistemas embebidos, especialmente desde la aparición en NetBSD 1.6 de la compilación cruzada:


title: NetBSD

text: Empezando en NetBSD 1.6, el juego de herramientas completo de compiladores, ensambladores, enlazadores y otras soportan completamente la compilación cruzada, permitiendo compilar un sistema NetBSD completo para una arquitectura desde otro sistema de diferente arquitectura (usualmente más potente), incluso de diferente sistema operativo (el framework de compilación cruzada soporta cualquier sistema POSIX).


title: NetBSD

text: La portabilidad de NetBSD es debida a su única capa modular de portabilidad (MPL por sus siglas en inglés, "Modular Portability Layer"). Con la MPL el controlador de dispositivo se aísla completamente de la plataforma hardware, instrucciones E/S, interbloqueo, recuperación de errores, incluso periféricos que usan una pseudo-DMA para escribir un buffer RAM con copy-in y copy-out de la CPU local son transparentemente manejados en la capa de controladores. Por otra parte, varios dispositivos empotrados usando NetBSD no han requerido de software de desarrollo adicional otro que el juego de herramientas.


title: NetBSD

text: En otros sistemas como GNU/Linux, en contraste, el código del controlador debe ser readaptado para cada nueva arquitectura. Como consecuencia, en esfuerzos recientes por parte de desarrolladores de NetBSD y Linux para portar el sistema, NetBSD ha tomado un 10% del tiempo del de Linux para ser portado al nuevo hardware. Los ingenieros que portaron NetBSD al procesador SuperH tardaron sólo seis semanas; para portar Linux se tardó tres meses. NetBSD fue portado a la plataforma AMD64 en aproximadamente un mes, mientras Linux se tomó unos seis meses.


title: NetBSD

text: En 2005, como demostración de la portabilidad y conveniencia de NetBSD para aplicaciones empotradas, Technologic Systems, un vendedor de sistemas hardware empotrados, diseñó y demostró un tostador de cocina funcionando con NetBSD.


title: NetBSD

text: El logotipo de NetBSD, una gran bandera ondeante, fue diseñado por Grant Bisset luego de que varios miembros del equipo de desarrollo de NetBSD, señalaron al viejo logo de 1994 como inadecuado para un proyecto internacional pues estaba inspirado en el levantamiento de la bandera estadounidense en Iwo Jima.


title: NetBSD

text: Todo el código fuente de NetBSD está liberado bajo la licencia BSD y sus cláusulas 1,2,3 y 4. Esto hace posible que cualquiera pueda usar, modificar e incluso vender NetBSD siempre y cuando mantenga los reconocimientos.


title: NetBSD

text: El 20 de junio de 2008, la Fundación de NetBSD anunció una transición a la licencia BSD de dos cláusulas, citando algunas preocupaciones con el soporte de UCB de la cláusula 3 y aplicabilidad industrial de la cláusula 4.


title: NetBSD

text: NetBSD también incluye las herramientas de desarrollo de GNU y otros paquetes que están cubiertos por la licencia GPL y otras licencias de código abierto.


title: NetBSD

text: Uno de los proyectos más interesantes de NetBSD es su sencillo y poderoso sistema de paquetes, pkgsrc. Dado que el kernel de NetBSD es portable a muchas arquitecturas, pkgsrc es un meta sistema, esto es, descarga código fuente y compila para producir los binarios. Este sistema de paquetes funciona de manera similar a emerge, de la distribución Gentoo Linux. Pkgsrc es una manera sencilla de tener las últimas versiones de software como Openoffice.org, KDE o Gnome, entre otros muchos programas.


title: NetBSD

text: Recientemente Sun Microsystems ha financiado parte del desarrollo de pkgsrc. Actualmente pkgsrc está disponible para diferentes sabores de Unix como Irix, Solaris, FreeBSD, OpenBSD, en la lista, además, se incluye a Slackware Linux, aunque en principio es posible instalarlo en cualquiera de las distribuciones de GNU/Linux. DragonFlyBSD, otra distribución de BSD, también ha adoptado a pkgsrc como su sistema de paquetes. Este sistema creó su última actualización de un sistema el 25 de septiembre de 2005, el cual correspondería a la versión 5.1.


title: PHP

text: PHP es un lenguaje de programación de uso general que se adapta especialmente al desarrollo web. Fue creado inicialmente por el programador danés-canadiense Rasmus Lerdorf en 1994. En la actualidad, la implementación de referencia de PHP es producida por The PHP Group. PHP originalmente significaba "Personal Home Page" (Página personal), pero ahora significa el inicialismo recursivo "PHP: Hypertext Preprocessor".


title: PHP

text: El código PHP suele ser procesado en un servidor web por un intérprete PHP implementado como un módulo, un daemon o como un ejecutable de interfaz de entrada común (CGI). En un servidor web, el resultado del código PHP interpretado y ejecutado —que puede ser cualquier tipo de datos, como el HTML generado o datos de imágenes binarias— formaría la totalidad o parte de una respuesta HTTP. Existen diversos sistemas de plantillas, sistemas de gestión de contenidos y "frameworks" que pueden emplearse para organizar o facilitar la generación de esa respuesta. Por otra parte, PHP puede utilizarse para muchas tareas de programación fuera del contexto de la web, como aplicaciones gráficas autónomas y el control de drones. También se puede interpretar y ejecutar un código PHP cualquiera a través de una interfaz de línea de comandos (CLI).


title: PHP

text: El intérprete estándar de PHP, impulsado por Motor Zend, es un software libre publicado bajo Licencia PHP. PHP ha sido ampliamente portado y puede ser desplegado en la mayoría de los servidores web en casi todos los sistemas operativos y plataformas, de forma gratuita.


title: PHP

text: El lenguaje PHP evolucionó sin una especificación formal escrita o un estándar hasta 2014, con la implementación original actuando como el estándar "de facto" que otras implementaciones intentaban seguir. Desde 2014, se ha trabajado para crear una especificación formal de PHP.


title: PHP

text: Para abril de 2020, más de la mitad de los sitios en la web que usaban PHP seguian en la versión descontinuada 5.6 o anterior. y con la versión 7.0 y 7.1 más del 68%, que no están oficialmente soportadas por The PHP Development Team, mientras que el soporte de seguridad es proporcionado por terceros, como Debian (hasta junio de 2020 para PHP 5). Adicionalmente, la versión 7.2, la versión con soporte más popular, dejó de recibir actualizaciones de seguridad el 30 de noviembre de 2020.


title: PHP

text: PHP puede ser desplegado en la mayoría de los servidores web y en todos los sistemas operativos y plataformas sin costo alguno. El lenguaje PHP se encuentra instalado en más de 20 millones de sitios web y en un millón de servidores. Migrar los servicios basados en PHP hacia las nuevas tecnologías que aparecen, supone un costo a justificar monetariamente (sobre todo, en términos de hardware y rendimiento), por ello, hablar si el número de sitios basados en PHP se ha visto reducido progresivamente en los últimos años, con la aparición de nuevas tecnologías como Node.js, Golang, ASP.NET, etc., o no, supone abrir un debate no carente de falacias y argumentos demagógicos. Es un hecho constatado que, en el mundo empresarial, solo se cambian las cosas cuando va a suponer una ventaja estratégica en el mercado. Las empresas carecen de un sentido que les polaricen los 'sentimientos', emergiendo una pauta de posicionamiento mercantilista a favor o en contra de algo solo por un sentido despectivo hacia ciertas tecnologías, tal como sucede con el mundo linux, windows y/o mac en el ámbito de los usuarios.


title: PHP

text: Poderse hacer una visión general de como PHP está evolucionando a día de hoy, es hablar sobre las nuevas librerías disponibles, el uso de matrices, manejo de números enteros, tratamiento de la criptografía cuando se usa una Base64, Web scraping, indexación de webs, precocinado de datos, Macrodatos, set de datos, supervisión de datos, set de proposiciones dimensionales. Como vemos, una visión general de este lenguaje, es mucho más compleja que afirmar que es un lenguaje para desarrollo web. Dicha realidad, subyace en la aparición de dominios xyz, cuya finalidad y especialidad es el cacheado de los servicios PHP para servir contenido con una orientación al desempeño vinculada a servicios para consumo de otros servicios que necesitan datos, tales como I.A.s. donde PHP está viendo una acogida con un sentimiento de confianza en los resultados a obtener (sin pretender servir de lenguaje en sí mismo orientado a la I.A., dado que no fue su conceptualización origen). Aunque el marketing que está recibiendo este tipo de dominios, está relacionado con las nuevas generaciones de personas educadas en las nuevas tecnologías Como parte de la visión general, habría que incluir un último aspecto, y es la capacidad de generar capas de seguridad autodependientes, en un paradigma solo emergente gracias a las librerías de las que dispone PHP (En proceso de desarrollo).


title: PHP

text: El sitio web de Wikipedia está desarrollado en PHP. Es también el módulo Apache más popular entre las computadoras que utilizan Apache como servidor web.


title: PHP

text: El gran parecido que posee PHP con los lenguajes más comunes de programación estructurada, como C y Perl, permiten a la mayoría de los programadores crear aplicaciones complejas con una curva de aprendizaje muy corta. También les permite involucrarse con aplicaciones de contenido dinámico sin tener que aprender todo un nuevo grupo de funciones.


title: PHP

text: Aunque todo en su diseño está orientado a facilitar la creación de sitios webs, es posible crear aplicaciones con una interfaz gráfica de usuario, utilizando alguna extensión como puede ser PHP-Qt, PHP-GTK, WxPHP, WinBinder, Roadsend PHP, Phalanger, Phc o HiP Hop VM. También puede ser usado desde la línea de comandos, de la misma manera como Perl o Python pueden hacerlo; a esta versión de PHP se la llama PHP-CLI ("Command Line Interface").


title: PHP

text: Cuando el cliente hace una petición al servidor para que le envíe una página web, el servidor ejecuta el intérprete de PHP. Este procesa el script solicitado que generará el contenido de manera dinámica (por ejemplo obteniendo información de una base de datos). El resultado es enviado por el intérprete al servidor, quien a su vez se lo envía al cliente.


title: PHP

text: Mediante extensiones es también posible la generación de archivos PDF, Flash, así como imágenes en diferentes formatos.


title: PHP

text: Permite la conexión a diferentes tipos de servidores de bases de datos tanto SQL como NoSQL tales como MySQL, PostgreSQL, Oracle, ODBC, DB2, Microsoft SQL Server, Firebird, SQLite o MongoDB.


title: PHP

text: PHP también tiene la capacidad de ser ejecutado en la mayoría de los sistemas operativos, tales como Unix (y de ese tipo, como Linux o Mac OS X) y Microsoft Windows, y puede interactuar con los servidores de web más populares ya que existe en versión CGI, módulo para Apache, e ISAPI.


title: PHP

text: PHP es una alternativa a las tecnologías de Microsoft ASP y ASP.NET (que utiliza C# y Visual Basic .NET como lenguajes), a ColdFusion de la empresa Adobe, a JSP/Java, CGI/Perl y a Node.js/Javascript. Aunque su creación y desarrollo se da en el ámbito de los sistemas libres, bajo la licencia GNU, existe además un entorno de desarrollo integrado comercial llamado Zend Studio. CodeGear (la división de lenguajes de programación de Borland) ha sacado al mercado un entorno de desarrollo integrado para PHP, denominado 'Delphi for PHP. También existen al menos un par de módulos para Eclipse, uno de los entornos más populares.


title: PHP

text: Fue originalmente diseñado en Perl, con base en la escritura de un grupo de CGI binarios escritos en el lenguaje C por el programador danés-canadiense Rasmus Lerdorf en el año 1994 para mostrar su currículum vítae y guardar ciertos datos, como la cantidad de tráfico que su página web recibía. El 8 de junio de 1995 fue publicado "Personal Home Page Tools" después de que Lerdorf lo combinara con su propio "Form Interpreter" para crear PHP/FI.


title: PHP

text: Dos programadores israelíes del Technion, Zeev Suraski y Andi Gutmans, reescribieron el analizador sintáctico ("parser", en inglés) en 1997 y crearon la base del PHP3, y cambiaron el nombre del lenguaje por "PHP: Hypertext Preprocessor". Inmediatamente comenzaron experimentaciones públicas de PHP3, y se publicó oficialmente en junio de 1998. Para 1999, Suraski y Gutmans reescribieron el código de PHP, y produjeron lo que hoy se conoce como motor Zend. También fundaron Zend Technologies en Ramat Gan, Israel.


title: PHP

text: En mayo del 2000, PHP 4 se lanzó bajo el poder del motor Zend 1.0. El 13 de julio de 2007 se anunció la suspensión del soporte y desarrollo de la versión 4 de PHP, y, a pesar de lo anunciado, se ha liberado una nueva versión con mejoras de seguridad, la 4.4.8, publicada el 13 de enero del 2008, y posteriormente la versión 4.4.9, publicada el 7 de agosto del 2008. Según esta noticia, se le dio soporte a fallos críticos hasta el 9 de agosto del 2008.


title: PHP

text: El 13 de julio de 2004, se lanzó PHP 5, utilizando el motor Zend Engine 2.0 (o Zend Engine 2). Incluye todas las ventajas que provee el nuevo Zend Engine 2, como:La sintaxis de PHP, se fundamenta en los principios de programación de C.


title: PHP

text: El intérprete de PHP solo ejecuta el código que se encuentra entre sus delimitadores. Los delimitadores más comunes son codice_1 para abrir una sección PHP y codice_2 para cerrarla. El propósito de estos delimitadores es separar el código PHP del resto de código, como por ejemplo el HTML. En los archivos que contienen solo código PHP, el delimitador codice_2 se puede omitir. De hecho, PHP-FIG a través de sus recomendaciones estándar para PHP recomienda omitir el delimitador codice_2, ya que así no se envía contenido HTML de manera accidental. Por ejemplo, si se envía un carácter "no PHP" (que no es procesado por el intérprete de PHP), no se podrán ejecutar ciertas acciones como enviar encabezados HTTP a través de la función codice_5, ya que el proceso de respuesta ya ha comenzado.


title: PHP

text: Las variables se prefijan con el símbolo del dólar (codice_6) y no es necesario indicar su tipo. Las variables, a diferencia de las funciones, distinguen entre mayúsculas y minúsculas. Las cadenas de caracteres pueden ser encapsuladas tanto en dobles comillas como en comillas simples, aunque en el caso de las primeras, se pueden insertar variables en la cadena directamente, sin necesidad de concatenación.


title: PHP

text: Los comentarios se pueden escribir bien con dos barras (//) al principio de la línea, o con una almohadilla (#). También permite comentarios multi-línea encapsulados en codice_7.


title: PHP

text: En cuanto a las palabras clave, PHP comparte con la mayoría de otros lenguajes con sintaxis C las condiciones con codice_8, los bucles con codice_9 y codice_10 y los retornos de funciones. Como es habitual en este tipo de lenguajes, las sentencias deben acabar con punto y coma (codice_11).


title: PHP

text: Programa Hola mundo con PHP inmerso dentro de código HTML:


title: PHP

text: Programa Hola mundo con PHP en forma de app monolítica:


title: PHP

text: '; $respuesta .= ''; $respuesta .= "; $respuesta .= ''; $respuesta .= ' '; $respuesta .= ' '; $respuesta .= ' Ejemplo básico de PHP'; $respuesta .= ''; $respuesta .= "; $respuesta .= ''; $respuesta .= ' Hola mundo!'; $respuesta .= ''; $respuesta .= "; $respuesta .= '';


title: PHP

text: // Envía respuesta echo $respuesta;


title: PHP

text: // Notar que no se cierra la "etiqueta" Hola mundo con PHP respondiendo en formato JSON:PHP puede combinarse con MySQL para trabajar con bases de datos, aunque también se pueden utilizar otros motores de base de datos como Microsoft SQL Server, PostgreSQL, MongoDB, entre otros.


title: PHP

text: En el siguiente ejemplo se muestra un simple inicio de sesión con usuario y contraseña utilizando MySQL y PHP con el estilo orientado a objetos:


title: PHP

text: XAMPP es un servidor independiente de plataforma, software libre, que consiste principalmente en la base de datos MySQL, el servidor Web Apache y los intérpretes para lenguajes de script: PHP y Perl. El nombre proviene del acrónimo de X (para cualquiera de los diferentes sistemas operativos), Apache, MySQL, PHP, Perl. El programa está liberado bajo la licencia GNU y actúa como un servidor Web libre, fácil de usar y capaz de interpretar páginas dinámicas. Actualmente XAMPP está disponible para Microsoft Windows, GNU/Linux, Solaris, y MacOS X.


title: PHP

text: Es un software "liviano" que se puede utilizar en cualquier PC. No necesita muchos recursos.


title: PHP

text: LAMP presenta una funcionalidad parecida a XAMPP, pero enfocada en Linux, WAMP lo hace enfocado en Windows, y MAMP para MacOS X. UwAmp es muy idéntico a WAMP y se destaca en que se puede ejecutar desde una memoria USB.


title: PHP

text: Se utiliza PHP en millones de sitios; entre los más destacados se encuentran:


title: Patrick Volkerding

text: Patrick Volkerding (nacido el 20 de octubre del 1966), es un informático estadounidense de ascendencia germana, también conocido por muchos como El Hombre (""The Man""),es reconocido por ser el fundador y principal desarrollador de la distribución Linux Slackware. Obtuvo su Bachiller universitario en ciencias en "Computer Science en la Moorhead State University" en el año 1993, mismo año en el cual se lanzó la primera versión de Slackware.


title: Patrick Volkerding

text: Junto a Chris Lumens, David Cantrell y otros voluntarios iniciaron el Proyecto Slackware Linux. Debido a la falta de un flujo de ingresos a raíz de la venta de su editor, Walnut Creek CDROM, a BSDi (que fue finalmente vendida a "Wind River Systems"), esas personas dejaron dicho proyecto. En los últimos años Patrick Volkerding manejó Slackware con la ayuda de varios voluntarios y testeadores. Volkerding saca nuevas versiones de Slackware generalmente una vez al año.


title: Patrick Volkerding

text: Patrick es un miembro/afiliado de La iglesia de los subgenios (Church of SubGenius). El uso de la palabra "Slack" en Slackware es un homenaje a :


title: Patrick Volkerding

text: ""..I'll admit that it was SubGenius inspired. In fact, back in the 2.0 through 3.0 days we used to print the "Bob" Dobbs head on each CD.""


title: Patrick Volkerding

text: Que en español se traduce por "Voy a admitir que fue inspirado de SubGenius. De hecho, en los tiempos entre 2.0 y 3.0 solíamos imprimir la cabeza de "Bob" Dobbs en cada CD".


title: Patrick Volkerding

text: En el año 2004 enfermó de una rara infección pulmonar la cual afectó seriamente su rendimiento físico, causando que el desarrollo de Slackware se detenga en su mayoría. Afortunadamente se recuperó y volvió al proyecto.


title: Patrick Volkerding

text: Patrick Volkerding está actualmente casado con su esposa Andrea, y son padres desde el 22 de noviembre de 2005, de su primera hija llamada Cecilia. También se lo conoce por ser un gran bebedor de cerveza: En las primeras versiones de Slackware rogaba a sus usuarios que le mandaran una botella de cerveza de su ciudad local en aprecio a su trabajo.


title: GTK

text: GTK (conocido hasta febrero de 2019 como GTK+) o "The GIMP Toolkit" es una biblioteca de componentes gráficos multiplataforma para desarrollar interfaces gráficas de usuario (GUI). Esta licenciado bajo los términos de la GNU LGPL, por lo que permite la creación de tanto software libre como software privativo. GTK es parte del proyecto GNU, siendo usado por proyectos tan importantes como GIMP, Inkscape, GNOME, Xfce, entre otros.


title: GTK

text: Junto a Qt, es uno de los kit de herramientas de widgets más popular para el sistema operativo GNU/Linux, teniendo un amplio soporte para Wayland y XOrg. Además, se puede emplear para desarrollar aplicaciones gráficas que funcionen sobre otros sistemas Unix-like o sistemas operativos como Microsoft Windows, Mac OS, entre otros.


title: GTK

text: Fue desarrollada inicialmente por Peter Mattis, Spencer Kimball y Josh MacDonald para implementar la interfaz gráfica del programa de Manipulación de Imágenes de GNU (GIMP) como reemplazo del kit de herramientas Motif; en algún momento Peter Mattis se desencantó con Motif y comenzó a escribir su propio kit de herramientas GUI llamado GIMP toolkit, reemplazando con éxito Motif para la versión 0.60 de GIMP. Finalmente, GTK fue reescrito para ser orientado a objetos y pasó a llamarse GTK+, haciéndose uso de esto por primera vez en la versión 0.99 de GIMP. Siendo la primera versión estable de GTK lanzada el 14 de abril de 1998.


title: GTK

text: GTK está escrito en lenguaje C, y es principalmente desarrollado por el Proyecto GNOME, ya que en 1997 este proyecto escoge GTK como base sobre la cual desarrollar el entorno de escritorio GNOME. Otras aplicaciones gráficas no directamente relacionadas con GNOME también han empleado GTK. Además de otros entornos gráficos para Linux como XFCE y ROX han elegido también GTK como su biblioteca de componentes gráficos.


title: GTK

text: El desarrollo de GTK se maneja libremente. La discusión ocurre principalmente en varias listas de correo públicas. Los desarrolladores y usuarios de GNOME se reúnen en una reunión anual "GNOME Users And Developers European Conference" GUADEC para discutir el estado actual y la dirección futura de GNOME. GNOME incorpora estándares y programas de freedesktop.org para interactuar mejor con otros escritorios.


title: GTK

text: Esta biblioteca contenía algunas rutinas de ayuda para resolver tareas básicas de programación, como el almacenamiento de diversos datos. Estos requieren mucho tiempo para el programador, especialmente cuando se trata del desarrollo repetido de programas. Las primeras versiones de GTK incluían estructuras de datos para listas vinculadas, árboles binarios o cadenas "en crecimiento". Además, ya que fue reescrito para ser orientado a objetos, GTK permite usar este paradigma de programación dentro del lenguaje C. Estas herramientas también resultaron útiles para programas sin una interfaz gráfica de usuario y por lo tanto más tarde se trasladaron a una biblioteca separada, llamada "biblioteca" "GLib de funciones C" . El sistema orientado a objetos en la siguiente versión se relevo a la biblioteca "GObject", los métodos de dibujo orientados al sistema a la biblioteca GDK (GTK + Kit de dibujo). Este último permite que GTK se ejecute de forma idéntica en plataformas en Windows, X Window System, macOS , entre otros.


title: GTK

text: La versión GTK 2 recibió nuevas funciones mejoradas para renderizar texto usando la biblioteca "Pango", la creación de GObject, un nuevo motor de temas, una API más flexible y una biblioteca novedosa ("ATK") para mejorar la accesibilidad del kit de herramientas para personas discapacitadas, por ejemplo, se puede abordar el software de lectura, las herramientas de aumento y los dispositivos de entrada alternativos. GTK 2 no es compatible con GTK 1, por lo que las aplicaciones existentes tuvieron que ser portadas.


title: GTK

text: A partir de la versión 2.8, GTK + usa la biblioteca Cairo basada en vectores, que usa aceleración de hardware para renderizar si es posible. GTK 2.24 es la última versión de la serie 2.x.


title: GTK

text: La versión 3.0 fue lanzada el 10 de febrero de 2011. Muchas funciones que se clasificaron como obsoletas se han eliminado y se han mejorado las interfaces existentes. GTK 3 no es compatible con versiones anteriores de GTK 2.x. Sin embargo, las bibliotecas de ambas versiones se pueden instalar en paralelo.


title: GTK

text: La serie GTK 3 incluye una nueva interfaz para dibujar widgets, que ahora está completamente basada en Cairo, un motor de temas basado en CSS que también permite transiciones de estado animadas, opciones de diseño mejoradas, un nuevo widget de interruptor deslizante, una clase de aplicación, soporte para múltiples dispositivos señaladores "(punteros múltiples)" e iconos simbólicos eso puede cambiar de color según la condición. Las estructuras internas se han separado y ocultado de la interfaz pública, por lo que será más fácil realizar cambios en el futuro sin tener que romper la interfaz. Además, se admiten múltiples backends GDK simultáneamente dentro de la misma biblioteca. Hasta ahora, varias bibliotecas eran necesarias.


title: GTK

text: Se introdujeron dos nuevos backends: uno para el servidor de visualización Wayland y un back-end HTML5 llamado "Broadway", con el que las aplicaciones GTK pueden operarse de forma remota en el navegador a través de la red. Se admite el desplazamiento múltiple y suave, que también está disponible para Windows, además, se admite animaciones CSS y difuminación de sombras. La versión 3.6.4 es la última versión oficial para Windows de 32 bits y 64 bits.


title: GTK

text: Existen más cambios como la mejora de la visualización de los monitores de alta resolución. La presentación de Popover (burbujas de discurso cómicas que se pueden usar como ayuda), se admite gestos multitáctiles. Además, se admite la representación de ventanas a través de OpenGL. El nuevo elemento de control codice_1 también permitió integrar objetos 3D directamente en las interfaces del programa. Desde GTK 3.18 (base de Gnome 3.18), la biblioteca es oficialmente compatible con Wayland, el sucesor del sistema X Windows. GTK 3.20 integra el corrector ortográfico con gspell y mejora la temática CSS. Mientras que GTK 3.22 se presenta como una versión LTS y añade soporte a portales Flatpak para instalaciones de software simples.


title: GTK

text: El 1 de septiembre de 2016, una publicación en el blog de desarrollo de GTK denotó, entre otras cosas, el futuro esquema de numeración de GTK. La versión 3.22 de GTK de otoño de 2016 será la última versión 3.x (o al menos eso era lo planeado). Después de eso, todos los recursos se trasladarán a la serie de desarrollo GTK 4 con los nombres de versión 3.90, 3.92, etc. Incluso cuando la serie 4.x entre en desarrollo, las aplicaciones notables aún usan GTK 2.x y no se han portado a 3.22. Con respecto al futuro del software heredado que usa GTK, no existe un proyecto colectivo para portar el software GTK 2.x a 3.22.


title: GTK

text: GTK 4.0 se está preparando con la serie "inestable" 3.9x. En marzo de 2017, se agregó el "Scene Graph Kit" (GSK) con la versión 3.90 . Implementa un gráfico de escena y se encarga de la síntesis de imágenes. En febrero de 2019 se anunció que GTK 4.0 eliminará el signo más ("+") de la parte del nombre.


title: GTK

text: Una de las principales novedades implementadas durante el ciclo de desarrollo de GTK 4 (es decir, GTK 3.92, etc.) ha sido la delegación de funcionalidad a objetos auxiliares en lugar de codificarla en las clases base proporcionadas por GTK.En el 26 de enero de 2018 en DevConf.cz, Matthias Clasen ofreció una visión general del estado actual del desarrollo de GTK 4, incluida una explicación de alto nivel sobre cómo funcionaba el renderizado y la entrada en GTK 3, qué cambios se estaban realizando en GTK 4, y las razones de esos cambios. También se dieron ejemplos de cosas que se han hecho posibles con GTK 4.Sobre el backend Quartz, un puerto del sistema X Window, GTK puede usarse en macOS .


title: GTK

text: Anteriormente, GTK (y GNOME, GLib, etc.) utilizaban el sistema de compilación GNU (denominado Autotools) como el sistema de automatización de compilación elegido.


title: GTK

text: Desde el 14 de agosto de 2017, la rama maestra de GTK compila con Meson, y los archivos del sistema de compilación de Autotools se han eliminado.


title: GTK

text: GTK se basa en varias bibliotecas desarrolladas por el equipo de GTK y de GNOME:


title: GTK

text: Es un conjunto de bibliotecas de bajo nivel, que comprende, GLib Core, GObject y GIO. Estas bibliotecas se desarrollan todas bajo un mismo repositorio de Git, denominado glib. Por lo que "GLib" puede referirse a "GLib core" o todo el conjunto de bibliotecas.


title: GTK

text: GLib core proporciona el manejo de estructura de datos para C (Listas enlazadas, árboles, tablas hash, entre otras), envoltorios de portabilidad, bucle de eventos, subprocesos, carga dinámica de módulos y muchas más funciones.


title: GTK

text: GObject por su parte, simplifica los paradigmas de Programación orientada a objetos y la Arquitectura dirigida por eventos para C. La Arquitectura dirigida por eventos no solo es útil para interfaces gráficas de usuario sino también para demonios que respondan a cambios de hardware (insertar un USB, un monitor, etc), software de red u otros procesos, puede llegar a ser de bastante utilidad.


title: GTK

text: GIO depende de las anteriores bibliotecas del conjunto, este proporciona un API de alto nivel para entrada y salida, ya sea la lectura de un archivo local, una secuencia de red, procesos de comunicación con D-Bus y muchos usos más.


title: GTK

text: Este conjunto de bibliotecas permite escribir servicios del sistema operativo, bibliotecas, utilidades de línea de comando y mucho más. Por lo que puede llegar a ser más cómodo y recomendable escribir un programa en C haciendo uso de GLib, además, ofrece una API de alto nivel como el estándar POSIX.


title: GTK

text: Biblioteca que contiene un kit de herramientas de widgets basados en GLib, este kit realmente contiene los objetos y funciones para crear la Interfaz gráfica de usuario (GUI). Maneja "widgets" como ventanas, botones, menús, etiquetas, deslizadores, pestañas, etc.


title: GTK

text: Biblioteca que actúa como intermediario entre gráficos de bajo nivel y gráficos de alto nivel. De manera que libera a GTK de preocupaciones de bajo nivel como la recopilación de entrada, arrastrar y soltar y la conversión de formato de píxeles. GDK es una capa intermedia que separa GTK de los detalles del sistema de ventanas.


title: GTK

text: GDK es una parte importante de la portabilidad de GTK. Dado que GLib ya proporciona la funcionalidad multiplataforma de bajo nivel, todo lo que se necesita para hacer que GTK se ejecute en otras plataformas es portar GDK a la capa de gráficos del sistema operativo subyacente. Por lo tanto, los puertos GDK a la API de Windows y Quartz son los que permiten que las aplicaciones GTK se ejecuten en Windows y macOS, respectivamente.


title: GTK

text: Biblioteca para crear interfaces con características de una gran accesibilidad muy importante para personas discapacitadas o minusválidos. Pueden usarse utilerías como lupas de aumento, lectores de pantalla, o entradas de datos alternativas al clásico teclado o ratón.


title: GTK

text: Biblioteca para el diseño y renderizado de texto, hace hincapié especialmente en la internacionalización. Está diseñado de forma modular, esto significa que Pango puede ser usado por aplicaciones de diferentes arquitecturas o metodologías de programación. Además, es el núcleo para manejar las fuentes y el texto de la versión 2 de GTK.


title: GTK

text: Biblioteca de renderizado avanzado de controles de aplicación. usada para proporcionar imágenes basadas en gráficos vectoriales. Además, proporciona primitivas para el dibujo bidimensional a través de una serie de backends diferentes.


title: GTK

text: Algunos de los programas para diseño de interfaces gráficas con GTK son los siguientes:


title: GTK

text: Es una herramienta de desarrollo visual de interfaces gráficas mediante GTK/GNOME. Es independiente del lenguaje de programación y predeterminadamente no genera código fuente sino un archivo XML gracias a GTKBuilder, que puede ser usado en numerosos lenguajes de programación incluyendo C, C++, C#, Vala, Java, Perl, Python. La posibilidad de generar automáticamente código fuente fue descontinuada desde la versión 3 de Glade.


title: GTK

text: De manera más técnica la clase describe la interfaz en un archivo de Lenguaje de marcado extensible (XML) y luego carga la descripción XML en tiempo de ejecución y crea los objetos automáticamente. Glade Interface Designer permite la creación de la interfaz de usuario de manera WYSIWYG. Por lo que la descripción de la interfaz de usuario es independiente del lenguaje de programación utilizado.


title: GTK

text: Glade puede ser utilizado de manera directa, pero también está totalmente integrado en Anjuta 2. El proyecto se encuentra bajo la licencia GPL.


title: GTK

text: Parte de MonoDevelop, orientado al trabajo con GTK#, Stetic es muy similar a Glade Interface Designer, pero está integrado en MonoDevelop con funciones como arrastrar y soltar . Ha sido criticado por ser más difícil de trabajar que Qt Designer y Microsoft Visual Studio Windows Forms Editor cuando el programador aún no tiene un diseño concreto en mente.


title: GTK

text: MonoDevelop puede ejecutarse en las distintas distribuciones de Linux y en Mac. Desde la versión 2.2, MonoDevelop ya cuenta con soporte completo para GNU/Linux, Windows y Mac. Además, incluye un compilador que admite C # 1.0, C # 2.0, C # 3.0, C # 4.0, C # 5.0 y C # 6.0.


title: GTK

text: Algunas aplicaciones que usan GTK para desarrollar sus interfaces de usuario incluyen:


title: GTK

text: Los entornos de escritorio no son necesarios para ejecutar los programas GTK. Si las bibliotecas que requiere el programa están instaladas, un programa GTK puede ser ejecutado por encima de otros entornos basadas en X11 como KDE o cualquier otro entorno, lo que incluye Mac OS X, si X11.app está instalado. GTK también puede ejecutarse en Microsoft Windows, es utilizado por algunas aplicaciones populares multiplataforma como Pidgin y GIMP. wxWidgets, un toolkit gráfico multiplataforma usa GTK en sistemas tipo Unix. Algunos de los ports más inusuales incluyen directfb y ncurses.


title: GTK

text: Dado que GTK es una biblioteca C pura, se puede vincular fácilmente a muchos otros lenguajes de programación. Con los lenguajes de programación orientados a objetos, los GObjects no se usan ; los objetos GTK generalmente se pueden usar allí como objetos nativos del lenguaje de programación. El lenguaje de programación Vala utiliza GObject directamente como un sistema de objetos y, por lo tanto, no requiere una biblioteca en tiempo de ejecución para la conexión del lenguaje.


title: GTK

text: Existe una gran variedad de lenguajes de programación con los cuales se puede usar GTK, aunque no en todos está disponible en su última versión. Entre los más usados están los siguientes:


title: GTK

text: La forma clásica de programar con GTK es definir primero las propiedades de los elementos gráficos utilizados, luego agruparlos y vincularlos a rutinas específicas de manejo de eventos (un posible evento sería hacer clic en un botón , por ejemplo ). Sin embargo, también hay herramientas de diseño gráfico para superficies GTK como Glade o Stetic contenidas en MonoDevelop , que pueden ahorrarle los dos primeros pasos, expandir GTK con capacidades de creación de prototipos y hacer posible realizar cambios en la superficie de un programa sin tener que hacer cambios en el código fuente del software.


title: GTK

text: Un programa típico de Hello World que se muestra en la imagen podría verse así: // Incluir gtk


title: GTK

text: static void on_activate (GtkApplication *app) {


title: GTK

text: int main (int argc, char *argv[]) {


title: GTK

text: Para compilar este código son necesarias algunas dependencias según el sistema que poseas, en caso de usar Debian o derivadas codice_2 o en caso de usar Fedora codice_3. Para compilar el código, es necesario ubicarse en la ruta del archivo y escribir lo siguiente en una terminal gcc ejemplogtk.c -o ejemplogtk `pkg-config --cflags --libs gtk+-3.0` Para ejecutar el archivo, se escribe ./ejemplogtk import gi gi.require_version("Gtk", "3.0") from gi.repository import Gtk


title: GTK

text: window = Gtk.Window(title="¡Hola Wikipedia!") window.show() window.connect("destroy", Gtk.main_quit) Gtk.main() Para abrir este código son necesarias algunas dependencias según el sistema que poseas, en caso de usar Debian o derivadas codice_4 o en caso de usar Fedora codice_5.


title: GTK

text: Para ejecutar el archivo, es necesario ubicarse en la ruta del archivo, luego ejecutarlo escribiendo python3 hello.py La apariencia de GTK es en gran medida configurable por el usuario, existiendo una gran cantidad de temas para elegir. Estos temas pueden ser descargados de diferentes sitios como GNOME Look. Los siguiente son los más populares:


title: GTK

text: Es el nuevo tema estándar de GTK desde mediados de 2014, siendo el tema sobre el que se recomienda trabajar para realizar desarrollos en interfaces gráficas. Esto fue expresado en una carta abierta por los desarrolladores de las aplicaciones GNOME, donde invitaban a usar el tema predeterminado (es decir Adwaita), ya que aseguraban que hacer uso de otros temas podría traer diferencias en la percepción del usuario final, en un mismo programa.


title: GTK

text: Afirmando que al alterar las hojas de estilo GTK las aplicaciones podrían parecer dañadas o inutilizables, los iconos podrían representar conceptos diferentes al pensado por el programador. También aseguraban que las capturas encontradas dentro de tiendas de software podrían engañar al usuario de la apariencia de la aplicación, y además, que podría llegar a generar conflictos en la compresión de la documentación para el usuario final.


title: GTK

text: Esta propuesta fue aceptada por diferente distribuciones, las cuales adoptaron directamente Adwaita, o basaron sus temas sobre este, como es el caso de Ubuntu con su tema Yaru.


title: GTK

text: Es el tema oficial de Ubuntu, posee diferentes tonalidades las cuales puede elegir el usuario. El tema se basa en Adwaita.


title: GTK

text: La crítica más común de GTK es la falta de compatibilidad con versiones anteriores en las principales actualizaciones, sobre todo en la interfaz de programación de aplicaciones (API) y temas.


title: GTK

text: Benjamin Otte explicó que las interrupciones de compatibilidad entre lanzamientos menores durante el ciclo de desarrollo de GTK 3.x se debieron a fuertes presiones para innovar, como proporcionar las características que los usuarios modernos esperan y apoyar el protocolo de servidor de pantalla Wayland cada vez más influyente. Con el lanzamiento de GTK 4, se habrá liberado la presión de la necesidad de innovar y el equilibrio entre estabilidad e innovación se inclinará hacia la estabilidad. Del mismo modo, los cambios recientes en la temática están destinados específicamente a mejorar y estabilizar esa parte de la API, lo que significa que alguna inversión ahora debería recompensarse más adelante.


title: GIMP

text: GIMP (siglas en inglés de GNU Image Manipulation Program) es un programa de edición de imágenes digitales en forma de mapa de bits, tanto dibujos como fotografías. Es un programa libre y gratuito. Forma parte del proyecto GNU y está disponible bajo la Licencia pública general de GNU y GNU Lesser General Public License


title: GIMP

text: Es el programa de manipulación de gráficos disponible en más sistemas operativos (Unix, GNU/Linux, FreeBSD, Solaris, Microsoft Windows y macOS, entre otros).


title: GIMP

text: La interfaz de GIMP está disponible en varios idiomas, entre ellos: español, inglés (el idioma original), catalán, gallego, euskera, alemán, francés, italiano, ruso, sueco, noruego, coreano y neerlandés.


title: GIMP

text: GIMP tiene herramientas que se utilizan para el retoque y edición de imágenes, dibujo de formas libres, cambiar el tamaño, recortar, hacer fotomontajes, convertir a diferentes formatos de imagen, y otras tareas más especializadas. Se pueden también crear imágenes animadas en formato GIF e imágenes animadas en formato MPEG usando un plugin de animación.


title: GIMP

text: Los desarrolladores y encargados de mantener GIMP se esfuerzan en mantener y desarrollar una aplicación gráfica de software libre, de alta calidad para la edición y creación de imágenes originales, de fotografías, de íconos, de elementos gráficos tanto de páginas web como de elementos artísticos de interfaz de usuario.


title: GIMP

text: Los iniciadores del desarrollo de GIMP en 1995 fueron los estudiantes Spencer Kimball y Peter Mattis como un ejercicio semestral en la Universidad de Berkeley en el club informático de estudiantes. La primera versión de GIMP se desarrolló inicialmente en sistemas Unix y fue pensada especialmente para GNU/Linux como una herramienta libre para trabajar con imágenes.


title: GIMP

text: Las siglas de GIMP significaban inicialmente «"General Image Manipulation Program"» («Programa general para manipulación de imágenes»), pero en 1997 se cambió al significado «"GNU Image Manipulation Program"» («Programa de manipulación de imágenes de GNU»). GIMP forma parte oficial del Proyecto GNU.


title: GIMP

text: GIMP sirve para procesar gráficos y fotografías digitales. Los usos típicos incluyen la creación de gráficos y logos, el cambio de tamaño, recorte y modificación de fotografías digitales, la modificación de imágenes, la combinación y alteración de colores usando un paradigma de capas, la eliminación o alteración de elementos no deseados en imágenes o la conversión entre distintos formatos de imágenes. También se puede utilizar el GIMP para crear imágenes animadas sencillas, la manipulación de vectores, y en edición avanzada de vídeo.


title: GIMP

text: GIMP es también conocido por ser quizás la primera gran aplicación libre para usuarios no profesionales o expertos. Productos libres originados anteriormente, como GCC, el núcleo Linux, etc., eran principalmente herramientas de programadores para programadores. GIMP es considerado por algunos como una demostración fehaciente de que el proceso de desarrollo de software libre puede crear aplicaciones que los usuarios comunes pueden usar de manera productiva. De esta forma, Gimp abrió camino a otros proyectos como KDE, GNOME, Mozilla Firefox, OpenOffice.org y otras aplicaciones posteriores.


title: GIMP

text: Wilber es la mascota oficial del proyecto GIMP. Fue creado el 25 de septiembre de 1997 por Tuomas Kuosmanen, más conocido como "tigert". Hay otros desarrolladores de GIMP que han contribuido con accesorios adicionales. Imágenes de esta mascota pueden encontrarse en el ""Wilber Construction Kit"", incluido en el código fuente de GIMP dentro del archivo Wilber. Wilber fue dibujado usando GIMP.


title: GIMP

text: GIMP es un programa de manipulación de imágenes que ha ido evolucionando notablemente a lo largo del tiempo. Ha ido soportando formatos adicionales, sus herramientas son más potentes, y además es capaz de funcionar con extensiones o plugins y scripts. Desde hace mucho tiempo se puede usar también con tabletas digitalizadoras.


title: GIMP

text: GIMP utiliza GTK como biblioteca de controles gráficos. En realidad, GTK era simplemente al principio una parte de GIMP, originada al reemplazar la biblioteca comercial Motif usada inicialmente en las primeras versiones de GIMP. GIMP y GTK fueron originalmente diseñados para el sistema gráfico X Window ejecutado sobre sistemas operativos tipo Unix. GTK ha sido portado posteriormente a Microsoft Windows, OS/2, macOS y SkyOS.


title: GIMP

text: GIMP permite el tratamiento de imágenes en capas, para poder modificar cada objeto de la imagen en forma totalmente independiente a los demás elementos en otras capas de la imagen. También pueden subirse o bajarse de nivel las capas, en una pila, para facilitar el trabajo de la imagen. Cada capa tiene su propia visibilidad y grado de transparencia y, además, hay una larga serie de maneras de combinar las relaciones entre capas. La imagen final puede guardarse en el formato original de GIMP que soporta capas, o en muchos formatos planos sin capas, como puede ser png, bmp, jpg, GIF, PDF, etc.


title: GIMP

text: Con GIMP es posible producir también imágenes de manera totalmente no interactiva automatizada (por ejemplo, generar al vuelo imágenes para una página web usando scripts o guiones CGI) y también realizar un procesamiento por lotes que cambie el color o convierta series de imágenes. Para tareas automatizables más simples, probablemente sea más rápido utilizar un paquete como ImageMagick.


title: GIMP

text: El nombre de GIMP en español se forma con las iniciales de Programa de Manipulación de Imágenes de GNU, leídas de atrás para adelante.


title: GIMP

text: GIMP lee y escribe la mayoría de los formatos de ficheros gráficos, entre ellos; JPG, GIF, PNG, PCX, TIFF, bmp, pix y también la mayoría de los psd (de Photoshop) además de poseer su propio formato abierto de almacenamiento de ficheros, el XCF. Es capaz también de importar y exportar ficheros en pdf y postcript (ps). También importa imágenes vectoriales en formato SVG creadas, por ejemplo, con Inkscape. Gimp también escribe y lee imágenes en formato ora (formato OpenRaster, formato binario abierto), lo que permite transferir gráficos fácilmente por ejemplo con Krita, otro programa de edición de gráficos de código abierto.


title: GIMP

text: GIMP cuenta con muchas herramientas, entre las que se encuentran las siguientes;Además de un uso interactivo, GIMP permite también la automatización de muchos procesos mediante macros o secuencias de comandos. Para ello incluye un lenguaje llamado Scheme para este propósito. También permite el uso para estas tareas de otros lenguajes como Perl, Python, Tcl y (experimentalmente) Ruby. De esta manera, es posible escribir secuencias de operaciones y "plugins" para GIMP que pueden ser después utilizados repetidamente.


title: GIMP

text: Los "plugins" de GIMP pueden pedir al usuario que introduzca parámetros en las operaciones, ser interactivos, o no. Hay un extenso catálogo de plugins oficiales y también existen otros creados por usuarios que complementan en maneras específicas las funciones de GIMP. Estos plugins son comparables a las extensiones de otros programas, como las del navegador Mozilla Firefox o de Libreoffice.


title: GIMP

text: Algunos de los plugins se van incorporando a las nuevas versiones de gimp formando parte del propio programa, una vez que pasan las pruebas necesarias de estabilidad y usabilidad.


title: GIMP

text: GIMP fue desarrollado inicialmente para sistemas GNU/Linux, y desde muy al principio de su desarrollo fue portado a los sistemas operativos Windows y Mac OS. Sus versiones más recientes están disponibles para estos y para muchos otros sistemas operativos.


title: GIMP

text: En enero de 1996 Spencer Kimball y Peter Mattis publicaron la versión 0.54, que ya soportaba la ampliación por plugins que permitían diseñar todo tipo de efectos, filtros y herramientas adicionales. En la versión 0.60 se mejoró la gestión de la memoria, mientras Peter Mattis desarrollaba el toolkit libre GDK/GTK.


title: GIMP

text: El 26 de febrero de 1997 se publicó la versión 0.99, y en junio de 1997 la versión 0.99.10


title: GIMP

text: La versión 1.0 de GIMP se publicó el 5 de junio de 1998.


title: GIMP

text: La versión 1.2 se publicó en enero de 2001, incluye herramientas de medidas, un nuevo visor de imágenes, etc.


title: GIMP

text: La versión 1.2.5 se publicó en agosto de 2003.


title: GIMP

text: En marzo de 2004 se publicó GIMP 2.0.0, donde se puede apreciar el cambio al toolkit GTK 2.x.


title: GIMP

text: La versión 2.4 se publicó en mayo de 2008 y los cambios más importantes con respecto a la versión 2.2 incluyen una interfaz retocada más pulida, una separación mayor entre la interfaz de usuario y el "back-end", mejoras en muchas de las herramientas como las de selección, y algunas nuevas como el clonado en perspectiva.


title: GIMP

text: La versión de GIMP 2.6 se publicó en octubre de 2008.


title: GIMP

text: La versión de GIMP 2.8 se publicó en mayo de 2012. La versión 2.8.0 incluye la posibilidad de tener una única ventana global que contiene todas las ventanas de imágenes, herramientas, pinceles, opciones de herramientas, etc...(a la manera de Photoshop), y también otras nuevas características como la posibilidad de agrupar capas en carpetas, el poder escribir directamente texto sobre la imagen en lugar de sobre una subventana intermedia, una nueva herramienta para clonado tridimensional ("jaula"), nuevos juegos de pinceles y parámetros predefinidos tomados de Gimp Paint Studio, selectores de parámetros de herramientas mediante deslizadores y también tecleando valores numéricos, y otras muchas mejoras, correcciones de errores y algunas otras modificaciones.


title: GIMP

text: La versión de Gimp 2.10 se publicó en 2018. Incorpora 6 años de mejoras. Por ejemplo la nueva herramienta de transformación universal, que combina en una sola varias de las existentes, una mejor herramienta de gestión del color, mejoras en la precisión del color (hasta 32 bits con coma flotante), mejoras en la vista previa de los resultados de los filtros, antes de ejecutarlos, sobre la propia área de trabajo o lienzo, nuevos pinceles adicionales (provenientes de My Paint), diez modos nuevos adicionales de combinación de las capas, mejoras en el control de la herramienta gradiente, nuevas herramientas (como por ejemplo Handle), gestión de la resolución de las imágenes y las capas, nuevos temas de la presentación del interfaz de usuario, nuevos iconos opcionales, entre otras muchas. La versión disponible en octubre de 2019 es la 2.10.12, en la cual se han incluido más mejoras (por ejemplo la gestión del modo CMYK) y se han corregido errores. Hay versión de la ayuda en español para complementar la instalación y también se puede visualizar la ayuda en línea. El manual de gimp 2.10 en español también está disponible en https://docs.gimp.org/2.10/es/.


title: GIMP

text: El formato de ficheros xcf propio de gimp ha sido modificado en la versión 2.10 y, por tanto, ficheros grabados en 2.10 no pueden ser leídos por Gimp 2.8. El menú de grabado de ficheros de Gimp 2.10 proporciona la alternativa de grabar ficheros en formato legible por Gimp 2.8. Con la evolución de la versión 2.8 a la 2.10 algunos de los muchos plugins no funcionan en esta última versión. Para los usuarios de plugins específicos esto puede representar una dificultad. Hay también plugins de la versión 2.8 que continúan funcionando en la 2.10. Funcionan por ejemplo plugins populares como G'mic, o darktable. Con el paso del tiempo, es probable que los plugins que no funcionen en 2.10 se adapten a esta versión e incorporen GEGL y BABL.


title: GIMP

text: Desde octubre de 2019 los desarrolladores están trabajando en las versiones de desarrollo para la versión 3. La versión de desarrollo en este momento es la 2.99.1. Para la versión 3.0 se planea acabar de pasar GIMP totalmente a la biblioteca gráfica GEGL.


title: GIMP

text: Gimpshop fue una modificación de GIMP con una interfaz (ventanas, posición de los comandos en los menús, terminología, etc..) para hacerlo más parecido al Adobe Photoshop. La última versión es la 2.8.0 y está basada en la versión 2.8.0 de GIMP.


title: GIMP

text: GimPhoto es otra modificación de GIMP cuya interfaz ha sido retocada para parecerse al Adobe Photoshop. La última versión es la 1.4.3 y está basada en la versión 2.4.3 de GIMP.


title: GIMP

text: Seashore es un programa basado en GIMP diseñado para el sistema operativo Mac OS, que utiliza de forma nativa la interfaz Cocoa de OS X. Este programa en la actualidad (diciembre de 2008) se encuentra en la versión 0.1.9 e incluye por el momento solamente un conjunto limitado de los filtros disponibles en GIMP.


title: GIMP

text: Posee actualmente los elementos básicos del GIMP: Herramientas de selección rectangular, elíptica, lazo; herramientas de color con pincel, brocha, relleno, texto, goma de borrar, selector de color, gradientes, difumino, clonado, zoom. Utiliza capas como el gimp, con las mismas posibilidades de mezcla solapamiento y juegos de opacidad y transparencia entre ellas.


title: GIMP

text: Posee una gestión del color (incluyendo la posibilidad de uso del CMYK) mucho más integrada en Mac OS que GIMP, ya que Seashore se comunica directamente con el Coloursync, mientras que Gimp utiliza la comunicación con el sistema operativo mediante el entorno gráfico intermedio de ventanas X11.


title: GIMP

text: Seashore escribe los ficheros en el formato del Gimp, el xcf, y también en jpeg, jpeg2000, gif, png y tiff. Es capaz de leer adicionalmente los ficheros pdf, ps. Es más rápido y ligero que el GIMP por su mayor integración en el sistema operativo y sus menores capacidades.


title: GIMP

text: Tiene versiones en varios idiomas, incluido el español, su desarrollador principal considera que la fase temprana de desarrollo en la que se encuentra hace que la traducción requiera todavía muchos cambios.


title: GIMP

text: Seashore puede ser utilizado para tareas sencillas que no requieran filtros avanzados, y es atractivo para los adeptos de la interfaz de usuario de Mac por su buena integración con él, cuando necesitan mezclar diferentes imágenes mediante el uso de capas.


title: GIMP

text: No posee herramientas avanzadas del Gimp como el clonado en perspectiva, el escalado como herramienta (aunque puede escalar con su propio menú), rotación, y otras herramientas. Seashore no dispone de la posibilidad de utilizar rutas y máscaras.


title: GIMP

text: CinePaint, anteriormente conocido como Film Gimp, es una modificación de GIMP que añade soporte para 16 bits de profundidad por canal de color, en total 48 bits por pixel, posee un gestor de fotogramas y otras mejoras, y que es utilizado en la industria cinematográfica.


title: GNU Lesser General Public License

text: La Licencia Pública General Reducida de GNU, o más conocida por su nombre en inglés GNU Lesser General Public License (antes "GNU Library General Public License" o Licencia Pública General para Bibliotecas de GNU), o simplemente por su acrónimo del inglés GNU LGPL, es una licencia de software creada por la Free Software Foundation que pretende garantizar la libertad de compartir y modificar el software cubierto por ella, asegurando que el software es libre para todos sus usuarios.


title: GNU Lesser General Public License

text: Esta licencia, se aplica a cualquier programa o trabajo que contenga una nota puesta por el propietario de los derechos del trabajo estableciendo que su trabajo puede ser distribuido bajo los términos de esta "LGPL Lesser General Public License". El "Programa", utilizado en lo subsecuente, se refiere a cualquier programa o trabajo original, y el "trabajo basado en el Programa" significa ya sea el programa o cualquier trabajo derivado del mismo bajo la ley de derechos de autor: es decir, un trabajo que contenga el Programa o alguna porción de él, ya sea íntegra o con modificaciones o traducciones a otros idiomas.


title: GNU Lesser General Public License

text: Otras actividades que no sean copia, distribución o modificación no están cubiertas en esta licencia y están fuera de su alcance. El acto de ejecutar el programa no está restringido, y la salida de información del programa está cubierta solo si su contenido constituye un trabajo basado en el Programa (es independiente de si fue resultado de ejecutar el programa). Si esto es cierto o no depende de la función del programa.


title: GNU Lesser General Public License

text: La principal diferencia entre la GPL y la LGPL es que la última puede enlazarse a (en el caso de una biblioteca, 'ser utilizada por') un programa no-GPL, que puede ser software libre o software no libre. A este respecto, la GNU LGPL versión 3 se presenta como un conjunto de permisos añadidos a la GNU GPL.


title: GNU Lesser General Public License

text: Estos programas no-GPL o no-LGPL se pueden distribuir bajo cualquier condición elegida si no se tratan de trabajos derivados (derivative work). Si se trata de un trabajo derivado entonces los términos deben permitir modificación por parte del usuario para uso propio y la utilización de técnicas de Ingeniería inversa para desarrollar dichas modificaciones.  Definir cuándo un trabajo que usa un programa LGPL es un trabajo derivado o no es un asunto legal (ver el texto de la LGPL). Un ejecutable independiente que enlaza a una biblioteca se acepta por lo general como un trabajo que no es derivado de la biblioteca. Sería considerado como un trabajo que utiliza la biblioteca y se aplicaría el párrafo 5 de la LGPL.


title: GNU Lesser General Public License

text: De la traducción no oficial al español:


title: GNU Lesser General Public License

text: Esencialmente debería ser posible enlazar el software con una nueva versión del programa cubierto por la LGPL. El método utilizado comúnmente para lograr esto es utilizar un mecanismo apropiado de bibliotecas dinámicas o compartidas. En forma alternativa, está permitido enlazar estáticamente una biblioteca LGPL (ver bibliotecas estáticas) si se proporciona el código fuente del programa o se brinda el código objeto para enlazar contra la biblioteca LGPL.


title: GNU Lesser General Public License

text: Una característica de la LGPL es que se puede convertir cualquier código LGPL en código GPL (sección 2 de la licencia). Esta característica es útil para reutilización directa de código LGPL en código GPL de bibliotecas y aplicaciones, o si se quisiera crear una versión del código que no pueda utilizarse en software propietario.


title: GNU Lesser General Public License

text: El término "GNU Library General Public License" daba la impresión de que la FSF quería que todas las bibliotecas utilizaran la licencia LGPL y todos los programas utilizaran la licencia GPL. En febrero de 1999 Richard Stallman escribió el documento "Por qué en su próxima biblioteca no debería utilizar la Lesser GPL para Bibliotecas" explicando por qué este no era el caso, y que la LGPL no se debería utilizar necesariamente para bibliotecas:


title: GNU Lesser General Public License

text: Al contrario de lo que muchos creen, esto no significa que la FSF infravalore la LGPL, sino simplemente dice que no debería ser utilizada para "todas" las bibliotecas. En el mismo documento se lee:


title: GNU Lesser General Public License

text: De hecho, Stallman y la FSF abogan por el uso de licencias incluso menos restrictivas que la LGPL como estrategia (para maximizar la libertad de los usuarios). Un ejemplo destacado es la aprobación de Stallman para utilizar la licencia BSD en el proyecto Vorbis.


title: Preguntas frecuentes

text: El término preguntas frecuentes (traducción al español de la expresión inglesa "Frequently Asked Questions", cuyo acrónimo es FAQ) se refiere a una lista de preguntas y respuestas que surgen frecuentemente dentro de un determinado contexto y para un tema en particular.


title: Preguntas frecuentes

text: En español, se pueden utilizar los siguientes acrónimos:Los primeros sistemas FAQ fueron desarrollados en los años sesenta y eran unas interfaces construidos con lenguaje natural y su acceso era bastante restringido; entre los sistemas creados bajo este esquema estaba béisbol (1961), el cual respondía a preguntas sobre la liga de béisbol de los Estados Unidos en el periodo de un año. También estaba el sistema lunar (1972), el cual respondía preguntas sobre el análisis geológico de las piedras lunares obtenidas en las misiones de apoyo en los viajes a la luna; con base en estos sistemas y tras el éxito obtenido de ellos, se fueron desarrollando más; los cuales eran basados en una base de datos de conocimiento escrita de forma manual por expertos.


title: Preguntas frecuentes

text: Aunque el término PP. FF. es de uso reciente, el concepto es muy antiguo. Por ejemplo, Matthew Hopkins escribió "El Descubrimiento de las Brujas" (1647) en forma de preguntas y respuestas. Otro famoso ejemplo de este concepto es el catecismo de Ripalda o también las primeras versiones del "Manifiesto comunista", los "Principios del Comunismo" escrito por Friedrich Engels en 1847.


title: Preguntas frecuentes

text: En el contexto de internet, las PP. FF. se originaron de la lista de correo de la NASA a comienzos de la década de los ochenta. Las primeras PP. FF. se desarrollaron en 1982, cuando el almacenamiento de información tenía todavía un coste muy elevado. En la lista de correos SPACE, se supuso que los usuarios almacenarían los mensajes anteriores, pero en la práctica esto no sucedió. Por este motivo, la dinámica de la lista de correo comenzó a transformarse en una repetición de preguntas que ya se habían respondido en mensajes anteriores.


title: Preguntas frecuentes

text: La costumbre de publicar PP. FF. se extendió a otras listas de correo. La primera persona en publicar una lista de PP. FF. semanal fue Jef Poskanzer en USENET net.graphics/comp.graphics. Hoy en día, en USENET, preguntar por asuntos resueltos en las PP. FF. se considera una falta de "netiquette", puesto que esto indicaría que el usuario no se molestó en consultar la lista antes de preguntar.


title: Preguntas frecuentes

text: En la actualidad, el término se utiliza para referirse a listas de preguntas frecuentes o cualquier listado de preguntas, independientemente de que se formulen con frecuencia o no.


title: Preguntas frecuentes

text: El término PP. FF. —y el concepto de listas de preguntas— ha trascendido el ámbito de internet, y hoy en día es habitual verlo en folletos informativos sobre artículos de consumo.


title: Número primo

text: En matemáticas, un número primo es un número natural mayor que 1 que tiene únicamente dos divisores positivos distintos: él mismo y el 1. Por el contrario, los números compuestos son los números naturales que tienen algún divisor natural aparte de sí mismos y del 1, y, por lo tanto, pueden factorizarse. El número 1, por convenio, no se considera ni primo ni compuesto.


title: Número primo

text: Los 168 números primos menores que 1000 son:


title: Número primo

text: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, , , 137, , , , , , , , , , , , , , 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991 y 997 .


title: Número primo

text: El primer número primo a partir del número mil es el 1009, después de diez mil es el , a partir de cien mil es el e inmediatamente tras un millón es el .


title: Número primo

text: La propiedad de ser número primo se denomina primalidad.


title: Número primo

text: En la teoría algebraica de números, a los números primos se les conoce como números "racionales primos" para distinguirlos de los números gaussianos primos. La primalidad no depende del sistema de numeración, pero sí del anillo donde se estudia la primalidad. Dos es primo racional; sin embargo tiene factores como entero gaussiano: 2 = (1+i)*(1-i).


title: Número primo

text: El estudio de los números primos es una parte importante de la teoría de números, rama de las matemáticas que trata las propiedades, básicamente aritméticas, de los números enteros.


title: Número primo

text: Los números primos están presentes en algunas conjeturas centenarias tales como la hipótesis de Riemann y la conjetura de Goldbach, resuelta por Harald Helfgott en su forma débil.


title: Número primo

text: La distribución de los números primos es un asunto reiterativo de investigación en la teoría de números: si se consideran números aisladamente, los primos parecieran estar distribuidos de modo probabilístico, pero la distribución «global» de los números primos se ajusta a leyes bien definidas.


title: Número primo

text: Las muescas presentes en el hueso de Ishango, que data de hace más de (anterior por tanto a la aparición de la escritura) y que fue hallado por el arqueólogo Jean de Heinzelin de Braucourt, parecen aislar cuatro números primos: 11, 13, 17 y 19. Algunos arqueólogos interpretan este hecho como la prueba del conocimiento de los números primos. Con todo, existen muy pocos hallazgos que permitan discernir los conocimientos que tenía realmente el hombre de aquella época.


title: Número primo

text: Numerosas tablillas de arcilla cocida atribuidas a las civilizaciones que se fueron sucediendo en Mesopotamia a lo largo del II milenio a.C. muestran la resolución de problemas aritméticos y atestiguan los conocimientos de la época. Los cálculos requerían conocer los inversos de los naturales, que también se han hallado en tablillas. En el sistema sexagesimal que empleaban los babilonios para escribir los números, los inversos de los divisores de potencias de 60 ("números regulares") se calculan fácilmente; por ejemplo, dividir entre 24 equivale a multiplicar por 150 (2·60+30) y correr la coma sexagesimal dos lugares. El conocimiento matemático de los babilonios necesitaba una sólida comprensión de la multiplicación, la división y la factorización de los naturales.


title: Número primo

text: En las matemáticas egipcias, el cálculo de fracciones requería conocimientos sobre las operaciones, la división de naturales y la factorización. Los egipcios solo operaban con las llamadas fracciones egipcias, suma de fracciones unitarias, es decir, aquellas cuyo numerador es 1, como formula_1, por lo que las fracciones de numerador distinto de 1 se escribían como suma de inversos de naturales, a ser posible sin repetición formula_2 en lugar de formula_3. Es por ello que, en cierta manera, tenían que conocer o intuir los números primos.


title: Número primo

text: La primera prueba indiscutible del conocimiento de los números primos se remonta a alrededor del año y se encuentra en los "Elementos" de Euclides (tomos VII a IX). Euclides define los números primos, demuestra que hay infinitos de ellos, define el máximo común divisor y el mínimo común múltiplo y proporciona un método para determinarlos que hoy en día se conoce como el algoritmo de Euclides. Los "Elementos" contienen asimismo el teorema fundamental de la aritmética y la manera de construir un número perfecto a partir de un número primo de Mersenne.


title: Número primo

text: La criba de Eratóstenes, atribuida a Eratóstenes de Cirene, es un método sencillo que permite encontrar números primos. Hoy en día, empero, los mayores números primos que se encuentran con la ayuda de ordenadores emplean otros algoritmos más rápidos y complejos.


title: Número primo

text: Después de las matemáticas griegas hubo pocos avances en el estudio de los números primos hasta el siglo . En 1640 Pierre de Fermat estableció (aunque sin demostración) el pequeño teorema de Fermat, posteriormente demostrado por Leibniz y Euler. Es posible que mucho antes se conociera un caso especial de dicho teorema en China.


title: Número primo

text: Fermat conjeturó que todos los números de la forma 2+1 eran primos (debido a lo cual se los conoce como números de Fermat) y verificó esta propiedad hasta "n" = 4 (es decir, 2 + 1). Sin embargo, el número de Fermat 2 + 1 es compuesto (uno de sus factores primos es 641), como demostró Euler. De hecho, hasta nuestros días no se conoce ningún número de Fermat que sea primo aparte de los que ya conocía el propio Fermat.


title: Número primo

text: El monje francés Marin Mersenne investigó los números primos de la forma 2 − 1, con "p" primo. En su honor, se los conoce como números de Mersenne.


title: Número primo

text: En el trabajo de Euler en teoría de números se encuentran muchos resultados que conciernen a los números primos. Demostró la divergencia de la serie formula_4, y en 1747 demostró que todos los números perfectos pares son de la forma 2(2 - 1), donde el segundo factor es un número primo de Mersenne. Se cree que no existen números perfectos impares, pero todavía es una cuestión abierta.


title: Número primo

text: A comienzos del siglo , Legendre y Gauss conjeturaron de forma independiente que, cuando "n" tiende a infinito, el número de primos menores o iguales que "n" es asintótico a formula_5, donde ln("n") es el logaritmo natural de "n". Las ideas que Bernhard Riemann plasmó en un trabajo de 1859 sobre la función zeta describieron el camino que conduciría a la demostración del teorema de los números primos. Hadamard y De la Vallée-Poussin, cada uno por separado, dieron forma a este esquema y consiguieron demostrar el teorema en 1896.


title: Número primo

text: Actualmente no se comprueba la primalidad de un número por divisiones sucesivas, al menos no si el número es relativamente grande.


title: Número primo

text: Durante el siglo se desarrollaron algoritmos para saber si un número es primo o no factorizando completamente el número siguiente (p+1) o el anterior (p-1). Dentro del primer caso se encuentra el test de Lucas-Lehmer, desarrollado a partir de 1856. Dentro del segundo caso se encuentra el test de Pépin para los números de Fermat (1877). El caso general de test de primalidad cuando el número inmediatamente anterior se encuentra completamente factorizado se denomina test de Lucas.


title: Número primo

text: Posteriormente se encontraron algoritmos de primalidad con solo obtener una factorización parcial de p+1 o p-1. Ejemplos de estos algoritmos son el test de Proth (desarrollado alrededor de 1878) y el test de Pocklington (1914). En estos algoritmos se requiere que el producto de los factores primos conocidos de p-1 sea mayor que la raíz cuadrada de "p". Más recientemente, en 1975, Brillhart, Lehmer y Selfridge desarrollaron el test BLS de primalidad que solo requiere que dicho producto sea mayor que la raíz cúbica de "p". El mejor método conocido de esta clase es el test de Konyagin y Pomerance del año 1997, que requiere que dicho producto sea mayor que "p".


title: Número primo

text: A partir de la década de 1970 varios investigadores descubrieron algoritmos para determinar si cualquier número es primo o no con complejidad subexponencial, lo que permite realizar tests en números de miles de dígitos, aunque son mucho más lentos que los métodos anteriores. Ejemplos de estos algoritmos son el test APRT-CL (desarrollado en 1979 por Adleman, Pomerance y Rumely, con mejoras introducidas por Cohen y Lenstra en 1984), donde se usan los factores de p-1, donde el exponente m depende del tamaño del número cuya primalidad se desea verificar, el test de primalidad por curvas elípticas (desarrollado en 1986 por S. Goldwasser, J. Kilian y mejorado por A. O. L. Atkin), que entrega un certificado consistente en una serie de números que permite después confirmar rápidamente si el número es primo o no. El desarrollo más reciente es el test de primalidad AKS (2002), que si bien su complejidad es polinómica, para los números que puede manejar la tecnología actual es el más lento de los tres.


title: Número primo

text: Durante mucho tiempo, se pensaba que la aplicación de los números primos era muy limitada fuera de la matemática pura. Esto cambió en los años 1970 con el desarrollo de la criptografía de clave pública, en la que los números primos formaban la base de los primeros algoritmos, tales como el algoritmo RSA.


title: Número primo

text: Desde 1951, el mayor número primo conocido siempre ha sido descubierto con la ayuda de ordenadores. La búsqueda de números primos cada vez mayores ha suscitado interés incluso fuera de la comunidad matemática. En los últimos años han ganado popularidad proyectos de computación distribuida tales como el GIMPS, mientras los matemáticos siguen investigando las propiedades de los números primos.


title: Número primo

text: La cuestión acerca de si el número 1 debe o no considerarse primo está basada en la convención. Ambas posturas tienen sus ventajas y sus inconvenientes. De hecho, hasta el siglo , los matemáticos en su mayoría lo consideraban primo. Muchos trabajos matemáticos siguen siendo válidos a pesar de considerar el 1 como un número primo, como, por ejemplo, el de Stern y Zeisel. La lista de Derrick Norman Lehmer de números primos hasta el 10.006.721, reimpresa hasta el año 1956 empezaba con el 1 como primer número primo.


title: Número primo

text: Actualmente, la comunidad matemática se inclina por no considerar al 1 en la lista de los números primos. Esta convención, por ejemplo, permite una formulación muy económica del teorema fundamental de la aritmética: «"todo número natural tiene una representación única como producto de factores primos, salvo el orden"». Además, los números primos tienen numerosas propiedades de las que carece el 1, tales como la relación del número con el valor correspondiente de la función φ de Euler o la función divisor. Cabe también la igualdad para todo formula_6 entero positivo, formula_7, lo que permitiría decir que tiene formula_6 factores.


title: Número primo

text: El teorema fundamental de la aritmética establece que todo número natural tiene una representación única como producto de factores primos, salvo el orden. Un mismo factor primo puede aparecer varias veces. El 1 se representa entonces como un producto vacío.


title: Número primo

text: Se puede considerar que los números primos son los «ladrillos» con los que se construye cualquier número natural. Por ejemplo, se puede escribir el número 23.244 como producto de 2·3·13·149, y cualquier otra factorización del 23.244 como producto de números primos será idéntica excepto por el orden de los factores.


title: Número primo

text: La importancia de este teorema es una de las razones para excluir el 1 del conjunto de los números primos. Si se admitiera el 1 como número primo, el enunciado del teorema requeriría aclaraciones adicionales.


title: Número primo

text: A partir de esta unicidad en la factorización en factores primos se desarrollan otros conceptos muy utilizados en matemáticas, tales como el mínimo común múltiplo, el máximo común divisor y la coprimalidad de dos o más números. Así,Las funciones aritméticas, es decir, funciones reales o complejas, definidas sobre un conjunto de números naturales, desempeñan un papel crucial en la teoría de números. Las más importantes son las funciones multiplicativas, que son aquellas funciones "f" en las cuales, para cada par de números coprimos ("a","b") se tiene


title: Número primo

text: Algunos ejemplos de funciones multiplicativas son la función φ de Euler, que a cada "n" asocia el número de enteros positivos menores y coprimos con "n", y las funciones τ y σ, que a cada "n" asocian respectivamente el número de divisores de "n" y la suma de todos ellos. El valor de estas funciones en las potencias de números primos es


title: Número primo

text: Gracias a la propiedad que las define, las funciones aritméticas pueden calcularse fácilmente a partir del valor que toman en las potencias de números primos. De hecho, dado un número natural "n" de factorización


title: Número primo

text: se tiene que


title: Número primo

text: con lo que se ha reconducido el problema de calcular "f"("n") al de calcular "f" sobre las potencias de los números primos que dividen "n", valores que son generalmente más fáciles de obtener mediante una fórmula general. Por ejemplo, para conocer el valor de la función φ sobre "n"=450=2·3·5 basta con calcular


title: Número primo

text: Existen infinitos números primos. Euclides realizó la primera demostración alrededor del año  en el libro IX de su obra "Elementos". Una adaptación común de esta demostración original sigue así: Se toma un conjunto arbitrario pero finito de números primos "p", "p", "p", ···, "p", y se considera el producto de todos ellos más uno, formula_30. Este número es obviamente mayor que 1 y distinto de todos los primos "p" de la lista. El número "q" puede ser primo o compuesto. Si es primo tendremos un número primo que no está en el conjunto original. Si, por el contrario, es compuesto, entonces existirá algún factor "p" que divida a "q". Suponiendo que "p" es alguno de los "p", se deduce entonces que "p" divide a la diferencia formula_31, pero ningún número primo divide a 1, es decir, se ha llegado a un absurdo por suponer que "p" está en el conjunto original. La consecuencia es que el conjunto que se escogió no es exhaustivo, ya que existen números primos que no pertenecen a él, y esto es independiente del conjunto finito que se tome.


title: Número primo

text: Por tanto, el conjunto de los números primos es infinito.


title: Número primo

text: Si se toma como conjunto el de los "n" primeros números primos, entonces formula_32, donde "p"# es lo que se llama primorial de "p". Un número primo de la forma "p"# +1 se denomina número primo de Euclides en honor al matemático griego. También se puede elaborar una demostración similar a la de Euclides tomando el producto de un número dado de números primos "menos" uno, el lugar del producto de esos números primos "más" uno. En ese sentido, se denomina número primo primorial a un número primo de la forma "p"# ± 1.


title: Número primo

text: No todos los números de la forma "p"# +1 son primos. En este caso, como se sigue de la demostración anterior, todos los factores primos deberán ser mayores que "n". Por ejemplo: 2·3·5·7·11·13+1=30031=59·509


title: Número primo

text: Otros matemáticos han demostrado la infinitud de los números primos con diversos métodos procedentes de áreas de las matemáticas tales como al álgebra conmutativa y la topología. Algunas de estas demostraciones se basan en el uso de sucesiones infinitas con la propiedad de que cada uno de sus términos es coprimo con todos los demás, por lo que se crea una biyección entre los términos de la sucesión y un subconjunto (infinito) del conjunto de los primos.


title: Número primo

text: Una sucesión que cumple dicha propiedad es la sucesión de Euclides-Mullin, que deriva de la demostración euclídea de la infinitud de los números primos, ya que cada uno de sus términos se define como el factor primo más pequeño de uno más el producto de todos los términos anteriores. La sucesión de Sylvester se define de forma similar, puesto que cada uno de sus términos es igual a uno más el producto de todos los anteriores. Aunque los términos de esta última sucesión no son necesariamente todos primos, cada uno de ellos es coprimo con todos los demás, por lo que se puede escoger cualquiera de sus factores primos, por ejemplo, el menor de ellos, y el conjunto resultante será un conjunto infinito cuyos términos son todos primos.


title: Número primo

text: Un resultado aún más fuerte, y que implica directamente la infinitud de los números primos, fue descubierto por Euler en el siglo . Establece que la serie formula_4 es divergente. Uno de los teoremas de Mertens concreta más, estableciendo que donde la expresión "O"(1) indica que ese término está acotado entre -"C" y "C" para "n" mayor que "n", donde los valores de "C" y "n" no están especificados.


title: Número primo

text: Otro resultado es el teorema de Dirichlet, que dice así: El postulado de Bertrand enuncia así:


title: Número primo

text: Una manera más débil pero elegante de formularlo es que, si "n" es un número natural mayor que 1, entonces siempre existe un número primo "p" tal que "n" < "p" < 2"n". Esto supone que, en una progresión geométrica de primer término entero mayor que 3 y razón igual a 2, entre cada término de la progresión y el siguiente, se tiene al menos un número primo.


title: Número primo

text: Una vez demostrado la infinitud de los números primos, cabe preguntarse cómo se distribuyen los primos entre los números naturales, es decir, cuán frecuentes son y dónde se espera encontrar el "n"-ésimo número primo. Este estudio lo iniciaron Gauss y Legendre de forma independiente a finales del siglo, para el cual introdujeron la función enumerativa de los números primos π("n"), y conjeturaron que su valor fuese aproximadamente


title: Número primo

text: El empeño de demostrar esta conjetura abarcó todo el siglo . Los primeros resultados fueron obtenidos entre 1848 y 1859 por Chebyshov, quien demostró utilizando métodos puramente aritméticos la existencia de dos constantes "A" y "B" tales que para "n" suficientemente grande. Consiguió demostrar que, si existía el límite del cociente de aquellas expresiones, este debía ser 1.


title: Número primo

text: Hadamard y De la Vallée-Poussin elaboraron una demostración en 1896, independientemente el uno del otro, usando métodos similares, basados en el uso de la función zeta de Riemann, que había sido introducida por Bernhard Riemann en 1859. Hubo que esperar hasta 1949 para encontrar una demostración que usara solo métodos elementales (es decir, sin usar el análisis complejo). Esta demostración fue ideada por Selberg y Erdős. Actualmente, se conoce el teorema como teorema de los números primos.


title: Número primo

text: El mismo Gauss introdujo una estimación más precisa, utilizando la función logaritmo integral:


title: Número primo

text: En 1899 De la Vallée-Poussin demostró que el error que se comete aproximando formula_38 de esta forma es para una constante positiva "a" y para cada entero "m". Este resultado fue ligeramente mejorado a lo largo de los años. Por otra parte, en 1901 Von Koch mostró que si la hipótesis de Riemann era cierta, se tenía la siguiente estimación, más precisa:


title: Número primo

text: Una forma equivalente al teorema de los números primos es que p, el "n"-ésimo número primo, queda bien aproximado por "n"ln("n"). En efecto, "p" es estrictamente mayor que este valor.


title: Número primo

text: Ligado a la distribución de los números primos se encuentra el estudio de los intervalos entre dos primos consecutivos. Este intervalo, con la única salvedad del que hay entre el 2 y el 3, debe ser siempre igual o mayor que 2, ya que entre dos números primos consecutivos al menos hay un número par y por tanto compuesto. Si dos números primos tienen por diferencia 2, se dice que son "gemelos", y con la salvedad del «triplete» formado por los números 3, 5 y 7, los números gemelos se presentan siempre de dos en dos. Esto también es fácil de demostrar: entre tres números impares consecutivos mayores que 3 siempre hay uno que es múltiplo de 3, y por tanto compuesto. Los primeros pares de números primos gemelos son (3,5), (5,7), (11, 13), (17, 19) y (29, 31).


title: Número primo

text: Por otra parte, la diferencia entre primos consecutivos puede ser tan grande como se quiera. La demostración es relativamente sencilla:


title: Número primo

text: Sea un número natural formula_41. Entonces, todos los números de la forma


Número primo


title: Número primo

text: son números compuestos si formula_43, pues formula_44.


title: Número primo

text: Se puede construir así una lista con formula_41 números compuestos, y dado que formula_41 es un número natural arbitrario, entonces el intervalo puede hacerse tan grande como se desee.


title: Número primo

text: Por ejemplo, si se requiere construir un intervalo de cinco números consecutivos donde ninguno sea un número primo, se hace formula_47. Estos valores corresponden a:


title: Número primo

text: El siguiente valor, 6!+7=727, es primo. De todas formas, el menor número primo que dista del siguiente en "n" es generalmente mucho menor que el factorial, por ejemplo, el caso más pequeño de dos primos consecutivos separados de ocho unidades es (89, 97), mientras que 8! es igual a 40.320.


title: Número primo

text: La sucesión de las diferencias entre primos consecutivos ha sido profusamente estudiada en matemáticas, y alrededor de este concepto se han establecido muchas conjeturas que permanecen sin resolver.


title: Número primo

text: El modelado de la distribución de los números primos es un tema de investigación recurrente entre los teóricos de números. La primalidad de un número concreto es (hasta ahora) impredecible a pesar de que existen leyes, como el teorema de los números primos y el postulado de Bertrand, que gobiernan su distribución a gran escala. Leonhard Euler comentó: En una conferencia de 1975, Don Zagier comentó:


title: Número primo

text: La criba de Eratóstenes es una manera sencilla de hallar todos los números primos menores o iguales que un número dado. Se basa en confeccionar una lista de todos los números naturales desde el 2 hasta ese número y tachar repetidamente los múltiplos de los números primos ya descubiertos. La criba de Atkin, más moderna, tiene una mayor complejidad, pero si se optimiza apropiadamente también es más rápida. También existe una reciente criba de Sundaram que genera únicamente números compuestos, siendo los primos los números faltantes.


title: Número primo

text: En la práctica, lo que se desea es determinar si un número dado es primo sin tener que confeccionar una lista de números primos. Un método para determinar la primalidad de un número es la división por tentativa, que consiste en dividir sucesivamente ese número entre los números primos menores o iguales a su raíz cuadrada. Si alguna de las divisiones es exacta, entonces el número no es primo; en caso contrario, es primo. Por ejemplo, dado "n" menor o igual que 120, para determinar su primalidad basta comprobar si es divisible entre 2, 3, 5 y 7, ya que el siguiente número primo, 11, ya es mayor que √120. Es el test de primalidad más sencillo, y rápidamente pierde su utilidad a la hora de comprobar la primalidad de números grandes, ya que el número de factores posibles crece demasiado rápido a medida que crece el número potencialmente primo.


title: Número primo

text: En efecto, el número de números primos menores que "n" es aproximadamente De esta forma, para determinar la primalidad de "n", el mayor factor primo que se necesita no es mayor que √"n", dejando el número de candidatos a factor primo en cerca de Esta expresión crece cada vez más lentamente en función de "n", pero, como los "n" grandes son de interés, el número de candidatos también se hace grande: por ejemplo, para "n" = 10 se tienen 450 millones de candidatos.


title: Número primo

text: Asimismo, existen otros muchos tests de primalidad deterministas que se basan en propiedades que caracterizan a los números primos, pero su utilidad computacional depende mucho del test usado. Por ejemplo, se podría emplear el teorema de Wilson para calcular la primalidad de un número, pero tiene el inconveniente de requerir el cálculo de un factorial, una operación computacionalmente prohibitiva cuando se manejan números grandes. Aquí entra en juego el tiempo de ejecución del algoritmo empleado, que se expresa en la notación de Landau. Para poder determinar la primalidad de números cada vez más grandes (de miles de cifras) se buscan aquellos algoritmos cuyo tiempo de ejecución crezca lo más lentamente posible, a ser posible, que se pueda expresar como un polinomio. Si bien el test de primalidad AKS cumple con esta condición, para el rango de números que se usa en la práctica este algoritmo es extremadamente lento.


title: Número primo

text: Por otra parte, a menudo basta con tener una respuesta más rápida con una alta probabilidad (aunque no segura) de ser cierta. Se puede comprobar rápidamente la primalidad de un número relativamente grande mediante tests de primalidad probabilísticos. Estos tests suelen tomar un número aleatorio llamado "testigo" e introducirlo en una fórmula junto con el número potencialmente primo "n". Después de varias iteraciones, se resuelve que "n" es "definitivamente compuesto" o bien "probablemente primo". Estos últimos números pueden ser primos o bien pseudoprimos (números compuestos que pasan el test de primalidad). Algunos de estos tests no son perfectos: puede haber números compuestos que el test considere "probablemente primos" independientemente del testigo utilizado. Esos números reciben el nombre de pseudoprimos absolutos para ese test. Por ejemplo, los números de Carmichael son números compuestos, pero el test de Fermat los evalúa como probablemente primos. Sin embargo, los tests probabilísticos más utilizados, como el test de Miller-Rabin o el obsoleto test de Solovay-Strassen, superado por el anterior, no tienen este inconveniente, aun siendo igualmente tests probabilísticos.


title: Número primo

text: Algunos tests probabilísticos podrían pasar a ser determinísticos y algunos tests pueden mejorar su tiempo de ejecución si se verifican algunas hipótesis matemáticas. Por ejemplo, si se verifica la hipótesis generalizada de Riemann, se puede emplear una versión determinística del test de Miller-Rabin, y el test de primalidad por curvas elípticas podría mejorar notablemente su tiempo de ejecución si se verificaran algunas hipótesis de teoría analítica de números.


title: Número primo

text: Un algoritmo de factorización es un algoritmo que separa uno a uno los factores primos de un número. Los algoritmos de factorización pueden funcionar también a modo de tests de primalidad, pero en general tienen un tiempo de ejecución menos ventajoso. Por ejemplo, se puede modificar el algoritmo de división por tentativa de forma que no se detenga cuando se obtenga una división exacta, sino que siga realizando nuevas divisiones, y no sobre el número original, sino sobre el cociente obtenido. Después de la división por tentativa, los métodos más antiguos que se conocen son el método de Fermat, que se basa en las diferencias entre cuadrados y que es especialmente eficaz cuando "n" es el producto de dos números primos próximos entre sí, y el método de Euler, que se basa en la representación de "n" como suma de dos cuadrados de dos formas distintas.


title: Número primo

text: Más recientemente, se han elaborado algoritmos basados en una gran variedad de técnicas, como las fracciones continuas o las curvas elípticas, aunque algunos son mejoras de métodos anteriores (la criba cuadrática, por ejemplo, se basa en una mejora del método de Fermat y posee complejidad computacional subexponencial sobre el número de cifras de "n"). Otros, como el método rho de Pollard, son probabilísticos, y no garantizan hallar los divisores de un número compuesto.


title: Número primo

text: Hoy por hoy, el algoritmo determinístico más rápido de uso general es el "general number field sieve", que también posee complejidad computacional subexponencial sobre el número de cifras de "n". Se ha propuesto un algoritmo cuyo tiempo de ejecución es polinómico sobre el número de cifras de "n" (el algoritmo de Shor), pero requiere ser ejecutado en un ordenador cuántico, ya que su simulación en un ordenador normal requiere un tiempo exponencial. No se conocen algoritmos para factorizar en una computadora tradicional en tiempo polinómico y tampoco se demostró que esto sea imposible.


title: Número primo

text: A lo largo de la historia, se han buscado numerosas fórmulas para generar los números primos. El nivel más alto de exigencia para una fórmula así sería que asociara a cada número natural "n" el "n"-ésimo número primo. De forma más indulgente, se puede pedir una función "f" inyectiva que asocie a cada número natural "n" un número primo de tal forma que cada uno de los valores tomados aparezca solo una vez.


title: Número primo

text: Además, se exige que la función se pueda aplicar, efectiva y eficazmente, en la práctica. Por ejemplo, el teorema de Wilson asegura que "p" es un número primo si y solo si ("p"-1)!≡-1 (mod "p"). Otro ejemplo: la función f("n") = 2 + ( 2("n"!) mod ("n"+1)) genera todos los números primos, solo los números primos, y solo el valor 2 se toma más de una vez. Sin embargo, ambas fórmulas se basan en el cálculo de un factorial, lo que las hace computacionalmente inviables.


title: Número primo

text: En la búsqueda de estas funciones, se han investigado, notablemente, las funciones polinómicas. Cabe subrayar que ningún polinomio, aun en varias variables, devuelve solo valores primos. Por ejemplo, el polinomio en una variable "f"("n") = "n"² + "n" + 41, estudiada por Leonardo Euler, devuelve valores primos para "n" = 0, …, 39, sin embargo para n= 40, resulta formula_55 un número compuesto. Si el término constante vale cero, entonces el polinomio es múltiplo de "n", por lo que el polinomio es compuesto para valores compuestos de "n". En caso contrario, si "c" es el término constante, entonces "f"("cn") es múltiplo de "c", por lo que si el polinomio no es constante, necesariamente deberá incluir valores compuestos.


title: Número primo

text: Sin embargo, hay polinomios en varias variables cuyos valores positivos (cuando las variables recorren números naturales) son precisamente números primos. Un ejemplo, es este polinomio descubierto por Jones, Sato, Wada y Wiens en 1976:


title: Número primo

text: Al igual que ocurre con las fórmulas con factoriales, este polinomio no es práctico de calcular, ya que, aunque los valores positivos que toma son todos primos, prácticamente no devuelve otra cosa que valores negativos cuando se hacen variar las variables "a" a "z" de 0 a infinito.


title: Número primo

text: Otro enfoque al problema de encontrar una función que solo genere números primos viene dado a partir del teorema de Mills, que indica que existe una constante θ tal que


title: Número primo

text: es siempre un número primo, donde formula_63 es la función piso. Todavía no se conoce ninguna fórmula para calcular la constante de Mills, y las aproximaciones que se emplean en la actualidad se basa en la sucesión de los así llamados números primos de Mills (los números primos generados mediante esta fórmula), que no pueden ser obtenidos rigurosamente, sino solo de manera probabilística, suponiendo cierta la hipótesis de Riemann.


title: Número primo

text: De mayor interés son otras fórmulas que, aunque no solo generen números primos, son más rápidas de implementar, sobre todo si existe un algoritmo especializado que permita calcular rápidamente la primalidad de los valores que van tomando. A partir de estas fórmulas se obtienen subconjuntos relativamente pequeños del conjunto de los números primos, que suelen recibir un nombre colectivo.


title: Número primo

text: Los números primos primoriales, directamente relacionados con la demostración euclidiana de la infinitud de los números primos, son los de la forma "p" = "n"# ± 1 para algún número natural "n", donde "n"# es igual al producto 2 · 3 · 5 · 7 · 11 · … de todos los primos ≤ n. Asimismo, un número primo se dice primo factorial si es de la forma "n"! ± 1. Los primeros primos factoriales son:


title: Número primo

text: Los números de Fermat, ligados a la construcción de polígonos regulares con regla y compás, son los números de la forma formula_64, con "n" natural. Los únicos números primos de Fermat que se conocen hasta la fecha son los cinco que ya conocía el propio Fermat, correspondientes a "n" = 0, 1, 2, 3 y 4, mientras que para valores de "n" entre 5 y 32 estos números son compuestos.


title: Número primo

text: Para determinar su primalidad, existe un test especializado cuyo tiempo de ejecución es polinómico: el test de Pépin. Sin embargo, los propios números de Fermat crecen tan rápidamente que solo se lo ha podido aplicar para valores de "n" pequeños. En 1999 se lo aplicó para "n" = 24. Para determinar el carácter de otros números de Fermat mayores se utiliza el método de divisiones sucesivas y de esa manera a fecha de junio de 2009 se conocen 241 números de Fermat compuestos, aunque en la mayoría de los casos se desconozca su factorización completa.


title: Número primo

text: Los números de Mersenne son los de forma M = 2 – 1, donde "p" es primo. Los mayores números primos conocidos son generalmente de esta forma, ya que existe un test de primalidad muy eficaz, el test de Lucas-Lehmer, para determinar si un número de Mersenne es primo o no.


title: Número primo

text: Actualmente, el mayor número primo que se conoce es "M" = 2 - 1, que tiene 24 862 048 cifras en el sistema decimal. Se trata cronológicamente del 51º número primo de Mersenne conocido y su descubrimiento se anunció el 7 de diciembre de 2018 gracias al proyecto de computación distribuida «Great Internet Mersenne Prime Search» (GIMPS).