-->

martes, 31 de julio de 2018

MySQL - Constraints (Restricciones) Primary Key, Clave Estranjera, Default


SQL Constraints (Restricciones) en MySQL


Las restricciones ("constraints") son reglas aplicadas en las columnas de una tabla. Se utilizan para limitar los tipos de datos que se pueden insertar.
Se pueden especificar en el momento de crear la tabla (CREATE) o después de que se haya creado la tabla (ALTER)
Las principales restricciones son las siguientes:

  •      NOT NULL
  •      UNIQUE
  •      PRIMARY KEY
  •      FOREIGN KEY
  •      DEFAULT

NOT NULL


  •      La restricción NOT NULL impone a una columna a NO aceptar valores NULL.
  •      La restricción NOT NULL obliga a un campo a tener un valor.
  •      Por lo tanto, no puede insertar un registro (o actualizar) sin introducir un valor en este campo.

UNIQUE


  •      La restricción UNIQUE identifica de forma única cada registro en una tabla de una base de datos.
  •      Las restricciones UNIQUE y PRIMARY KEY garantizan la unicidad en una columna o conjunto de columnas.
  •      Una restricción PRIMARY KEY automáticamente tiene una restricción UNIQUE definida.
  •      Es posible que haya varias restricciones UNIQUE en una tabla, pero sólo una clave primaria por tabla.

PRIMARY KEY


  •      La restricción PRIMARY KEY (clave primaria) identifica de forma única cada registro en una tabla de base de datos.
  •      Las llaves primarias deben contener valores únicos.
  •      Una columna de clave principal no puede contener valores NULL
  •      Cada tabla debe tener una clave principal y sólo una clave principal.

FOREIGN KEY


  • Una FOREIGN KEY (Clave Extranjera) en una tabla es un campo que apunta a una clave principal en otra tabla.

Ejemplo

Vea un ejemplo de restricción Foreign Key aplicada:

CONSTRAINT fk_ID_Autor FOREIGN KEY (ID_Autor)
REFERENCES tbl_autores (ID_Autor)

En este ejemplo la clave principal está en la tabla tbl_autores y una clave externa de nombre ID_Autor se creó en la tabla actual utilizando el nombre fk_ID_Autor

DEFAULT


  •      La restricción DEFAULT se utiliza para insertar un valor predeterminado en una columna.
  •      El valor predeterminado se agregará a todos los registros nuevos si no se especifica ningún otro valor.

Siguiente lección: Cómo crear tablas en una base de datos

MySQL - Auto incremento de valores en columnas

Auto incremento en columnas en MySQL (AUTO_INCREMENT)

     El auto incremento permite que un número único se genera cuando se inserta un nuevo registro en una tabla.
     En MYSQL se trata de la palabra clave AUTO_INCREMENT, cuyo valor inicial predeterminado es 1, y se incrementa de 1 en 1.
     Para que el valor de la columna se inicie en 100, por ejemplo, utilice:

AUTO_INCREMENT = 100

Al insertar valores en la tabla, no es necesario especificar el valor para la columna de auto-incremento.

  • Sólo se permite utilizar una columna de auto incremento por tabla, generalmente del tipo entero.
  • También necesita la restricción NOT NULL (configurada automáticamente)

Auto Incremento - Ejemplo

Vamos a crear una tabla de nombre tbl_teste_incremento en una base de datos para testes, para estudiar el uso del auto incremento en columnas. Utilice el siguiente código:

CREATE TABLE tbl_teste_incremento (
Codigo SMALLINT PRIMARY KEY AUTO_INCREMENT,
Nombre VARCHAR(20) NOT NULL
AUTO_INCREMENT = 15;


Ahora vamos a insertar datos aleatorios en la tabla para realizar la prueba. No se preocupe si no entiende el código, pues estos comandos serán estudiados en las próximas clases:

INSERT INTO tbl_teste_incremento (Nombre) VALUES ('Ana');
INSERT INTO tbl_teste_incremento (Nombre) VALUES ('María');
INSERT INTO tbl_teste_incremento (Nombre) VALUES ('Julia');
INSERT INTO tbl_teste_incremento (Nombre) VALUES ('Juan');

Y, finalmente, verificamos si el auto incremento funciona ejecutando una consulta en la tabla:

SELECT * FROM tbl_teste_incremento;

Veamos el resultado de la consulta en MySQL Workbench:

[TELA MYSQL WORKBENCH]

Comprobar el valor actual del auto incremento

Podemos comprobar el valor de incremento más actual almacenado en una tabla en la base de datos con el siguiente comando:

SELECT MAX (nombre_coluna)
FROM tabla


Ejemplo en la base de datos db_biblioteca:

SELECT MAX (ID_Libro)
FROM tbl_libro;

Cambiar el valor siguiente en el campo de aumento automático

Para cambiar el valor de incremento del siguiente registro que se va a almacenar en una tabla, utilice el siguiente comando:

ALTER TABLE tabla AUTO_INCREMENT = valor;

Ej.: Para utilizar el valor 90 desde el siguiente registro:

ALTER TABLE tbl_teste_incremento
AUTO_INCREMENT = 90;

Siguiente lección: Tipos de datos comunes en MySQL
MySQL - ORDER BY - Consultas con ordenación de resultados

Consultas con ordenación - cláusula ORDER BY

La palabra clave ORDER BY se utiliza para ordenar el conjunto de resultados de registros devueltos en una consulta SQL.

Sintaxis:

SELECT columnas de tabla
ORDER BY columna_a_ordenar;


Podemos configurar la ordenación como ascendente (creciente) o descendente (decreciente) con el uso de las palabras ASC o DESC:

ASC - Orden ascendente
DESC - Orden descendiente (inversa)

Ejemplos:

Veamos tres ejemplos de consultas con ordenación en MySQL

Ejemplo 01 - Seleccionar todas las columnas de la tabla de libros, ordenando el resultado en orden alfabético de los nombres de los libros:

SELECT * FROM tbl_Libro
ORDER BY Nombre_Libro ASC;


Ejemplo 02 - Seleccionar los nombres de los libros e ID de las editoriales, ordenando el resultado por el ID de la editorial:

SELECT Nombre_Libro, ID_Editoral
FROM tbl_Livro
ORDER BY ID_Editoral;

-- (orden creciente)

Ejemplo 03 - Seleccionar los nombres de los libros y sus precios, en orden decreciente de precios (del más caro para el más barato):

SELECT Nombre_Libro, Precio_Libro
FROM tbl_Libro
ORDER BY Precio_Libro DESC;

- (orden decreciente)

Siguiente:  Filtrar resultados de consultas - cláusula WHERE

cómo crear constantes en javascript - bóson entrenamientos


Constantes en JavaScript


Una variable común puede tener su valor cambiado en cualquier momento durante la ejecución de la secuencia de comandos, simplemente para asignar un nuevo valor a ella.
Sin embargo, a veces necesitamos almacenar valores que nunca cambiarán durante la ejecución del programa. En este caso, podemos utilizar Constantes.
Una constante se crea como una variable inicializada, y su valor es permanente y no se puede cambiar durante la ejecución del script. Se recibe un valor al crearse, y ese valor permanece siempre igual durante toda la ejecución del programa.

Creación de una constante en JavaScript


Para crear una constante utilizamos la palabra clave const, seguida del nombre deseado para la constante y de un valor asignado a ella. Por ejemplo, vamos a crear una constante de nombre PERIODO, cuyo valor será el número 12:

const PERIODO = 12;

Después de crearla, esta constante PERIODO mantendrá el valor 12 durante la vida del script. Una buena práctica al crear constantes es nombrarlas siempre con letras mayúsculas para diferenciarse de variables normales. Si cambia el valor de la constante en el código (en la línea donde se declaró), su valor se cambiará automáticamente en todos los puntos donde la constante aparece en la secuencia de comandos.
Esta es una de las grandes ventajas del uso de constantes, pues permite un rápido mantenimiento en el código cuando sea necesario.

Ejemplo de script con constantes:


El siguiente ejemplo utiliza una constante de nombre PERIODO, cuyo valor es 10, para representar el número de parcelas de un préstamo sin intereses. El usuario deberá escribir el valor del préstamo, y el programa informará el valor de cada parcela a ser pagada:

<script>
  var nombre;
  var parcela;
  const PERIODO = 10;
  valor = indicador ("Escriba el valor total");
  parcela = valor / PERIODO;
  alert ("El valor de la parcela es " + parcela);
</script>


Siguiente: Operadores Aritméticos

jueves, 26 de abril de 2018

MySQL - Creación de una base de datos

MySQL - Creación de una base de datos


En este tutorial vamos a aprender a crear una nueva base de datos usando MySQL. También aprenderemos a comprobar las bases de datos existentes en el sistema y a excluir bases de datos no utilizadas.

Podemos crear una nueva base de datos con el siguiente comando:

CREATE DATABASE [IF NOT EXISTS] nombre_BD;

Donde nombre_BD es el nombre que queremos dar a la base de datos. El elemento IF NOT EXISTS es opcional. Previene el error de intentar crear una base de datos que ya existe en el servidor. No puede tener dos bases de datos con el mismo nombre.

Ejemplo - Vamos a crear una base de datos de nombre db_Biblioteca, que será utilizada en los demás ejemplos del curso:

CREATE DATABASE db_Biblioteca;

Comprobar la base de datos creada

Podemos encontrar las bases de datos existentes en el sistema con el comando SHOW DATABASES:

SHOW DATABASES;

Comando USE

El comando USE indica al SGBDR que utiliza la base de datos especificada para ejecutar los comandos.

Sintaxis:
USE nombre_banco_de_datos;

Para ver la base de datos seleccionada actualmente, ejecute el comando:

SELECT DATABASE();

Eliminar una base de datos

Podemos eliminar una base de datos existente usando el comando DROP DATABASE:

DROP DATABASE [IF EXISTS] nombre_BD;

Por ejemplo, para eliminar una base de datos cuyo nombre es Biblioteca podemos ejecutar:
DROP DATABASE Biblioteca;

Siguiente: Restricciones (Constraints)


Cómo borrar archivos en Linux enviándolos a la papelera de reciclaje en la línea de comandos

Cómo utilizar la Papelera de reciclaje en la línea de comandos de Linux

La utilidad trash-cli proporciona una papelera para la línea de comandos en Linux. De esta forma, es posible eliminar archivos, sin borrarlos permanentemente del sistema - al menos hasta que la papelera sea limpiada.

En general, esta aplicación no se instala de forma predeterminada, por lo que es probable que tenga que instalarla mediante el gestor de paquetes de su distro.

Para los sistemas basados en Debian, utilice el siguiente comando:
sudo apt-get install trash-cli

En el Arch linux:
sudo pacman -S trash-cli

Y en Linux Fedora / CentOS / Red Hat:
sudo yum install trash-cli

Enviar archivos a la papelera de reciclaje en Linux

Para borrar un archivo enviándolo a la papelera en la línea de comandos basta emitir el comando trash, de la siguiente manera:

$ trash camino_nombre_archivo_o_directorio

De esta forma el archivo es borrado del directorio actual, pero no del sistema, quedando aún almacenado en la papelera. Recuerde que el archivo todavía sigue ocupando espacio en disco, hasta que se quita de la papelera y se elimina del sistema en definitiva. Esta funcionalidad es similar a la de la Papelera de Windows.

Visualización del contenido de la papelera

Para ver el contenido de la papelera basta con ejecutar el comando trash-list:
$ trash-list

Restaurar archivos de la papelera

Para restaurar un archivo de la papelera de reciclaje (volverlo a su directorio original), utilice el comando restore-trash. Se mostrarán todos los archivos presentes en la papelera, con un número asociado a cada uno. Sólo tienes que introducir el número de archivo deseado, y se restaurará.
$ restore-trash

Vaciando la Papelera

Si quiere o necesita vaciar la papelera para liberar espacio en disco, ejecute el comando trash-empty:
$ trash-empty

También puede eliminar de la papelera de reciclaje los archivos que se han borrado por un cierto número de días y que por lo que ya no son necesarios. Para ello, basta con especificar el número de días. Por ejemplo, para borrar en definitivo archivos que hay 10 días en la papelera de reciclaje, ejecute el siguinte comando:
$ trash-empty 10


sábado, 21 de abril de 2018

Cómo Empaquetar Y Comprimir Archivos Con la herramienta Zip En Linux


Empaquetado y compresión de archivos con zip

Hay varias utilidades que se pueden utilizar para empaquetar y comprimir archivos en Linux mediante la línea de comandos. En este tutorial vamos a abordar la utilidad zip para realizar estas tareas con archivos en su sistema.

Es posible que su distribución no traiga la utilidad zip instalada de forma predeterminada. En este caso, instálelo utilizando su gestor de paquetes favorito. Por ejemplo, en Debian use:
# apt-get install zip

Sintaxis del comando zip:

zip [opciones] nombre_archivo_zipado [archivos]

Ejemplos de aplicación de zip:

1 - Crear un archivo comprimido que contiene todos los archivos presentes en el directorio actual:
$ zip nombre_archivo_zipado *

Los archivos creados con el comando zip tienen la extensión .zip.

2 - Si es necesario incluir también el contenido de los subdirectorios en el archivo zip, usamos la opción -r:
$ zip -r nombre_archivo_zipado *

3 - Si posteriormente es necesario añadir más archivos al archivo comprimido, basta ejecutar nuevamente el comando usado para crear el archivo zip:
$ zip nombre_archivo_zipado *

4 - Caso você queira excluir arquivos de dentro do arquivo zipado, use a opção -d seguida do nome do arquivo a excluir:
$ zip nome_arquivo_zipado -d nome_arquivo_a_excluir

5 - Si desea personalizar el proceso de compresión, mostrando por ejemplo información sobre el progreso del proceso, puede utilizar las siguientes opciones:
     -db = mostrar cuántos bytes se han comprimido y cuántos aún faltan
     -dc = mostrar un recuento de los archivos comprimidos y cuántos todavía faltan
     -dd = mostrar puntitos en la pantalla por cada 10MB de archivos que se han comprimido
     -ds = configurar la frecuencia con la que aparecerán los puntitos
     -du = mostrar el tamaño no comprimido de cada archivo

Por ejemplo, para mostrar el número de bytes comprimidos en progreso durante la compresión del contenido del directorio Documentos:
$ zip nombre_archivo_zipado -db -r /home/Documentos

6 - Si desea proteger el contenido del archivo comprimido, puede encriptarlo con una contraseña usando la opción -e (se le pedirá la contraseña):
$ zip nombre_archivo_zipado -r /home/Documentos -e

7 - Para no incluir en el archivo comprimido determinados archivos, podemos usar la opción -x. Por ejemplo, para no incluir archivos de música MP3 podemos usar el siguiente comando:
$ zip nombre_archivo_zipado -r /home/Documentos -x * .mp3

8 - Para ver el contenido de un archivo comprimido, ejecute la utilidad zipinfo:
$ zipinfo nombre_archivo_zipado

9 - Puede especificar el nivel de compresión que se va a aplicar en los archivos empaquetados con el comando zip. Los niveles son representados por números entre 0 y 9, y cuanto mayor sea la compresión, menor el tamaño del archivo generado pero mayor el tiempo necesario para crear el archivo zip. Por ejemplo, suponga que si desea utilizar compresión a nivel 6 al crear un archivo comprimido:
$ zip nombre_archivo_zipado -r / home / Documentos -6


Siguiente: Cómo descomprimir y descomprimir archivos con comando unzip
Lista concisa de atajos de teclado de shell Bash

Atajos de Teclado de Shell Bash - Cheat Sheet


El shell Bash es, sin duda, el más común y utilizado en sistemas Linux y Unix. Por su cuenta, el dominio de su uso es muy importante para que el administrador del sistema, o incluso el usuario común, pueda trabajar con eficiencia y alto rendimiento.

En este artículo traemos una serie de atajos de teclado del bash, que permiten al usuario operar con mucha más facilidad y agilidad en una serie de tareas triviales y también complejas.

Edición en la línea de comandos:

Ctrl + a
Volver al principio de la línea de comandos

Ctrl + e
Ir al final de la línea de comandos

Ctrl + k
Borrar caracteres desde la posición del cursor hasta el final de la línea de comandos

Ctrl + u
Borrar caracteres desde la posición del cursor hasta el principio de la línea de comandos

Ctrl + w
Borrar caracteres desde la posición del cursor hasta el principio de la palabra - o sea, borrar una palabra

Ctrl + y
Pegar una palabra o un texto que se recorta utilizando un atajo de exclusión después del cursor

Ctrl + xx
Mover el cursor entre el inicio de la línea de comandos y la posición actual de él, ida y vuelta.

Alt + b
Mover el cursor una palabra hacia atrás (dirección de inicio de línea de comandos), o ir al principio de la palabra donde el cursor está colocado actualmente.

Alt + f
Mover el cursor una palabra hacia delante (dirección del final de la línea de comandos), o ir al final de la palabra donde el cursor está colocado actualmente.

Alt + d
Borra los caracteres hasta el final de la palabra, iniciando en la posición actual del cursor, lo que significa la palabra entera si el cursor está al principio de la palabra

Alt + c
Capitalizar (hacer mayúscula) el carácter en el que se sitúa el cursor, y mover el cursor al final de la palabra.

Alt + u
Colocar los caracteres en caja alta (mayúsculas) desde la posición del cursor hasta el final de la palabra

Alt + l
Colocar los caracteres en la caja baja (minúscula) desde la posición del cursor hasta el final de la palabra

Alt + t
Cambiar la palabra actual de posición con la anterior

Ctrl + f
Mover el cursor a un carácter más adelante

Ctrl + b
Mover el cursor a un carácter hacia atrás

Ctrl + d
Borra el carácter bajo el cursor

Ctrl + h
Borra el carácter anterior a la posición del cursor

Ctrl + t
Cambia el carácter bajo el cursor con el carácter anterior a él

Trabajando con el historial:


Ctrl + r
Buscar los comandos anteriores del historial (búsqueda inversa)

Ctrl + g
Salir del modo de búsqueda de historial

Ctrl + p
Muestra el comando anterior en el historial (vuelta en el historial) -> similar a la flecha hacia arriba

Ctrl + n
Muestra el comando posterior en el historial (avanza en el historial) -> similar a la flecha hacia abajo

Alt + .
Utilizar la última palabra del comando anterior

Control de comandos:


Ctrl + l
Borra la pantalla

Ctrl + s
Interrumpe la salida en la pantalla, para comandos que exhiben una salida bastante larga.

Ctrl + q
Permite la salida en la pantalla, si se ha interrumpido con Ctrl + s

Ctrl + c
Finaliza el comando en ejecución actualmente

Ctrl + z
Suspende o interrumpe la ejecución del comando

Comandos Bang del Bash (re-ejecución de comandos):


!!
Ejecuta de nuevo el último comando

!abc
Ejecuta de nuevo el comando más reciente que se inicia con los caracteres 'abc'

!xyz:p
Muestra el comando que xyz se ejecutará (pero sin ejecutarlo), añadiéndolo al final de la lista de comandos del historial.

!$
Utilizar la última palabra del comando anterior (el mismo que Alt +.)

!$:p
Muestra la palabra que la secuencia !$ reemplazaría, pero sin ejecutar el comando.

¡Es eso! Para saber más sobre los comandos del terminal, accede a las páginas de manual del bash.
Linux, El Proyecto GNU Y Software Libre


El Proyecto GNU y el software libre

Por Fábio dos Reis

Software libre es software sobre el que los usuarios tienen la libertad para distribuir y cambiar. Algunos usuarios pueden obtener copias sin costo, mientras que otros pagan para obtener estas copias, dependiendo de cómo se distribuye el software.

El proyecto GNU fue un proyecto de desarrollo de software libre para un sistema operativo completo (kernel y programas de sistema), que fue anunciado en septiembre de 1983 por Richard Stallman en el MIT, con el objetivo de proporcionar a los usuarios de ordenadores libertad y control total en el uso de sus equipos a través del desarrollo colaborativo de software, el cual está basado en los llamados "derechos de libertad", a saber: derechos de ejecutar, compartir, estudiar y modificar los programas por cualquiera que desee.

Estos derechos están garantizados por una licencia especial, la GPL (Licencia Pública General / Licencia Pública General, en portugués), lo que garantiza que el software utilizado se llama Software Libre (Free Software), donde la palabra "libre" se refiere a las cuatro libertades citadas arriba (y no al costo del software, como muchas veces se supone - erróneamente). "Free", en este sentido, significa que usted puede realizar varias acciones sobre el software libre que no son posibles de realizarse en un software propietario. La licencia GPL es mantenida por la organización FSF - Free Software Foundation, fundada por el propio Richard Stallman, en 1985. Podemos resumir estas cuatro libertades de la siguiente manera:

  • Libertad 0: Ejecutar el programa para cualquier propósito deseado
  • Libertad 1: Estudiar cómo funciona el programa, y ​​cambiarlo para que funcione de la manera que desee.
  • Libertad 2: Redistribuir copias del software de modo que usted pueda ayudar a su prójimo.
  • Libertad 3: Mejorar el programa, y ​​liberar las mejoras para el público, de modo que toda la comunidad se beneficie.

Para que sea posible implementar las libertades 1 y 3 es necesario que haya acceso al código fuente del software disponible. Los softwares para los que el código fuente está disponible libremente se denominan software de código abierto (Open Source).

Cuando el código se redistribuye, la misma licencia se debe distribuir con él, por lo que el código y la licencia son inseparables. Por lo tanto, si obtiene el código de un software desde Internet, por ejemplo, y lo modifica, debe distribuirlo junto con la licencia GPL, si desea repasarla a continuación. Llamamos a este esquema de "Copyleft", ya que da derechos en lugar de limitarlos, en contraste con el esquema tradicional de copyright.

Algunas de las reglas presentes en la GPL incluyen:

El software GPL debe estar disponible en forma de código fuente y ser utilizado para cualquier propósito deseado por el usuario.
Es expresamente permitido modificar el código y distribuirlo (modificado o no), siempre que los mismos derechos se repasen junto con el software.
También está expresamente permitido distribuir o vender software GPL compilado (ejecutable). En este caso, el código fuente y los derechos GPL deben suministrarse junto con el software ejecutable, o estar disponible si se solicita.
Si escribe un nuevo programa que utiliza partes de un programa GPL existente, el nuevo programa se considerará un trabajo derivado y se distribuirá bajo la licencia GPL.

La licencia GPL no se refiere a los precios que deben o pueden aplicarse para la comercialización de software. Es completamente legal distribuir gratuitamente copias del software GPL o cobrar por ellas - siempre que el código fuente se suministre o se ponga disponible si se solicita, y el receptor del software también recibe los derechos GPL. En otras palabras, el software GPL no es necesariamente Freeware (software gratis).

La licencia GPL completa, que actualmente está en la versión 3, puede ser consultada en el sitio oficial del proyecto GNU, que es el www.gnu.org/licenses/licenses.html

Otro término muy importante y utilizado por la comunidad del software libre es FOSS - Free and Open Source Software, que indica que un software es libre y al mismo tiempo de código abierto.

La palabra "Free" en inglés es un término ambiguo, pudiendo asumir más de un significado. Por ejemplo, puede significar "Precio igual a cero (gratis)", o "Libre (con libertad)", y es con este último significado que debe ser encarado la expresión "Free Software".

Ejemplos de software libre


A continuación tenemos una selección de algunos de los más importantes softwares libres o Open Source disponibles actualmente para sistemas Linux (muchos también poseen versiones para otros sistemas operativos, como Windows, BSD y Mac OS X):

LibreOffice: Paquete de oficinas que contiene procesador de textos, hoja de cálculo, software para presentaciones y base de datos, editor de ecuaciones y generador de gráficos.
Samba: Software para la creación de servidores de archivos en Linux, de modo que los clientes de Windows puedan acceder a ellos a través de la red.
GIMP: Programa para la edición de fotos e imágenes al estilo de Adobe Photoshop.
MySQL: Servidor de base de datos relacional ampliamente utilizado en la Web. El sitio web del autor utiliza esta base de datos.
Audacity: Programa para grabación de audio, mesa de mezclas de sonido y estación para edición de audio, incluyendo versiones para Microsoft Windows y Mac OS X también.
Apache: El servidor Web más popular en Internet. Más de la mitad de los sitios existentes actualmente se ejecutan en Apache.

Otras licencias

Existen otras licencias en el mundo del software FOSS. Algunas de ellas son:

Licencia BSD


Esta licencia se originó en la Universidad de California a partir de la distribución Unix de Berkeley y ella es muy simple: quien recibe el software básicamente tiene permiso de hacer con el software lo que entiende, siempre y cuando no pase la impresión de que su uso sea endosado por la Universidad. El texto de la licencia debe entregarse junto al código fuente del programa y su documentación.
Una diferencia entre la licencia BSD y la licencia GPL es que en la licencia BSD es posible integrar software que utilice esa licencia en un nuevo proyecto de software sin que sea obligatorio distribuirlo junto con el código fuente, como sucede con software bajo licencia GPL.

Licencia Apache


La licencia Apache se parece a la licencia BSD, pues permite el uso y adopción del código licenciado sin que el código modificado esté disponible para el público. Sin embargo, esta licencia es más compleja que la licencia BSD, pues posee cláusulas que se refieren a patentes y registros de marca, entre otras.

El Manifiesto GNU


Stallman publicó un texto denominado "Manifiesto GNU" al anunciar el proyecto, y ese manifiesto se inicia con las siguientes líneas:

"GNU, que significa Gnu's Not UNIX, es el nombre del software de sistema completo y compatible con UNIX que estoy escribiendo de modo que pueda cederlo de forma libre para cualquiera que quiera usarlo".
(Stallman, Richard, Manifiesto GNU).

Para que todo el software que se ejecuta en un ordenador pueda considerarse libre, un sistema operativo también debería desarrollarse siguiendo esta filosofía, y Stallman incluyó esto como meta primaria del proyecto GNU, y para ello los desarrolladores trabajaron durante mucho tiempo en un proyecto de núcleo denominado GNU Hurd.

Como hemos visto en la introducción del Manifiesto, la palabra GNU fue elegida por Stallman para bautizar su sistema y es un acrónimo recursivo que significa "GNU is Not Unix" (GNU no es Unix), pues el sistema operativo a ser creado tendría el diseño basado en el " Unix, pero sin utilizar ningún código propietario.

En 1991 los desarrolladores en el proyecto GNU ya habían desarrollado una gran cantidad de softwares y componentes requeridos para la creación de un sistema operativo libre completo, pero aún no poseían un kernel - todavía estaba en desarrollo el kernel GNU Hurd, pero todavía lejos de ser completado .

Hoy, el sistema operativo GNU gira sobre el kernel de FreeBSD, con compatibilidad binaria con Linux (software de un sistema puede ser ejecutado en el otro), y también sobre versiones de pre-lanzamiento del Hurd y Darwin, en este caso sin la compatibilidad con Linux.

GNU + Kernel de Linux = Sistema Completo

En 1992, el kernel 0.99 de Linux fue lanzado por Linus Torvalds bajo la licencia GNU GPL, de modo que desarrolladores de Linux y de programas GNU pudieron trabajar juntos para integrar los componentes GNU con ese kernel y así crear un sistema operativo totalmente completo, funcional - y libre.

El desarrollo de Linux es realizado por la comunidad Linux, que está compuesta por miles de programadores en todo el mundo que utilizan el sistema y envían mejoras a los mantenedores. Además de programadores individuales, muchas empresas también colaboran con el desarrollo de Linux (núcleo) y las aplicaciones que se ejecutan sobre él, incluyendo grandes corporaciones como IBM, Intel y Oracle, entre otras.

Linux es un sistema de código abierto, o Open Source, lo que significa que el código fuente del sistema puede ser obtenido libremente para análisis, estudio o modificación - característica que permite traer mayor seguridad del sistema, además de mucha mayor agilidad en la detección y corrección de errores y errores.

El kernel de Linux y gran parte del software que compone el sistema se distribuyen bajo la licencia GPL.


Lo que es Linux - Conceptos Y Historia Resumida


La historia de Unix y de GNU / Linux

En esta primera parte de nuestro artículo sobre lo que es Linux y sus orígenes, vamos a presentar una historia resumida del Sistema operativo Linux, tratando también de sistemas operativos ancestrales y sus relaciones entre sí, desde el final de los años 60 hasta los días actuales.


Primordios: el Unix

Unix es un sistema operativo que surgió a finales de los años 60, más precisamente en 1969, en los laboratorios Bell de AT & T, desarrollado por los investigadores Ken Thompson y Dennis Ritchie (también creador del Lenguaje C de programación), siendo su primera versión se quedó lista en el año 1970.
El sistema fue posteriormente reescrito en lenguaje C, pues había sido escrito originalmente en Assembly, haciendo de esta forma el sistema portátil (pasible de ser ejecutado en ambientes diferentes) y eso llevó la adopción a gran escala de Unix por empresas públicas y privadas e instituciones académicas en EUA.

En 1977 se desarrolló una variante de Unix por un grupo de nombre CSRG (Computer Systems Research Group) en la Universidad de Berkeley (California), bautizada como Berkeley Software Distribution, o simplemente BSD, basada en la versión 6 del Unix original de AT & T (Unix V6 ). Las versiones de BSD se iniciaron con la versión 1BSD, que rodaba en ordenadores PDP-11, y se desarrollaron hasta llegar a la versión 4.4BSD.
Estas versiones contenía código de AT & T, que era licenciado, y Berkeley decidió reescribir todos estos códigos para eliminar los costos de licencias (que se estaban volviendo elevados), pero acabaron abandonando el proyecto por falta de fondos, pero aún así lanzando la última versión, 4.4 BSD-Lite, sin códigos propietarios de AT & T.

Esta versión acabó originando la mayoría de las versiones actuales de sistemas basados en BSD Unix, tales como FreeBSD, NetBSD, OpenBSD e incluso el Mac OS X (de Apple).
Otra rama de los sistemas basados en Unix, en la versión original de AT & T, es unix System V, que ha dado origen a varios sistemas en uso comercial hoy, como HP-UX, AIX (de IBM) y Solaris, entre otros.

Linux es un sistema operativo desarrollado en los moldes de estos sistemas Unix, pero sin utilizar ninguna línea de código de ellos - fue enteramente escrito de cero, pero para adoptar la filosofía de Unix y los patrones utilizados en su desarrollo, muchas características encontradas en estos sistemas, de forma totalmente original y modernizada.

Pantalla de la distribución Debian GNU/Linux
Pantalla de la distribución Debian GNU/Linux

El estándar POSIX

En 1985, profesionales de varias empresas en la industria de computadoras se unieron para desarrollar un estándar denominado POSIX (Portable Operating System Interface para Computer Environments), basado en la definición de interfaz de Unix System V y otros estándares anteriores.
POSIX es un grupo de estándares de IEEE que definen la API (interfaz de programación / interfaz de programación avanzada), shell e interfaces para sistemas operativos. Originalmente creado para sistemas UNIX, el estándar POSIX se puede aplicar a cualquier sistema compatible, como BSD y Linux.

Surgimiento de Linux

La historia de Linux se inicia en el año 1991, cuando un joven estudiante de nombre Linus Torvalds, de la Universidad de Helsinki, en Finlandia, inició un proyecto personal de sistema operativo, basándose en un sistema ya existente, basado en Unix, denominado Minix.
Minix fue creado en 1987 por el profesor de ciencia de la computación Andrew Tannenbaum de la Universidad Libre de Ámsterdam en Holanda y se utilizó básicamente para el estudio de sistemas operativos y por eso no contaba con muchos recursos ni posibilidad de expansión en la época, además de ser licenciado para uso educativo. Siempre que había necesidad de elegir entre simplicidad y eficiencia, Tannenbaum elegía la simplicidad, para facilitar la enseñanza de sistemas operativos con Minix.

Esto significa que ese sistema no tenía muchas funcionalidades que la gente necesitaba para usarlo de manera habitual. Otras variantes del sistema Unix tenían un precio elevado, y por eso eran prohibitivas para usuarios comunes. Entonces, Linus, que había adquirido un interés por sistemas operativos en la época, además de estar frustrado con el esquema de licenciamiento del MINIX, resolvió crear un nuevo sistema, desarrollando un núcleo (núcleo del sistema operativo) en un ordenador que rodaba el propio MINIX , usando el compilador GNU C (compilador utilizado hasta hoy en sistemas Linux!), y luego enviando un mensaje en un grupo de noticias de Usenet llamado comp.os.minix.

El mensaje fue el siguiente:

"Hola a todos ahí que están usando el minix -
Estoy desarrollando un sistema operativo "libre" (sólo un hobby, no será grande y profesional como el gnu) para (ordenadores) clones del AT 386 (486). Él ha sido preparado desde abril, y está empezando a estar listo. Me gustaría obtener retroalimentación sobre cosas que a la gente le gusta o no le gusta en el minix, ya que mi sistema operativo se parece un poco con él (incluso el diseño físico del sistema de archivos debido a razones prácticas, entre otras cosas).
Recientemente he puesto el bash (versión 1.08) y el gcc (1.40), y las cosas parecen funcionar. Esto significa que tendría algo práctico en algunos meses, y me gustaría averiguar qué características la mayoría de la gente desearía (en el sistema). Cualquier sugerencia será bienvenido, pero no voy a prometer que las implemento :-)
Linus (torvalds@kruuna.helsinki.fi)
P.S. Sí - es libre de código de minix, y tiene un sistema de archivos multi-threaded. No es portátil (utiliza conmutación de tareas del 386, etc.), y probablemente nunca soportará nada más que discos duros AT, pues es todo lo que tengo :-(
- Linus Torvalds "

(Torvalds, Linus Benedict. "¿Qué sería como ver en el minix?". Newsgroup: comp.os.minix).

El nombre del sistema operativo "Linux" es una combinación del nombre de Linus más la palabra Unix, y el sistema fue bautizado por Ari Lemmke, un compañero de trabajo de Torvalds en la Universidad de Tecnología de Helsinki. En principio, Linus Torvalds quería bautizar el sistema de "Freax" (una mezcla de "freak", que significa "extraño", con Unix), pero desistió de la idea después de escuchar la opinión de Lemmke, que encontró el nombre Freax una pésima elección.

Cuando Linus terminó de escribir el núcleo, se inició una búsqueda de otros softwares libres, y todo lo que necesitaba fue encontrado en el proyecto GNU. El software libre disponible era suficiente para crear un sistema completo, ya que el proyecto GNU estaba siendo desarrollado desde 1984.

Después de la publicación de este mensaje, los programadores alrededor del mundo rápidamente empezaron a unirse al proyecto ya trabajar para añadir funcionalidades al kernel y también desarrollaron muchas otras herramientas, de modo que Linux se equipara a BSD Unix ya System V, además de traer nuevas funcionalidades.

Artículo siguiente: El proyecto GNU y el Software Libre

Seguirnos por email

Más Populares

Categorías

Fábio dos Reis. Con tecnología de Blogger.

Total de vistas