Generalidades acerca del SO Unix

Anuncio
Generalidades acerca del SO Unix
Breve historia
UNIX es un SO con muchos años de existencia, su primera versión data del
año 1969 y se concibió en los laboratorios Bell (una parte de AT&T). El objetivo
era explotar una mini computadora PDP-7, sus principales autores fueron Ken
Thompson y Dennis Ritchie.
Ken Thompson
Dennis Ritchie
La primera versión del SO se escribió en lenguaje ensamblador, pero ya para la
tercera versión la mayoría del código estaba escrito en el lenguaje C, que fue
especialmente desarrollado con ese fin, de ahí que las historias del C y del
UNIX estén muy estrechamente unidas.
El nuevo SO tenía las características de que era un sistema simple (a
diferencia de Multics (Multiplexed Information and Computing Services), su
antecesor, que era muy complejo. UNIX emergía dividido
en módulos
pequeños que tenían la responsabilidad, según palabras propias de sus
autores, de “hacer cada uno de ellos una única función, pero hacerla muy bien”.
La primera versión de UNIX era para un solo usuario.
MULTICS fue uno de los primeros sistemas de tiempo compartido, e incorporó
muchas ideas que aún están presentes en los sistemas operativos multitareas
actuales, pero fue víctima y victimario de su papel innovador, y resultó mucho
más complejo y pesado de lo necesario.
La AT&T abandonó el proyecto MULTICS y dejó a un grupo de personas de
talento con muchas ideas acerca de cómo debía ser un sistema en tiempo
compartido.
La perdida del MULTICS representó, según Dennis Ritchie, no solo la pérdida
de “un ambiente en el cual programar, sino de un sistema alrededor del cual se
pudiera formar una comunidad”.
A pesar de que Multics llegó a tener vida, nunca pudo proporcionar sus
servicios en la dimensión deseada, por lo cual los participantes del proyecto
fueron retirándose gradualmente: en primer lugar los Laboratorios Bell,
después General Electric, que incluso dejó el negocio de la computación y el
MIT se quedó solo en este proyecto.
Hoy en día, existe una gran variedad de versiones de UNIX que corren sobre
diferentes tipos de plataformas. Los SO de esta familia se han extendido por
todo el mundo alcanzando una gran popularidad y aceptación. Las versiones
de UNIX tienen sus diferencias, pero en general siguen una línea común lo que
hace que no sea tan difícil desarrollar habilidades en una de ellas y después
pasarse a otra.
Organización general del Unix
UNIX, al igual que los demás SO modernos, está organizado por niveles o
capas que tienen diferentes responsabilidades. Las capas inferiores están más
cerca del hardware y las superiores están más cerca del usuario, ya que la idea
es hacer las cosas más fáciles a las capas superiores que usan los servicios de
las inferiores a ellas.
La figura 1 presenta un esquema simplificado del SO, debe quedar claro que la
capa nombrada núcleo, trabaja directamente con el hardware, sin embargo la
capa nombrada shells solo interactúa con el hardware a través del núcleo,
mientras la capa de aplicaciones se sirve directamente de la capa shells.
Aplicaciones
Shells
Núcleo
Hardware
Figura 1. Estructura del SO Unix.
Esta organización es muy general, de hecho de seguro será diferente en cada
versión de este SO que usted analice.
La tabla 1 muestra algunas de las implementaciones del SO UNIX, puede
apreciarse la gran diversidad de versiones que existen. La lista no es, ni mucho
menos, exhaustiva pero da una idea de las múltiples variantes que pueden
encontrarse en el mercado. Cada una de ellas tiene determinadas prestaciones
que se deben evaluar en el momento de tomar la decisión de cuál de ellas es
“mejor” para determinado entorno.
Forma de trabajo desde una terminal
UNIX es un sistema operativo multitarea y multiusuario, es además, un SO de
tiempo compartido lo que significa que reparte el tiempo de uso del procesador
entre los diferentes procesos que trabajan con él.
Multitarea se refiere a que atiende “mas de una tarea a la vez “(realmente nos
da esa impresión cuando se tiene un solo procesador).
Multiusuario significa permitir que más de un usuario esté conectado a él
desde diferentes lugares denominados terminales.
Una terminal básica o tonta, no es mas que un equipo compuesto de un
teclado y una pantalla y, quizás, algunas pocas cosas más.
Las terminales tontas, solo son capaces de trabajar con textos, aunque existen
terminales más complejas, como las terminales X, que permiten trabajar en
modo gráfico, adicionalmente una computadora (PC o Macintosh) puede
emular una terminal.
La computadora donde se instala el sistema operativo recibe el nombre de
Anfitrión y maneja todo lo que se hace en las terminales, por ejemplo el simple
hecho de oprimir una teclea hace que ese carácter se envíe hasta la
computadora anfitrión y esta lo devuelve (se dice que hace eco de él) y es en
ese instante en que se ve en la pantalla de la terminal. Como todo eso ocurre
rápido puede ser que no lo note, pero si el anfitrión está muy lejos (quizás en
otra ciudad o país) se podrá notar la demora.
Nombre
Compañía u organización
386BSD
Libre en Internet
AIX
IBM
A/UX
Apple
BSD
Universidad de Berkely California
BSD-Lite
Universidad de Berkely California
BSD/386
Berkely Software Design (BSDI)
Coherent
Compañia Mark Williams
Dynix
Sequent
freeBSD
Libre en Internet
HP-UX
Hewlett-Packard (HP)
Hurd(GNU)
Free Software Foundation
Irix
Silicon Graphics
Linux
Libre en Internet
Mach
Universidad de Carnegie-Mellon
Minix
Incluido en le libro de Tanenbaum
MKS Toolkit
Mortice H\Kern Systems
NetBSD
Libre en Internet
Nextstep
Next
OSF/1
Digital Equipment Corporation(DEC)
SCO Unix
Santa Cruz Operation
Solaris
Sun Microsystems
SunOS
Sun Microsystems
System V UNIX
Varias
versiones
para
computadoras
personales
Ultrix
Digital Equipment Corporation(DEC)
Unicos
Cray Research
Unixware
Novell
Tabla 1. Algunas implementaciones de la familia UNIX
Terminal
Terminal
Anfitrión
Terminal
PC Emulando Terminal
Terminal
Mac Emulando Terminal
Figura 2. Una configuración de tipo terminales-anfitrión
Terminal
Terminal
Servidor de
Terminal
Terminal
Anfitrión
Terminal
Anfitrión
Figura 3. Configuración terminales-anfitrión con servidor de terminales
El teclado y la pantalla de la computadora anfitriona no se consideran una
terminal y el conjunto recibe el nombre de consola. Las tareas de
administración se hacen desde la consola.
En la figura 2 las terminales (o las computadoras que las emulan) están
conectadas directamente a la computadora anfitrión, pero pueden estar
conectadas a un servidor de terminales que actúa como un conmutador según
se aprecia en la figura 3.
Identificadores de usuario y contraseña
Todo usuario que quiera conectarse a un sistema UNIX, tiene que pedirle al
administrador que le haga una cuenta. Con ese fin debe poseer un login o
identificación por el que es conocido dentro del sistema, también debe tener
una palabra clave o password, que le permitirá acceder al sistema con los
privilegios que se le confieran (puede restringírsele, por ejemplo, el espacio en
disco asignado, que no pueda leer ciertos archivos, etc.).
Entrada al sistema
Para conectarse remotamente a UNIX desde una PC que tiene instalado el SO
Windows, debe emularse una terminal. Con ese fin se puede usar el protocolo
de comunicación telnet para lo cual se hace el procedimiento siguiente:
En el botón de Inicio (Star) se activa la opción Ejecutar (Run), seguidamente
se teclea cmd.
En la ventana de comandos (tipo MS-DOS), se teclea el nombre del comando
(telnet) seguido del número IP del equipo anfitrión o de su nombre
Convenio.
o Lo que aparezca en negrita lo que escribe el SO.
o Lo que se aparezca sin resaltar en negrita lo escribe el usuario.
•
Primera variante:
C:>telnet 10.12.4.4
•
Segunda variante:
C:> telnet hercules.mfc.uclv.edu.cu
Si al hacer el procedimiento anterior no se logra la comunicación, a pesar de
ser correcta la identificación de la máquina anfitriona, puede ser que la
comunicación vía telnet no esté permitida. El motivo de este hecho viene dado
porque telnet no es un protocolo seguro (todo viaja por la red de forma plana,
sin encriptar), por ese motivo muchos administradores lo deshabilitan para
garantizar parte de la seguridad informática.
Para facilitar las cosas se puede utilizar un programa que emula la terminal y
hacer uso de otro protocolo que ofrece mayor seguridad. El programa se llama
putty.exe, lo único que necesita para usarlo es tenerlo copiado en su máquina
(figura 4).
Figura 4. Conexión usando putty
En la figura 4 se puede apreciar el aspecto de la ventana que se presenta al
invocar al putty.exe, usted debe escoger el protocolo ssh (es seguro) y poner,
en host name, la dirección IP de la computadora anfitriona (por ejemplo
10.12.4.4), o su nombre (por ejemplo hercules.mfc.uclv.edu.cu).
Si se tiene éxito en el establecimiento de la conexión, UNIX responderá
solicitado un nombre de usuario y una palabra clave:
login as: mlezcano
Password:
Linux hercules 2.6.8-2-686 #1 Tue Aug 16 13:22:48 UTC
2005 i686
Bienvenidos al Servidor de Archivos DEBIAN de MFC
Nombre: hercules.mfc.uclv.edu.cu
IP: 10.12.4.4
Last login: Wed Sep 27 10:54:43 2006 from gieia.cei.uclv.edu.cu
mlezcano@hercules:~$
En el diálogo anterior el usuario mlezcano entró al sistema, para lo cual tecleó
su login (mlezcano) y su password (del cual no se conoce ni siquiera cuántos
caracteres tiene debido a que esa acción no produce eco, esta es una forma
adecuada para preservar la clave de mirones).
El SO debe autentificar si es válida la combinación (login, password). En este
caso la reconoció y se presentó con un mensaje que informa desde donde se
conectó la última vez y también la fecha en que lo hizo, si esos datos no le
parecen correctos, tenga cuidado puede ser que alguien se haya apoderado de
su cuenta y debe estar atento a estos problemas.
Saliendo del sistema
Dependiendo del sistema UNIX que use, existen diferentes formas para salir y
terminar una sesión de trabajo, nunca deje su sesión abierta cuando termine y
asegúrese de salir antes de pararse de su terminal, algunas formas son:
1. ctrl+d que envía una señal de fin de archivo al shell, el cual la interpreta
como una orden para cerrar la sesión.
2. logout
3. exit
Todas ellas pueden que estén disponibles o puede que sea una sola o quizás
otra diferente, pero en cualquier caso esta es la única forma de salir del
sistema y de asegurarse de que todo marchará bien en la otra ocasión que nos
conectemos. Nunca cierre la ventana anterior sin haber salido en forma
apropiada
Comandos
Cuando se trabaja desde una terminal básica (No X), se hace usando una gran
variedad de comandos que posee el SO, no resultaría lógico tratar de
aprenderse cada uno de ellos desde ahora, pero si se espera que, con el
transcurso del tiempo y según vayan practicando, logren un conocimiento
general que le permita decidir cuál usará en cada caso, veamos algunos
ejemplos simples.
Un comando muy importante y útil es el man. Su nombre viene de manual y es
la ayuda clásica del SO UNIX. En el ejemplo siguiente se observa una petición
de ayuda al man acerca de él mismo.
mlezcano@hercules:~$man man
MAN(1)
Manual pager utils
MAN(1)
NAME
man - an interface to the on-line reference manuals
SYNOPSIS
man [-c|-w|-tZ] [-H[browser]] [-T[device]] [-adhu7V] [-i|-I] [-m system[,...]] [-L locale] [-p string] [-C file] [-M path] [-P pager] [-r
prompt] [-S list] [-e extension] [[section] page ...] ...
man -l [-7] [-tZ] [-H[browser]] [-T[device]] [-p string] [-P pager] [-r
prompt] file ...
man -k [apropos options] regexp ...
man -f [whatis options] page ...
DESCRIPTION
man is the system's manual pager. Each page argument given to
man is normally the name of a program, utility or function. The
manual page associated with each of these arguments is then found
and displayed. A section, if provided, will direct man to look only
in that section of the manual. The default action is to search in all of
the available sections, following a pre-defined order and to show
only the first page found, even if page exists in several sections.
Manual page man(1) line 1
Con el comando man se puede obtener una información abundante acerca de
cualquier comando, la ayuda se presenta en varios campos
•
NAME explica, de forma escueta, que hace el comando.
•
SYNOPSYS es la sintaxis del comando
•
DESCRIPTION información detallada acerca del comando.
•
OPTIONS explica cada una de las opciones del comando.
La ayuda se presenta en una pantalla, si se oprime la tecla espaciadora se
presenta la pantalla siguiente y si se oprime la teclea enter se presenta la línea
siguiente. Para abandonar la ayuda se teclea la letra q.
El comando clear limpia la pantalla.
Para averiguar si hay mas usuarios conectados al sistema, se utiliza el
comando who.
$who
En UNIX se puede ejecutar un conjunto de comandos desde la terminal con
una orden, para ello basta con que separe cada comando por un punto y coma,
lo que provocará que los comandos se ejecuten en ese orden.
$ clear ; who
Otro comando simple es el que nos permite fijar o ver la fecha y la hora:
$ date
vie sep 20 15:49:01 UTC 2002
El comando tty, muestra la identificación de la terminal a la que está conectada
la entrada estándar.
$ stty
speed 38400 baud; line = 0;
-brkint -imaxbel
$
Un comando muy importante es el que permite cambiar la palabra clave
$passwd
Changing password for user mlezcano.
Changing password for mlezcano
(current) UNIX password:
$
Recuerde que la palabra clave es algo muy personal y que no debe tener
apuntado en ningún lugar, además elija una combinación que no sea fácil de
descifrar.
Descargar