¿Qué es GNU?


El sistema operativo GNU es un sistema completo de software libre, compatible hacía el futuro con Unix. El término GNU proviene de «GNU No es Unix». Richard Stallman escribió el anuncio inicial del Proyecto GNU en septiembre de 1983. Una versión extendida, denominada el Manifesto de GNU se publicó en setiembre de 1985. Se ha traducido a diversos idiomas.

El nombre «GNU» se eligió porqué satisfacía unos cuantos requisitos. En primer lugar, era un acrónimo recursivo para «GNU No es Unix». En segundo lugar, era una palabra real. Por último, era divertido de decir (o cantar).

La palabra “libre” en “software libre” se refiere a libertad, no a precio [N. del T.: en inglés se usa la misma palabra para libre y gratuito]. Puede o no pagar un precio por obtener software de GNU. De cualquier manera, una vez que obtiene el software, tiene cuatro libertades específicas para usarlo. La libertad de ejecutar el programa como desée, la libertad de copiar el programa y darlo a sus amigos o compañeros de trabajo. La libertad de cambiar el programa como desee, teniendo acceso completo al código fuente. La libertad de distribuir una versión mejorada ayudando así a construir la comunidad (si redistribuye software de GNU, puede cobrar una tarifa por el acto físico de efectuar la copia, o bien puede regalar copias.).

El proyecto para desarrollar el sistema GNU se denomina «Proyecto GNU». El Proyecto GNU se concibió en 1983 como una forma de devolver el espíritu cooperativo que prevalecía en la comunidad computacional en sus primeros días; hacer la cooperación posible al eliminar los obstáculos impuestos por los dueños de software privativo.

En 1971, cuando Richard Stallman comenzó su carrera en el MIT, trabajó en un grupo que usaba software libre exclusivamente. Incluso compañías informáticas frecuentemente distribuían software libre. Los programadores eran libres de cooperar unos con otros, y frecuentemente lo hacían.

Cada usuario de ordenadores necesita un sistema operativo; si no existe un sistema operativo libre, entonces no puedes ni siquiera comenzar a usar una computadora sin recurrir a un software privativo. Así que el primer elemento en la agenda del software libre es un sistema operativo libre.

Para continuar leyendo este artículo visitar: GNU.org

Conceptos de las Shells.


Estas son las definiciones de los conceptos  más utilizados a la hora de hablar de los Shells de Unix y Linux:

  • POSIX : Una familia de estándares libres basados en Unix.
  • Blanco(Blank) : Un carácter espacio o tabulador
  • Comando Interno(Builtin): Un comando que es implementado internamente por la shell, en vez de por un programa ejecutable en algún lugar del sistema de ficheros.
  • Operadores de Control(Control Operator): Un token que realiza una función de control. Es una nueva linea o alguno de los siguientes símbolos: ‘||’, ‘&&’, ‘&’, ‘;’, ‘;;’, ‘|’, ‘|&’, ‘(’, o ‘)’.
  • Estado de Salida(Exit Status): El valor retornado por un comando a su llamador. Este valor está restringido a ocho bits, así que su valor máximo puede ser de 255.
  • Campo(Field): Una unidad de texto que es el resultado de una de las expansiones del shell. Tras la expansión, cuando se ejecuta un comando, los campos resultantes se pueden utilizar como nombre de comando y argumentos .
  • Nombre de Archivo(Filename): Una cadena de caracteres usada para identificar un archivo.
  • Tarea (Job):Un juego de procesos que componen una tubería, y los procesos que descienden de estos, que están todos en el mismo grupo de procesos.
  • Control de Tareas(Job Control): Un mecanismo por el cual los usuarios pueden parar (suspender) y reiniciar (reanudar) la ejecución de procesos.
  • Metacaracter(Metacharacter): Un carácter que, cuando se encuentra sin entrecomillar, separa palabras. Un metacaracter es un blanco o uno de los siguientes caracteres: ‘|’, ‘&’, ‘;’, ‘(’, ‘)’, ‘<’, o ‘>’.
  • Nombre(Name): Una palabra consistente únicamente en letras, números y caracteres de subrayado, y que comienza con una letra o un carácter de subrayado. Los nombres se usan como nombres de variables de shell y de funciones. También se le llama identificador.
  • Operador(Operator): Un operador de control o un operador de redirección. una lista de operadores de redirección. Los operadores contienen al menos un metacaracter sin entrecomillar.
  • Grupo de Procesos (Process Group): Una colección o procesos relacionados cada uno de los cuales tiene el mismo identificador de grupo de procesos.
  • Identificador de Grupo de Procesos(Process Group ID): Un identificador único que representa un grupo de procesos durante su tiempo de vida.
  • Palabra Reservada (Reserved Word): Una palabra que tiene un significado especial para la shell. La mayoría de las palabras reservadas introducen en la shell construcciones de control de flujo, como for y while.
  • Estado de Retorno (Return Status): Un sinónimo para el estado de salida.
  • Señal(Signal): Un mecanismo por el que cualquier proceso puede ser notificado por el kernel de un evento ocurrido en el sistema.
  • Comandos Internos Especiales (Special Builtins): Un comando interno de la shell que ha sido clasificado como especial por el estándar POSIX
  • Token: Una secuencia de caracteres considerados una unidad única por el shell. Puede ser bien una palabra o un operador.
  • Palabra(Word): Una secuencia de caracteres tratados como una unidad por el shell. Las palabras no pueden incluir metacaracteres sin entrecomillar.

El Linux Kernel 3.4 fue lanzado oficialmente.


Tras el lanzamiento de siete versiones candidatas a definitiva (Release Candidate), Linus Torvalds ha anunciado hace varias horas, el 20 de mayo, la disponibilidad inmediata para su descarga del Linux kernel 3.4.

Entre las nuevas funciones incorporadas en el Linux kernel 3.4 podemos mencionar muchas mejoras para el sistema de archivos Btrfs, así como soporte para la tarjeta gráfica Nvidia GeForce 600 ‘Kepler’, la RadeonHD 7xxx y la APU Trinity.

“No ocurrió nada nuevo desde la -rc7, aunque la solución a un error del vinculador en x86 es mayor de lo que me hubiera gustado en esta etapa. […] Dicho esto, tampoco el parche fue del todo espeluznante”.

“De hecho, creo que el ciclo de lanzamiento de la versión 3.4 ha sido bastante tranquilo. Claramente, siempre deseo que las RCs se calmen con más rapidez de lo que parecen hacerlo, pero creo que en general no hemos tenido ningún acontecimiento importante. Esperemos que la ventana de fusión con 3.5 sea también tranquila”, dijo Linus Torvalds en el anuncio oficial.

Principales características del Linux Kernel 3.4:

  • Herramientas de reparación y recuperación de datos para Btrfs;
  • Bloques de metadatos mayores de 4KB en Btrfs;
  • Mejoras de rendimiento para Btrfs;
  • Gestión mejorada de los errores en Btrfs;
  • Soporte anticipado para Nvidia GeForce 600 ‘Kepler’;
  • Soporte para los gráficos Intel Medfield;
  • Soporte para la RadeonHD 7xxx y la APU Trinity;
  • Nueva ABI X32: Modo de 64 bits con punteros de 32 bits;
  • Driver de autoprobing para la CPU x86;
  • Ruta de arranque comprobable con el mapeador de dispositivos “verity”;
  • Soporte para un dispositivo externo de lectura como fuente de origen para un volumen LVM;
  • Rendimiento: mejor visualización del ensamblado, profiles de ramas, filtrado de los usuarios y subprocesos e informe de GTK2 en la GUI;
  • Módulo de seguridad ‘Yama’.

El Linux Kernel 3.4 también trae mejoras en muchas áreas, como correcciones para la gestión de la memoria, redes, mejoras de los sistemas de archivos EXT4, FUSE, NFS, XFS, HFSplus, CIFS y GFS2, así como mejoras de virtualización KVM y Xen.

Como de costumbre, lo de arriba son sólo algunas de las nuevas funciones del Linux kernel 3.4. Para ver la lista completa de los nuevos drivers agregados, nuevos dispositivos compatibles y otras mejoras, click aquí para ver la lista completa de cambios y la página de DriverArch del Linux Kernel 3.4.

Fuente: SoftPedia

¿Qué es un Hashbang(#!)?


Un shell script no es más que un conjunto de comandos almacenados dentro de un archivo. Por lo regular, estos archivos sirven para automatizar tareas de uso diario. Ejemplo de un shell script:

#! /bin/bash

while :

do

who

sleep 600; # Parar por 5 minutos.

done

No existe nada inusual en este script, tan son sólo son un conjunto de comandos que podrían haber sido insertados uno a uno dentro de la línea de comandos. La ventaja de colocar comandos dentro del script van más allá de no tener que tipear los comandos una y otra vez. El script se vuelve una herramienta que puede ser modificada y personalizada fácilmente. Ejemplo del shell script mostrado anteriormente un poco más sofisticado:

#! /bin/bash

#Shell Script para mostrar los usuarios conectados al servidor en un intervalo de 5 minutos.

#Variables

SEGUNDOS=600 # Tiempo a esperar para mostrar usuarios.

while :

do

who

sleep $SEGUNDOS

done

Un Hashbang (#!), comunmente llamado She-Bang en la cabecera de un script, le indica al sistema que el fichero contiene un conjunto de comandos los cuales deberán ser ejecutados por el intérprete especificado. El símbolo #!, es lo que se conoce como un numero mágico de 2 bytes, es decir un marcador especial que define un tipo de archivo.

Seguido del Hashbang, se especifica una ruta. Esta es la ruta que apunta al programa que interpretará los comandos del script. Entonces, este intérprete de comandos ejecutará los comandos empezando desde el renglón que le sigue a la línea donde se especificó el hashbang e ignorando comentarios. Ejemplos:

#!/bin/sh
#!/bin/bash
#!/usr/bin/perl
#!/usr/bin/tcl
#!/bin/sed -f
#!/usr/awk -f

Cada una de las cabeceras mencionadas especifican un intérprete de comandos diferentes. Nótese que el hashbang especificado debe ser capaz de ejecutar los comandos contenidos en el script, ya que de otra forma no podrá ejecutar dichos comandos y desplegará el mensaje “Command not found”.

El símbolo #! puede ser omitido si el script consiste solamente de un conjunto de comandos genéricos del sistema y no de un grupo de directivas especificas de un shell en particular.

EL COMANDO CHMOD.


Versión para imprimir: El comando chmod.


Como ya se ha mencionado anteriormente, los permisos pueden especificarse de dos formas:

  • Simbólica
  • Numéricamente

En notificación simbólica, los permisos se especifican con la siguiente sintaxis:

chmod nombreDeArchivo [ Usuarios ] [ Operador ] [ Permisos ]

El primer campo identifica al tipo de usuario al que se le ajustarán los permisos. La siguiente tabla muestra los símbolos utilizados para representar a los distintos tipos de usuarios en el comando chmod:

Si se omite este campo, implícitamente se utilizará a.

El operador identifica de que manera se cambiarán los permisos. La siguiente tabla muestra los diferentes tipos de símbolos utilizados en el comando chmod

El último campo identifica el permiso asignado al usuario. La siguiente tabla muestra los siguientes tipos de permisos que existen para los diferentes ficheros y directorios: 

El permiso s solamente puede ser brindado sobre al usuario propietario del fichero ó al grupo al que pertenece el propietario del archivo. Ejemplos:

Suponga que posee el archivo ficherito y desea cambiar sus permisos.

Se pueden incluir varias claves a la vez separándolas mediante comas sin dejar espacios entre cada clave. Ejemplo:

 andres@debian:$ chmod o-w,u=rx,ug+s ficherito 

De igual forma, todo permiso puede ser representado de una manera octal. El formato octal se utiliza para representar la información de una manera mas simple: todo numero octal combina los privilegios de lectura escritura y ejecución como unidad. La siguiente tabla muestra el significado de los valores numéricos:

Ejemplos utilizando notación numérica:

OPCIONES

 -R: Modifica los permisos de los ficheros recursivamente. Ejemplos:

 andres@debian:$ chmod -R 700 /home/usario  

 andres@debian:$ chmod -R gu+r,o-rwx /tmp/   

Linus Torvalds, “Nobel” de Tecnología.


Linus Torvalds, creador de Linux.

Linus Torvalds, creador del kernel del sistema operativo Linux, ha ganado el ‘Nobel’ de tecnología, galardón que concede cada dos años la Academia tecnológica de Finlandia. En ocasiones anteriores se lo llevó el creador de la World Wide Web, Tim Berners-Lee. El otro ganador es Shinya Yamanaka por sus desarrollos sobre las células madre. Ambos compartirán el millón de euros con el que está dotado el premio y que se entregará el próximo 13 de junio.

La institución finlandesa reconoce a Torvalds por la creación de “un nuevo sistema operativo de código abierto que hoy en día utilizan millones de computadoras, smartphones y grabadores digitales de video, como Tivo”. En opinión de la Academia, “los logros de Torvalds han tenido un gran impacto en el desarrollo del software de código abierto, el trabajo en red y la apertura de la Web  para hacerla accesible para millones, si no miles de millones” de personas.

El entonces estudiante de la Universidad de Helsinki creó Linux en 1991. Desde entonces, millones de usuarios de todo el mundo poseen este sistema gratuito y miles de ellos contribuyen a su continuo desarrollo aportando ideas, programas, información sobre fallos del sistema, ayudas, tutoriales…. Actualmente Linux alimenta los teléfonos móviles Android y está en la base de las plataformas tecnológicas de gigantes de Internet como Google. Amazon, Twitter o Facebook. También es el sistema operativo que funciona en la mayoría de los superordenadores, entre otros.

Torvalds, tras conocer la concesión del premio ha declarado: “El software es demasiado importante en el mundo moderno para no ser desarrollado a través de fuentes abiertas”.  Hace ahora un año la Fundación Linux celebró el 20 aniversario del lanzamiento de Linux.

La Academia finlandesa ha elaborado un vídeo,  donde explica el imparable avance de este sistema operativo en el mundo tecnológico en colaboración de su padre, Linus Torvalds:

Fuente: El País
Condecoración Tecnológica 2012: Technology Academy Finland

¿Qué son los permisos?


Todo fichero tiene tres permisos asociados a el, que le indican al sistema quién puede acceder a ese fichero, cambiarlo, o en caso de ser un programa ejecutarlo. Estos privilegios son:

  • Lectura
  • Escritura
  • Ejecución

Estos permisos pueden estar o no activados y tienen un significado diferente tanto para ficheros como para directorios.

FICHEROS

  • Permiso de Lectura: Permite observar el contenido del archivo.
  • Permiso de Escritura: Permite la modificar el contenido del archivo.
  • Permiso de Ejecución: Permite la ejecutar un archivo.

DIRECTORIOS

  • Permiso de Lectura: Permite conocer el contenido de de algún directorio, pero no permite ver información detallada de los ficheros a menos que se tengan permisos también permisos de ejecución.
  • Permiso de Escritura: Permite modificar el contenido del directorio: añadir y eliminar ficheros( siempre que se tengan permisos de escritura sobre estos).
  • Permiso de Ejecución: Permite que el usuario pueda cambiarse al directorio requerido, asi como copiar los ficheros del directorio(siempre y cuando se tengan los permisos de lectura sobre esos ficheros).

Estos permisos están representados en Linux por las letras read, write y execute (lectura, escritura y ejecución, respectivamente). Ejemplos:


PERMISOS Y USUARIOS

Cada uno de estos privilegios pueden ser definidos para tres tipos de usuarios:

  • Usuario propietario del fichero: indican los permisos que tiene el usuario dueño del archivo. El dueño de un archivo es el usuario que creó el fichero por primera vez, aunque es posible que durante la vida de un fichero, su dueño pueda cambiar innumerables veces.
  • Usuarios pertenecientes al mismo grupo que el propietario: indican los permisos que tienen los usuarios que pertenecen al mismo grupo que el usuario propietario del archivo.
  • Permisos para otros usuarios: indican los permisos que tienen los usuarios que no pertenecen al grupo del usuario propietario.

Estos permisos se suelen representar con variantes d e la cadena rwx, donde los permisos aparecen en el orden de usuario, grupo y otros. De manera que si un permiso existe para el usuario, se le pone la letra correspondiente a dicho privilegio. De igual forma, si el permiso no esta activado para el usuario, se pone un guión. Ejemplos:

De igual forma, todo permiso puede ser representado de una manera octal. El formato octal se utiliza para representar la información de una manera mas simple: todo numero octal combina los privilegios de lectura escritura y ejecución como unidad. La siguiente tabla muestra el significado de los valores numéricos:

Los permisos de un fichero o directorio pueden ser modificados por el dueño del archivo o por algún administrador, aunque no tengan permisos de escritura sobre el fichero.

Usualmente junto con los permisos se suele representar el tipo de fichero utilizando un carácter que se coloca antes de los permisos: directorio (d), fichero (), dispositivo de caracteres (c), dispositivo de bloques (b), enlace simbólico (l), etc.