viernes, 2 de julio de 2010

UNIX

¿Qué es Unix?
Es un sistema operativo portable, multitarea y multiusuario; desarrollado en 1969 por un grupo de empleados de los laboratorios Bell y AT&T, entre los que figuran Ken Thompson, Dennis Ritchie y Douglas Mcllroy. Este sistema es uno de los más utilizados y con más futuro debido a que son muchos organismos oficiales y particulares los que defienden su utilización, así como muchas firmas de fabricación y comercialización de computadoras que lo incorporan en sus productos. Para dar un ejemplo, la Comunidad Económica Europea, impone el sistema operativo UNIX en todas las aplicaciones que se desarrollan bajo sus auspicios.
Unix es un sistema operativo de tiempo compartido, controla los recursos de una computadora y los asigna entre los usuarios. Permite a los usuarios correr sus programas. Controla los dispositivos periféricos conectados a la máquina. Además es un sistema multiusuario, en el que existe la portabilidad para la implementación de distintas computadoras.


Introducción
Unix se trata de un sistema operativo de los mas utilizados y con mas futuro debido a que son muchos organismos oficiales y particulares los que defienden su utilización, así como muchas firmas de fabricación y comercialización de computadoras que lo incorporan en sus productos. Podemos citar el ejemplo de la Comunidad Económica Europea, que impone el sistema operativo UNIX en todas las aplicaciones que se desarrollan bajo sus auspicios.
Unix es un sistema operativo de tiempo compartido, controla los recursos de una computadora y los asigna entre los usuarios. Permite a los usuarios correr sus programas. Controla los dispositivos de periféricos conectados a la máquina. Además es un sistema multiusuario, en el que existe la portabilidad para la implementación de distintas computadoras.
Esta formado por una serie de elementos que pueden representarse en forma de capas concéntricas donde, en primer lugar, alrededor del hardware, aislando a este de los usuarios, además de adaptar el resto del sistema operativo a la maquina debido a la portabilidad que existe en el mismo.
- Es un sistema operativo de tiempo compartido, controla los recursos de una computadora y los asigna entre los usuarios.
- Permite a los usuarios correr sus programas.
- Controla los dispositivos de periféricos conectados a la máquina.
- Es un sistema operativo multiusuario, con capacidad de simular multiprocesamiento y procesamiento no interactivo.
- Está escrito en un lenguaje de alto nivel: C.
- El sistema de ficheros está basado en la idea de volúmenes, que se pueden montar y desmontar para lo que se les asigna un nodo del árbol como punto de anclaje. Un sistema físico puede dividirse en uno o más volúmenes.
- Una de las grandes ideas de UNIX es la unificación y compatibilidad de todos los procesos de entrada y salida. Para UNIX, el universo es un sistema de ficheros. De esta forma existe compatibilidad entre ficheros, dispositivos, procesos, "pipes" y "sockets".
- Dispone de un lenguaje de control programable llamado "Shell".
- El sistema presenta comandos de usuario (es decir, a nivel de "Shell") para iniciar y manipular procesos concurrentes asíncronos. Un usuario puede ejecutar varios procesos, intercambiarlos e interconectarlos a través de "pipes" o "tuberías", simbolizados por un carácter especial. En DOS, también existe la idea del "pipe", sin embargo, al no existir concurrencia de procesos, no se trata de una comunicación en "tiempo real", sino de un paso de información a través de ficheros temporales.
- Ofrece facilidades para la creación de programas y sistemas y el ambiente adecuado para las tareas de diseños de software.
- Emplea manejo dinámico de memoria por intercambio o paginación.
- El núcleo de UNIX es relativamente compacto en comparación con otros sistemas de tiempo compartido. Introduce la idea de reducir el tamaño del "kernel" y ceder ciertas funciones a programas externos al núcleo llamados "demonios". Esto ha sido muy desarrollado y en la actualidad, la tendencia es el desarrollo de "micro-kernels", sin embargo UNIX, aunque pionero, es anterior a estos desarrollos.
- Tiene capacidad de interconexión y comunicaciones de procesos.
- Emplea un sistema jerárquico de archivos, con facilidades de protección de archivos, cuentas y procesos. En este sistema de ficheros jerárquico todo se encuentra anclado en la raíz. La mayoría de la literatura sobre el tema dice que el sistema de ficheros UNIX es un grafo acíclico, sin embargo, la realidad es que se trata de un grafo cíclico. El DOS, por ejemplo, es un árbol, con un directorio raíz del que cuelgan subdirectorios que a su vez son raíces de otros sub-árboles. Un grafo cíclico es como un árbol en el que se pueden enlazar nodos de niveles inferiores con un nivel superior. Es decir, se puede entrar en un subdirectorio y aparecer más cerca de la raíz de lo que se estaba.
- Tiene facilidad para redireccionamiento de Entradas/Salidas.
- Garantiza un alto grado de portabilidad.
- UNIX realiza un riguroso control de acceso a ficheros. Cada uno se encuentra protegido por una secuencia de bits. Sólo se permite el acceso global al "root" o "superusuario". Por tanto, el universo de usuarios de UNIX se encuentra dividido en dos grupos principales, no sólo para el acceso a ficheros sino para todas las actividades: el "root", todopoderoso, para el que no hay barreras; y el resto de los usuarios, controlados por el S.O. según las directivas del "root".
- UNIX es un S.O. de red, algo que a veces se confunde con un S.O. distribuido. Por ello, se ha incluido en su núcleo la arquitectura de protocolos de internet, TCP/IP.
2.3 Desventajas de Unix
Las desventajas del mismo pueden variar entre versiones, así como también por diversas condicionantes externas, tales como: el área de uso (personal, comercial o industrial), experticia del usuario, funcionalidad específica de las aplicaciones, entre otras. En general se podría decir que:
- Desde el punto de vista comercial, no muchas personas lo conocen, ya que no es un sistema que venga precargado en cada PC que se compra. En otras palabras, no están popular como Windows o incluso como Linux, y por tanto, es difícil encontrar los programas que se acostumbran a usar en esos otros sistemas operativos.
- Desde el punto de vista de funcionalidad, el S.O. Unix vienen en muchas variantes como se sabe, sin embargo, el detalle es que hay variantes que están diseñadas para ser ejecutada en equipos especiales fabricados por una marca especifica, como IBM, SUN, HP, DELL, entre otras. Lo que limita un tanto la portabilidad de UNIX
- En cuanto a la confiabilidad, UNIX fue desarrollado desde sus inicios para ser más estable que cualquier otro sistema operativo, es decir, que cuando se usa UNIX no es tan común ver ciertas pantallas de errores que salen en los otros S.O, aunque si se podrán dar casos en que hay computadores con sistemas UNIX en desuso, pero será por problemas de Hardware o de algún otro programa que trabaje mal.
- A pesar de ser tan estable y no "caerse" prácticamente nunca, resulta ser muy costoso en el sentido de mantenimiento y administración. Es decir, que por ejemplo, hay empresas que pierden más dinero con un equipo fuera de línea que pagando a un administrador del sistema (que cobra mucho por su trabajo a razón de que no muchas personas conocen UNIX).
- El S.O UNIX puede requerir más horas de aprendizaje que el resto de las otras plataformas de sistemas operativos.
- Como ya se menciono antes, los problemas suelen ser más difíciles de resolver dado el poco apoyo y soporte que hay en el mercado y, normalmente, el soporte del fabricante es muy costoso.
- Se utiliza un lenguaje de programación muy avanzado: C, aunque en algunos casos permite Fortran y Java.
Filosofía de UNIX

Las ideas principales de UNIX fueron derivadas del proyecto MULTICS (Multiplexed Information and Computing Service) del MIT y de General Electric. Estas ideas son:
• Todo se maneja como cadena de bytes: Los dispositivos periféricos, los archivos y los comandos pueden verse como secuencias de bytes o como entes que las producen. Por ejemplo, para usar una terminal en UNIX se hace a través de un archivo (generalmente en el directorio /dev y con nombre ttyX).
• Manejo de tres descriptores estándares: Todo comando posee tres descriptores por omisión llamados 'stdin', 'stdout' y 'stderr', los cuales son los lugares de donde se leen los datos de trabajo, donde se envían los resultados y en donde se envían los errores, respectivamente. El 'stdin' es el teclado, el 'stdout' y el 'stderr' son la pantalla por omisión (default).
• Capacidades de 'entubar' y 'redireccionar': El 'stdin', 'stdout' y el 'stderr' pueden usarse para cambiar el lugar de donde se leen los datos, donde se envían los resultados y donde se envían los errores, respectivamente. A nivel comandos, el símbolo de 'mayor que' (>) sirve para enviar los resultados de un comando a un archivo. Por ejemplo, en UNIX el comando 'ls' lista los archivos del directorio actual (es lo mismo que 'dir' en DOS). Si en vez de ver los nombres de archivos en la pantalla se quieren guardar en el archivo 'listado', el redireccionamiento es útil y el comando para hacer la tarea anterior es 'ls > listado'. Si lo que se desea es enviar a imprimir esos nombres, el 'entubamiento' es útil y el comando sería 'ls | lpr', donde el símbolo "|" ( pipe) es el entubamiento y 'lpr' es el comando para imprimir en UNIX BSD.
• Crear sistemas grandes a partir de módulos: Cada instrucción en UNIX está diseñada para poderse usar con 'pipes' o 'redireccionamiento', de manera que se pueden crear sistemas complejos a través del uso de comandos simples y elegantes. Un ejemplo sencillo de esto es el siguiente. Suponga que se tienen cuatro comandos separados A,B,C y D cuyas funcionalidades son:

o A: lee matrices checando tipos de datos y formato.
o B: recibe matrices, las invierte y arroja el resultado en forma matricial.
o C: recibe una matriz y le pone encabezados 'bonitos'
o D: manda a la impresora una matriz cuidando el salto de página, etc.
Como se ve, cada módulo hace una actividad específica, si lo que se quiere es un pequeño sistema que lea un sistema de ecuaciones y como resultado se tenga un listado 'bonito', simplemente se usa el entubamiento para leer con el módulo A la matriz, que su resultado lo reciba el B para obtener la solución, luego esa solución la reciba el módulo C para que le ponga los encabezados 'bonitos' y finalmente eso lo tome el módulo D y lo imprima, el comando completo sería ' A | B | C | D '.
Conclusión
Unix es un sistema operativo apropiado para muchas aplicaciones, ya que ofrece muchas facilidades para proceso de textos (en un marco atractivo para programadores) y facilidades de comunicación entre usuarios y máquinas.
Unix es popular debido a que:
• Es portátil, y por lo tanto, todo el software desarrollado en él es portátil también.
• Se puede cambiar de máquina sin cambiar de sistema operativo ni de aplicaciones.
• Es fácil de adaptar según los requerimientos del usuario.
• Es muy fiable.
• Es fácil de usar.
• Tiene una amplia gama de utilidades.
Desde el punto de vista técnico, UNIX se refiere a una familia de sistemas operativos que comparten unos criterios de diseño e interoperabilidad en común. Esta familia incluye más de 100 sistemas operativos desarrollados a lo largo de 20 años. No obstante, es importante señalar que esta definición no implica necesariamente que dichos sistemas operativos compartan código o cualquier propiedad intelectual.

No hay comentarios:

Publicar un comentario