Acontinuación se describen los aspectos generales de UNIX, desde su historia hasta los principios básicos de inicialización en este robusto y cobfiable sistema operativo.
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.
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.
En la actualidad las versiones comerciales más importantes de UNIX son:
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.
* Mac OS X: Apartir de la versión 10.5 (Leopard)
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.
Iniciando una sesión
Una vez que hemos conseguido conectarnos a un sistema Unix tenemos que iniciar una sesión de trabajo. Como dijimos, Unix, y Linux como tal también, son sistemas multiusuario reales, y esto exige que el usuario se presente al sistema y que este lo acepte como usuario reconocido. Así cada vez que iniciamos una sesión Linux nos responde con
Login:
Password:
Si entramos directamente en modo gráfico también deberemos tener de una forma parecida, que indicar un nombre de usuario y una contraseña.
La base de datos de los usuarios
Hemos visto que para iniciar una sesión de trabajo en un sistema Unix teníamos que suministrar al sistema una pareja de nombre de usuario/clave. Estos datos se almacenan en un fichero llamado /etc/passwd. Este fichero contiene una línea por cada usuario del sistema. Cada línea consta de una serie de campos separados por dos puntos (:). Estos campos son, en el orden que aparecen:
-
Nombre de usuario. Es es nombre con el que no
presentamos al sistema, con el que tenemos que
responder a Login: y por el que nos identifica el
sistema.
-
Clave cifrada. El siguiente campo es la clave de
acceso al sistema. Esta clave no se guarda como se
introduce, sino que se almacena transformada mediante
el algoritmo DES para que nadie pueda averiguarla.
-
UID. Identificador de usuario. Es el número de
usuario que tiene cada cuenta abierta en el sistema.
El sistema trabaja de forma interna con el UID,
mientras que nosotros trabajamos con el nombre de
usuario. Ambos son equivalentes.
-
GID. Identificador de grupo. Es el número de
grupo principal al que pertenece el usuario.
-
Nombre completo de usuario. Este es un campo
meramente informativo, en el que se suele poner el
nombre completo del usuario.
-
Directorio personal. Este campo indica el directorio
personal de un usuario, en el cual el usuario puede
guardar su información.
-
shell. El último campo indica un programa que
se ejecutará cuando el usuario inicie una
sesión de trabajo. Normalmente este campo es
una shell que proporciona una línea de
órdenes para que el usuario trabaje.
usuario:x%6YkH$Ss:505:705:Cuenta de usuario:/home/usuario:/bin/bash ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | shell | | | | | directorio personal | | | | Nombre completo del usuario | | | Número de grupo (GID) | | Número de usuario (UID) | Clave cifrada Nombre de usuario
-
Nombre de usuario. Es es nombre con el que no
presentamos al sistema, con el que tenemos que
responder a Login: y por el que nos identifica el
sistema.
- Nota Legal:
Distribución bajo licencia Creative Commons
Se permite la reproducción parcial o total de estos textos en cualquier medio, impreso o electrónico, siempre que no se impongan condiciones adicionales a la reproducción y distribución de las copias o de los trabajos derivados que incorporen este documento. En resumen, cualquier trabajo derivado de ese texto debe mantener esta nota de copyright.
-
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.
-
ext2: linux nativo. Extendido 2, es un sistema de
ficheros propio de linux. Soporta
características avanzadas: propietarios,
permisos, enlaces, etc.
No hay comentarios:
Publicar un comentario