Linux (Unix ) para usuarios

Linux (Unix ) para usuarios

Pedro Pablo Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.

Esta guía pretende que el lector se familiarice con el trabajo en la shell de un sistema Unix, Linux en particular. Todo el software descrito en la presente guía es software libre, por lo que el lector no debería tener problema en conseguirlo por los cauces habituales, es decir distribuciones de Linux e Internet. Por otro lado esta guía se limita a la descripción de tareas a nivel de usuario, o sea, que todo lo que aquí se indica (o casi todo) se puede hacer sin tener acceso a la cuenta de root. Las tareas de administración serán otro capítulo.

Introducción al Unix

Vamos a describir las generalidades de Unix de una forma ligera. Realizaremos una descripción de los elementos que son de utilidad en el posterior desarrollo de los contenidos y algunas curiosidades



Historia de Unix

El sistema operativo Unix tiene su origen en los laboratorios Bell de AT&T en los años 60. Estos laboratorios trabajaban en un proyecto muy ambicioso de sistema operativo nuevo llamado MULTICS (Multiplexed Information and Computing System. Este proyecto fue un fracaso debido a la complejidad, pero los componentes del equipo adquirieron una gran experiencia durante su desarrollo.

Uno de los componentes del equipo, Kem Thompson, escribió un juego llamado "Space Travel" y escribió un sistema operativo para poder jugar con él. Con este sistema operativo consiguió que dos personas pudieran jugar simultáneamente a "Space Travel". Con bastante ironía, usando un juego de palabras en comparación con MULTICS, llamó al sistema operativo UNICS, que más tarde derivaría en Unix.

Inicialmente, este sistema UNIX estaba escrito en lenguaje ensamblador, lo que dificultaba que se pudiera usar en máquinas con distintos procesadores. Viendo el problema, Ken Thomson y Denis Ritchie crearon un lenguaje de programación de alto nivel, el lenguaje C, en el cual reescrbieron todo el código del sistema operativo lo que permitió que se pudiera usar en prácticamente cualquier tipo de ordenador de la época. Sólo las partes críticas seguían en ensamblador. Unix fue el primer sistema operativo escrito en un lenguaje de alto nivel.

Lo que inicialmente comenzó como un juego, distribuyénsose como proyecto de investigación en algunas universidades, se convirtió en un éxito comercial por lo que los laboratorios Bell comezaron su distribución.

Más tarde un decisión judicial obligó a AT&T a dejar de vender su sistema operativo. Esta compañía dejó las fuentes del sistema operativo a diversas universidades, las cuales, junto con otras empresas, continuaron el desarrollo del sistema operativo Unix e hizo que tuviera una enorme difusión.



Cronología

1975 La Universidad de California en Berkeley continúa con el desarrollo de UNIX incorporando sus propias características y modificaciones y uno de los desarrolladores iniciales de Unix, Ken Thompson, edita su propia versión de UNIX, conocida con el nombre de BSD. Desde entonces BSD pasó a ser la gran competidora de los laboratorios Bell.

1980 A principios de los años 80 surge Unix Sistema III, la primera versión comercial del sistema operativo UNIX. En 1983 AT&T introdujo el UNIX Sistema V versión 1.

1983 Aparece Unix BSD versión 4.2 Entre sus características principales se encuentran una gran mejora en la gestión de ficheros el trabajo en red basadas en los protocolos TCP/IP. Esta versión de UNIX la adoptaron varios fabricantes, entre ellos Sun Microsystems, lo que dió lugar al conocido sitema SunOS.



Versiones de Unix

Unix tiene dos variantes fundamentales, los Unix Sistema V y los Unix BSD (Berkeley Software Development).

En la actualidad las versiones comerciales más importantes de UNIX son:

  • Solaris: El Unix de Sun Microsystems. Originalmente, Sun Microsystems editó SunOS de tipo BSD para posteriormente editar Solaris basado en Sistema . Exuisten versiones de Solaris para procesadores Power PC, Intel y Sparc.

  • AIX: La versión del sistema operaivo UNIX de IBM se llama AIX y está basada en Sistema V versión 3 y BSD 4.3.

  • A/UX: Desarrollo de UNIX de Apple

  • IRIX: Versión de UNIX desarrollada por Silicon Graphics para sus estaciones basada en UNIX Sistema V version 4.

  • HP/UX. La versión Unix de Hewlett Packard

El sistema de ficheros

El sistema de ficheros es la organización lógica del disco que nos permite almacenar la información en forma de ficheros de un modo totalmente transparente. Esta palabra tan utilizada, transparencia, significa que no tenemos que preocuparnos de pistas, sectores, cilindros y otras menudencias; el sistema se encarga de eso por nosotros. Nosotros simplemente utilzamos un nombre de fichero, el sistema se encarga de el resto.

Cada partición del disco, o cada disquete debe tener un sistema de ficheros si queremos almacenar información en forma de fichero asignándole un nombre. Tenemos que resaltar que un sistemade ficheros forma parte de las propiedaes de cada partición de disco duro, de disquete, dispositivo de almacenamiento USB o cdrom. Una partición sin sistema de ficheros no permite almacenar información.

 


 

Tipos de sistemas de ficheros

Cada sistema operativo posee su propia organización lógica del disco para poder almacenar la información, y la usará normalmente, pero además puede tener la posibilidad de usar particiones propias de de otros sistemas. Entre los tipos de sistemas de ficheros podemos citar:

  • ext2: linux nativo. Extendido 2, es un sistema de ficheros propio de linux. Soporta características avanzadas: propietarios, permisos, enlaces, etc.

  • ext3: linux nativo con journaling. Extendido 3 es similar a ext2 pero con transacciones para evitar que apagados accidentales puedan deteriorar el sistema de ficheros.

  • msdos: es la organización clásica de este sistema. Es un sistema de archivos diseñado para un sistema monousuario. Utiliza nombres del tipo 8+3. En la actualidad sólo se utiliza en en ciertos dispositivos como cámaras digitales debido a su limitación en el nomvre de ficheros.

  • vfat: es una ampliación del sistema de ficheros msdos, con soporte para nombres largos de ficheros. Existen los tipos FAT12, FAT16 y FAT32, y en todos los casos sólo tienen características monousuario: no admiten propietarios de ficheros y los permisos son muy limitados. Los valores 12, 16 y 32 indican el número de bits que se utiilzan para almacenar el número de una únidad de almacenamiento. (sectores o clusters). Con FAT 12 el número máximo de unidades de almacenamiento que se pueden direccionar son 2^12=4096, que indica el límite de almacenamiento. Con el resto podemos realizar los mismos cáculos.

  • NTFS: sistema de ficheros de Windows NT/XP. Es un sistema de ficheros con características avanzadas y sí está preparado para utilizarse en entornos multiusuario. Es aconsejable utilizarlo en máquinas Win32 cuando exista la posibilidad.

  • iso9660: es el sistema de ficheros de los CDs. Este estándar admite ciertas extensiones como «Joliet» o «Rock Ridge» que le añaden ciertas características.

El sistema de ficheros Unix

Los elementos del sistema de ficheros son el superbloque, i-nodos y bloques de datos. En el capítulo de administración del sistema de ficheros se ve todo esto con más detalle.

En primer lugar tenemos el superbloque, que contiene la descripción general del sistema de ficheros: Tamaño, bloques libres, tamaño de la lista de i-nodos, i-nodos libres, verificaciones, etc. El superbloque siempre es el primer bloque del sistema de ficheros.

En segundo lugar tenemos los i-nodos. Un i-nodo contiene toda la información sobre cada conjunto de datos en disco, que denominamos fichero:

  • Donde se almacenan los datos, es decir lista de bloques de datos en disco. Esto son una serie de punteros o direcciones de bloques que indican bien donde están los datos en disco, o bien donde están los bloques que tienen más direcciones de bloques de datos (bloques indirectos).

  • Quien es el propietario de los datos, un número que lo identifica (UID o User Identifier), y a qué grupo pertenece el fichero GID Group Identifier).

  • Tipo de fichero: regular, es decir un fichero que contiene información habitual, datos o programas; dispositivo, un elemento destinado a intercambiar datos con un periférico, enlace, un fichero que apunta a otro fichero; pipe, un fichero que se utiliza para intercambiar información entre procesos a nivel de núcleo. directorio, si el elemento no contiene datos sino referencias a otros ficheros y directorios.

  • Permisos del fichero (quien puede leer(r), escribir(w) o ejecutar(x)). Estos permisos se asignan a se asignan de forma diferenciada a tres elementos: el propietario, el grupo (indicados con anterioridad) y al resto de los usuarios del sistema.

  • Tamaño del fichero.

  • Número de enlaces del fichero. Es decir cuantos nombres distintos tiene este fichero Hay que observar como el nombre de un fichero no forma parte del i-nodo. El nombre de fichero se asocia a un i-nodo dentro de un fichero especial denominado directorio. Esto le proporciona al sistema de ficheros la posibilidad de que un mismo i-nodo pueda tener varios nombres si aparece en varios directorios o con distintos nombres.

Entrando a un sistema Unix

Unix es un sistema multiusuario real, es decir, pueden haber varias personas trabajando a la vez en distintas terminales con un mismo host Unix. Esto implica que cada usuario tenga que identificarse de forma adecuada ante el sistema para que éste pueda determinar que privilegios le corresponden. La identificación consiste en suministrarle al sistema una pareja de nombre y contraseña correctas.



Iniciando una conexión

Existen diferentes métodos para poder conectar los terminales al sistema:

  • En primer lugar podemos conectarnos a un sistema Unix a través de el puerto serie (RS232), con una terminal no inteligente o bien con otro equipo y un emulador de terminales. En ambos casos existe un programa que atiende las solicitudes de conexión a través del puerto serie. Cuando hay una solicitud de conexión, este programa la atiende solicitando al usuario que se identifique ante el sistema. Cuando termina la conexión, este programa se reactiva para seguir atendiendo nuevas solicitudes. En realidad citamos este sistema de conexión, más que nada, por motivos históricos, en la actualidad no se utiliza.

  • Mediante tarjeta de red. En este caso, tenemos un programa que escucha las solicitudes de conexión a través de la tarjeta de red. Cuando llega una solicitud este programa se desdobla de forma que una parte atiende la conexión y otra continúa atendiendo nuevas conexiones. Así podemos tener más de una conexión a través de la tarjeta de red. Para hablar con más propiedad, en lugar de decir tarjeta de red debería haber dicho interfaz de red, que puede corresponder a una tarjeta de red, a un modem, una conexión infrarojos, etc.

  • La consola. Evidentemente, en un sistema Unix también podemos trabajar desde el teclado y monitor que están conectados directamente al sistema.