Este sitio web utiliza cookies propias y de terceros para optimizar su navegación, adaptarse a sus preferencias y realizar labores analíticas. Al continuar navegando acepta nuestra política de cookies.

    1. Introducción
    2. Conceptos básicos de informática
    3. Sistema operativo Unix. Historia
    4. Unix en la actualidad
    5. ¿Qué es Unix?
    6. Familias de Unix
    7. Características generales de Unix / Ventajas. Desventajas
    8. Generalidades de Unix
    9. Kernel o núcleo del método
    10. Línea de comandos, consola o "shell" del método
    11. Sistema de archivos de Unix: "File System"
    12. Comparación con el método operativo Windows: principales diferencias
    13. Comandos básicos del método operativo Unix
    14. Conclusiones. Recomendaciones
    15. Referencias

    INTRODUCCIÓN

    El método operativo UNIX se inicio como un proyecto de investigación y se ha convertido en un importante producto ampliamente utilizado en el mundo de los negocios, en el académico y en el gubernamental. Se trata de un método operativo potente, flexible y versátil, originado ya hace más de 30 años, que prácticamente puede ser instalado en cualquier tipo de plataforma, incluyendo los ordenadores personales monousuarios. El código fuente del método UNIX, y no sólo el código ejecutable, ha estado disponible a usuarios y programadores. A causa de esto, muchos programadores han sido capaces de adaptar UNIX de formas muy diferentes. Este carácter abierto, ha conducido a la introducción de un amplio rango de características nuevas y de versiones especializadas que se ajustan a necesidades particulares.

    Como se sabe, Unix es un método multiusuario, multitarea y además, proporciona un buen entorno para el trabajo en red. Ofrece programas y servicios que permiten construir aplicaciones basadas en red. Ha sido básico para el desarrollo de los servicios en Internet y para el propio crecimiento de Internet. Consecuentemente, con la importancia creciente de la computación distribuida e Internet, está creciendo la popularidad del método UNIX. El método UNIX es mucho más fácil de portar a nuevas máquinas que otros métodos operativos. Esta portabilidad es consecuencia directa de estar escrito casi completamente en un lenguaje de alto nivel, el lenguaje C. La portabilidad a un amplio rango de arquitecturas hace posible mover las aplicaciones de un método a otro.

    Los métodos operativos UNIX desarrollados en los Laboratorios Bell se cuentan entre los éxitos más notables en el campo de los métodos operativos. Los métodos UNIX ofrecen un ambiente amable para el desarrollo de programas y el procesamiento de textos. Brindan facilidad para combinar unos programas con otros, lo cual sirve para fomentar un enfoque modular, de piezas de construcción y orientado a las herramientas, para el diseño de programas. Una vez transportado un método operativo UNIX a otra máquina, un enorme acervo de programas de utilidad general queda disponible en la máquina de destino.

    El método operativo UNIX de 1981 era un método de tecleo intensivo que requería una larga lista de mandatos con diversas sintaxis. La generación más reciente de métodos UNIX ofrece en muchos casos interfaces amables con el usuario, orientadas al uso de ratón y de ventanas tales como X Window System de MIT, NeWS de Sun Microsystem y Open Look de AT&T. Los métodos UNIX se han convertido en los métodos operativos para computadora personal preferidos por los usuarios de potencia, y es probable que lo justo suceda con millones de usuarios más. Por tanto, esta guía surge para poder llevar las potencialidades y facilidades del método operativo Unix a aquellas personas que lo requieran.

    La Universidad Nacional Experimental Politécnica de la Fuerza Armada Bolivariana promueve entre los estudiantes la realización de un proyecto de guía didáctica por semestre con el objetivo de poder aumentar el acervo informativo existente en la universidad, así como de contribuir para las futuras investigaciones de otros estudiantes y personas que deseen profundizar en algún conocimiento. Esta guía del método operativo Unix pone en especial interés el hecho de poder llevarle a los estudiantes y a cualquier otra persona interesada los conocimientos más básicos acerca de este gran método de computación muy utilizado en la actualidad en las grandes empresas, debido especialmente a toda una serie de características que lo convierten en una elección de gran rendimiento y confiabilidad.

    A lo largo de esta guía el lector encontrara una gran cantidad de información, así como de conceptos básicos que le serán de utilidad para poder iniciarse en el tema de la informática. Se podrán encontrar temas referentes a los orígenes del S.O Unix, la filosofía del método, las familias derivadas del justo, Unix en la actualidad, los componentes principales del método; a saber el kernel, el "shell" y el método de archivos; las ventajas y desventajas de este método operativo y una lista de comandos básicos a utilizar en el justo. La estructura de esta guía se encuentra dividida de la siguiente manera: la portada, la introducción, el índice, el Capitulo I; donde se encuentran los conceptos básicos de informática; el Capitulo II; donde esta todo lo relacionado al S.O Unix y el Capitulo III; donde se encuentran las conclusiones y las recomendaciones. Al final de la guía se encuentra una lista de las referencias, principalmente electrónicas, utilizadas para la elaboración de la misma




    Palabras clave: método operativo, Unix, Linux, "Unix-like", computación, software, kernel o núcleo, línea de comandos, "shell", micronucleo, software libre, software privativo, método operativo tipo Unix, "prompt", familia Unix.

    CAPÍTULO I

    CONCEPTOS BASICOS DE INFORMÁTICA

    El objetivo de esta primera parte de la guía es el de familiarizar al lector principiante en la computación con algunos de los conceptos y terminologías básicas que se usaran a lo largo de esta guía. Todo lo que se expone a continuación son breves conceptos, así como alguna otra información de importancia (autor, creación, función, etc.) que se considere de utilidad para facilitar la comprensión del Capítulo II de la presente guía del Sistema operativo Unix. Los conceptos a tratar son:

    Mainframe: o computadora centrado,  es una computadora grande, potente y costosa usada principalmente por una gran compañía para el procesamiento de una gran cantidad de datos; por ejemplo, para el procesamiento de transacciones bancarias.

    • Kernel: es uno de los nombres con los que se le conoce al núcleo del método operativo y la parte fundamental del justo. Es el software del método responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora, o, en forma más básica, es el encargado de gestionar recursos, a través de servicios de llamada al método. Se encarga también de planificar la ejecución de los procesos, supervisar la transmisión de datos entre las aplicaciones y los dispositivos periféricos, administrar la memoria del computador, hacer el renderizado de texto en la pantalla, entre otras cosas.

    • Núcleo monolítico: es un tipo de núcleo o kernel de un método operativo. Está programado de forma no modular, y tiene un rendimiento mayor que un micronúcleo. Un método operativo con núcleo monolítico concentra todas las funcionalidades posibles (planificación, método de archivos, redes, controladores de dispositivos, gestión de memoria, etc) dentro de un gran programa. El justo puede tener un tamaño considerable, y deberá ser recompilado por completo al añadir una nueva funcionalidad. Todos los componentes funcionales del núcleo tienen acceso a todas sus estructuras de datos internas y a sus rutinas. Un error en una rutina puede propagarse a todo el núcleo. Todos sus componentes se encuentran integrados en un único programa que se ejecuta en un único espacio de direcciones. En este tipo de métodos, todas las funciones que ofrece el método operativo se ejecutan en modo supervisor.

    Estos métodos operativos han surgido, normalmente, de métodos operativos sencillos y pequeños a los que se les ha ido añadiendo un número mayor de funcionalidades. Esto les ha hecho evolucionar y crecer hasta convertirlos en programas grandes y complejos formados por muchas funciones situadas todas ellas en un justo nivel

    • Micronúcleo: es un tipo de núcleo de un método operativo que provee un conjunto de primitivas o llamadas al método mínimas, para implementar servicios básicos como espacios de direcciones, comunicación entre procesos y planificación básica. Todos los otros servicios (gestión de memoria, método de archivos, operaciones de E/S, etc.), que en general son provistos por el núcleo, se ejecutan como procesos servidores en espacio de usuario.

    Las principales ventajas de su utilización son la reducción de la complejidad, la descentradoización de los fallos (un fallo en una parte del método no lo colapsaría por completo) y la facilitación para crear y depurar controladores de dispositivos. Por otro lado, sus principales dificultades son la complejidad en la sincronización de todos los módulos que componen el micronúcleo y su acceso a la memoria, la anulación de las ventajas de "Zero Copy", la integración con las aplicaciones, mayor complejidad en el código, menor rendimiento o limitaciones en diversas funciones.

    • Software de aplicación: es aquel que permite a los usuarios llevar a cabo una o varias tareas específicas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial énfasis en los negocios. Entre este tipo de software están aplicaciones de control y automatización industrial, aplicaciones ofimáticas (procesador de textos, hojas de cálculo, bases de datos, etc.), software educativo, software medico, entre otros.

    • Protocolo TCP/IP: el protocolo IP ("Internet Protocol") es una norma o protocolo no orientado a conexión usado tanto por el origen como por el destino para la comunicación de datos a través de una red de paquetes conmutados. Los datos de una red basada en IP son enviados en bloques conocidos como "paquetes" o datagramas. El IP provee un servicio de datagramas no fiable, ya que el justo no provee ningún mecanismo para determinar si un paquete ha alcanzado o no su destino y lo único que proporciona es seguridad mediante "checksums" o sumas de comprobación de sus cabeceras y no de los datos transmitidos. Si se necesita fiabilidad, esta es proporcionada por los protocolos de la capa de transporte TCP ("Transmission Control Protocol"). Este protocolo garantiza que los datos serán entregados en su destino sin errores y en el justo orden en que se transmitieron. También proporciona un mecanismo para distinguir distintas aplicaciones dentro de una misma máquina, a través del concepto de puerto.

    Sistema operativo: es un software de método, es decir, un conjunto de programas de computadora destinado a permitir una administración eficaz de sus recursos. Comienza a trabajar cuando se enciende el computador, y gestiona el hardware de la máquina desde los niveles más básicos, permitiendo también la interacción con el usuario.

    • Lenguaje de programación C: es un lenguaje de programación relativamente minimalista. Está orientado a la implementación de métodos operativos, concretamente Unix. C es apreciado por la eficiencia del código que produce y es el lenguaje de programación más popular para crear software de métodos, aunque también se utiliza para crear aplicaciones. Uno de los objetivos de diseño de este lenguaje fue que sólo fueran necesarias unas pocas instrucciones en "lenguaje máquina" para traducir cada elemento del lenguaje, sin que hiciera falta un soporte intenso en tiempo de ejecución. Es muy posible escribir C a bajo nivel de abstracción; de hecho, C se usó como intermediario entre diferentes lenguajes.

    • Lenguaje ensamblador: el lenguaje ensamblador es un tipo de lenguaje de bajo nivel utilizado para escribir programas informáticos, y constituye la representación más directa del "código máquina" específico para cada arquitectura de computadoras legible por un programador. Fue usado ampliamente en el pasado para el desarrollo de software, pero actualmente sólo se utiliza en contadas ocasiones, especialmente cuando se requiere la manipulación directa del hardware o se pretenden rendimientos inusuales de los equipos.

    • Ficheros y/o métodos de ficheros: un fichero es una abstracción muy importante en programación. Los ficheros sirven para almacenar datos de forma permanente y ofrecen un pequeño conjunto de primitivas muy potentes (abrir, leer, avanzar puntero, cerrar, etc.). Los ficheros se organizan normalmente en estructuras de árbol, donde los nodos intermedios son directorios capaces de agrupar otros ficheros. El método de ficheros es la forma en que el método operativo organiza, gestiona y mantiene la jerarquía de ficheros en los dispositivos de almacenamiento, normalmente discos duros. Cada método operativo soporta diferentes métodos de ficheros.

    • Multitarea: es una característica de un método operativo moderno. Permite que varios procesos sean ejecutados al justo tiempo compartiendo uno o más procesadores.

    • Multiusuario: se refiere a un concepto de métodos operativos, pero en ocasiones también puede aplicarse a programas de computadora de otro tipo. En general se le llama multiusuario a la característica de un método operativo o programa que permite proveer servicio y procesamiento a múltiples usuarios simultáneamente (tanto en paralelismo real como simulado).

    • Linux: también conocido como GNU/Linux, es un método operativo tipo Unix que se distribuye bajo la Licencia Pública General de GNU (GNU GPL), es decir, que es software libre. Su nombre proviene del Núcleo de Linux. Las variantes de estos métodos se denominan "distribuciones" y su objetivo es ofrecer una edición que cumpla con las necesidades de determinado grupo de usuarios. Algunas son gratuitas y otras de pago, algunas insertan software no libre y otras contienen solo software libre.

    • Proyecto GNU: se refiere a un proyecto iniciado por Richard Stallman con el objetivo de crear un método operativo completamente libre. GNU es un acrónimo recursivo que significa "GNU No es Unix", pero si es compatible con el justo. Esto implica que GNU esté compuesto de pequeñas piezas individuales de software, muchas de las cuales ya estaban disponibles, como el método de edición de textos TeX y el método gráfico X Windows, que pudieron ser adaptados y reutilizados; otros en cambio tuvieron que ser reescritos. El software GNU es libre para que todos los usuarios puedan "ejecutarlo, copiarlo, modificarlo y distribuirlo"

    • Dispositivos periféricos: se denominan periféricos tanto a las unidades o dispositivos a través de los cuales la computadora se comunica con el mundo exterior, como a los métodos que almacenan o archivan la información, sirviendo de memoria auxiliar de la memoria principal, es decir; son al conjunto de dispositivos que, sin pertenecer al núcleo fundamental de la computadora, formado por la CPU y la memoria centrado, permitan realizar operaciones de entrada/salida (E/S) complementarias al proceso de datos que realiza la CPU. Estas tres unidades básicas en un computador, CPU, memoria centrado y el submétodo de E/S, están comunicadas entre sí por tres buses o canales de comunicación: el bus de direcciones, para seleccionar la dirección del dato o del periférico al que se quiere acceder, el bus de control, básicamente para seleccionar la operación a realizar sobre el dato (principalmente lectura, escritura o modificación) y el bus de datos, por donde circulan los datos. Existen 3 tipos de dispositivos periféricos: de entrada, salida y de almacenamiento

    • Software: es toda la información procesada por los métodos informáticos: programas y datos, abarca todo lo intangible, todo lo "no físico" del computador. Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados que forman parte de las operaciones de un método de computación.

    • Hardware: es la parte física de un computador y más ampliamente de cualquier dispositivo electrónico

    • Bytes: se usa comúnmente como unidad básica de almacenamiento de información en combinación con los prefijos de cantidad. Es aceptado como equivalente a octeto, es decir a ocho bits, para fines correctos, un byte debe ser considerado como una secuencia de bits contiguos, cuyo tamaño depende del código de información o código de caracteres en que sea definido. La unidad byte se representa con el símbolo B.

    • Software libre: se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar, cambiar y mejorar el software; de modo más preciso, se refiere a cuatro libertades de los usuarios del software: la libertad de usar el programa, con cualquier propósito; de estudiar el funcionamiento del programa, y adaptarlo a las necesidades; de distribuir copias, con lo que puede ayudar a otros; de mejorar el programa y hacer públicas las mejoras, de modo que toda la comunidad se beneficie (para la segunda y última libertad mencionadas, el acceso al código fuente es un requisito previo)[]

    • Software no libre: El software no libre (también llamado software propietario, software privativo, software privado, software con propietario o software de propiedad) se refiere a cualquier programa informático en el que los usuarios tienen limitadas las posibilidades de usarlo, modificarlo o redistribuirlo (con o sin modificaciones), o cuyo código fuente no está disponible o el acceso a éste se encuentra restringido.

    • Prompt: es el  carácter o conjunto de caracteres que se muestran en una línea de comandos para indicar que está a la espera de órdenes. éste puede variar dependiendo del intérprete de comandos y suele ser configurable.

    CAPÍTULO II

    SISTEMA OPERATIVO UNIX

    2.1   Historia del Sistema Operativo Unix

    Los orígenes de Unix pueden rastrearse a finales de 1960, cuando el Instituto Tecnológico de Massachusetts, los Laboratorios Bell de AT&T y General Electric trabajaban en un método operativo experimental llamado Multics (Multiplexed Information and Computing Service),[] desarrollado para ejecutarse en una computadora centrado (mainframe) modelo GE-645. El objetivo del proyecto era desarrollar un método operativo interactivo que contase con muchas innovaciones, entre ellas mejoras en las políticas de seguridad. El proyecto consiguió dar a luz versiones para producción, pero las primeras versiones contaban con un pobre rendimiento. Los laboratorios Bell de AT&T decidieron desvincularse y dedicar sus recursos a otros proyectos.

    Uno de los programadores del equipo de los laboratorios Bell, Ken Thompson, siguió trabajando para la computadora GE-635[,] y escribió un juego llamado "Space Travel"[][](Viaje espacial). Sin embargo, descubrió que el juego era lento en la máquina de General Electric y resultaba realmente caro, algo así como 75 dólares de EE.UU. por cada partida. De este modo, Thompson con ayuda de Dennis Ritchie; un físico estadounidense que colaboró en el desarrollo del método operativo Multics en los Laboratorios Bell y creó el lenguaje de programación C; escribió nuevamente el programa en lenguaje ensamblador, para que se ejecutase en una computadora DEC PDP-7. Esta experiencia, junto al trabajo que desarrolló para el proyecto Multics, condujo a Thompson a iniciar la creación de un nuevo método operativo para la DEC PDP-7[.] A continuación se puede apreciar una antigua fotografía de los creadores originales del núcleo Unix, los programadores Ken Thompson y Dennis Ritchie:

    Image:Ken n dennis.jpg

    Ken Thompson (izquierda) y Dennis Ritchie (derecha), creadores de UNIX

    Thompson y Ritchie lideraron un grupo de programadores, entre ellos a Rudd Canaday, en los laboratorios Bell, para desarrollar tanto el método de ficheros como el método operativo multitarea en sí. A lo anterior, agregaron un intérprete de órdenes (o intérprete de comandos) y un pequeño conjunto de programas. El proyecto fue bautizado UNICS, como acrónimo de "Uniplexed Information and Computing System", pues sólo prestaba servicios a dos usuarios. La autoría de esta sigla se le atribuye a Brian Kernighan, ya que era un "hack" de Multics. Dada la popularidad que tuvo un juego de palabras que consideraba a UNICS un método MULTICS castrado, se cambió el nombre a UNIX, dando origen al legado que llego hasta los días actuales

    Hasta ese instante, no había existido apoyo económico por parte de los laboratorios Bell, pero eso cambió cuando el Grupo de Investigación en Ciencias de la Computación decidió utilizar UNIX en una máquina superior a la PDP-7. Thompson y Ritchie lograron cumplir con la solicitud de agregar herramientas que permitieran el procesamiento de textos a UNIX en una máquina PDP-11/20, y como consecuencia de ello consiguieron el apoyo económico de los laboratorios Bell. Fue así como por vez primera, en 1970, se habla oficialmente del método operativo UNIX[] ejecutado en una PDP-11/20. Se incluía en él un programa para dar formato a textos (llamado "runoff") y un editor de texto. Tanto el método operativo como los programas fueron escritos en el lenguaje ensamblador de la PDP-11/20.

    Este "método de procesamiento de texto" inicial, compuesto tanto por el método operativo como de "runoff" y el editor de texto, fue utilizado en los laboratorios Bell para procesar las solicitudes de patentes que ellos recibían. Pronto, "runoff" evolucionó hasta convertirse en "troff", el primer programa de edición electrónica que permitía realizar composición tipográfica. El 3 de noviembre de 1971 Thompson y Ritchie publicaron un manual de programación de UNIX. En 1972 se tomó la decisión de escribir nuevamente UNIX, pero esta vez en el lenguaje de programación C.[] Este cambio significaba que UNIX podría ser fácilmente modificado para funcionar en otras computadoras y así otras variaciones podían ser desarrolladas por otros programadores. Ahora, el código era más conciso y compacto, lo que se tradujo en un aumento en la velocidad de desarrollo de UNIX. AT&T puso a UNIX a disposición de universidades y compañías, también al gobierno de los Estados Unidos, a través de licencias.[] Una de estas licencias fue otorgada al Departamento de Computación de la Universidad de California, con sede en Berkeley.[] En 1975 esta institución desarrolló y publicó su propio sucedáneo de UNIX, conocida como "Berkeley Software Distribution" (BSD), que se convirtió en una fuerte competencia para la familia UNIX de AT&T.

    Mientras tanto, AT&T creó una división comercial denominada "Unix Systems Laboratories" para la explotación comercial del método operativo. El desarrollo prosiguió, con la entrega de las versiones 4, 5 y 6[] en el transcurso de 1975. Estas versiones incluían los "pipes" o "tuberías", lo que permitió dar al desarrollo una orientación modular respecto a la base del código, consiguiendo aumentar aún más la velocidad de desarrollo. Ya en 1978, cerca de 600 o más máquinas estaban ejecutándose con alguna de las distintas encarnaciones de UNIX.

    La versión 7,[] la última versión del UNIX original con amplia distribución, entró en circulación en 1979. Las versiones 8, 9 y 10[] se desarrollaron durante la década de 1980, pero su circulación se limitó a unas cuantas universidades, a pesar de que se publicaron los informes que describían el nuevo trabajo. Los resultados de esta investigación sirvieron de base para la creación de Plan 9, un nuevo método operativo portable y distribuido, diseñado para ser el sucesor de UNIX en investigación por los Laboratorios Bell.

    AT&T entonces inició el desarrollo de UNIX System III, basado en la versión 7, como una variante de tinte comercial y así vendía el producto de manera directa. La primera versión se lanzó en 1981.[] A pesar de lo anterior, la empresa subsidiaria Western Electric seguía vendiendo versiones antiguas de Unix basadas en las distintas versiones hasta la séptima. Para finalizar con la confusión con todas las versiones divergentes, AT&T decidió combinar varias versiones desarrolladas en distintas universidades y empresas, dando origen en 1983 al Unix System V Release.[] Esta versión presentó características tales como el editor "Vi" y la biblioteca "curses", desarrolladas por Berkeley Software Distribution en la Universidad de California. También contaba con compatibilidad con las máquinas VAX de la compañía DEC.

    A continuación se puede observar una imagen del aspecto de Unix a los finales de la década de 1980 utilizando X Windows System:

    Imagen:X-Window-System.png

    Unix a finales de 1980 utilizando X Windows System

    En 1993, la compañía Novell adquirió la división Unix Systems Laboratories de AT&T junto con su propiedad intelectual.[] Esto ocurrió en un momento delicado en el que "Unix Systems Laboratories" disputaba una demanda en los tribunales contra BSD por infracción de los derechos de copyright, revelación de secretos y violación de marca de mercado. BSD no solamente ganó el juicio sino que cambiaron tornas descubriendo que grandes porciones del código de BSD habían sido copiadas ilegalmente en UNIX System V. En realidad, la propiedad intelectual de Novell (recién adquirida de "Unix Systems Laboratories") se reducía a unos pocos ficheros fuente. La correspondiente contra-demanda acabó en un acuerdo extrajudicial cuyos términos permanecen bajo secreto a petición de Novell.

    Aproximadamente por esa misma fecha, un estudiante de ciencias de la computación llamado Linus Torvalds desarrolló un núcleo para computadoras con arquitectura de procesador Intel x86 que mimetizaba muchas de las funcionalidades de UNIX y lo lanzó en forma de código abierto en 1991, bajo el nombre de Linux. En 1992, el núcleo Linux fue combinado con los programas desarrollados por el Proyecto GNU, dando como resultado el Sistema Operativo GNU/Linux. En 1995, Novell vendió su división UNIX comercial[] (es decir, la antigua "Unix Systems Laboratories") a Santa Cruz Operation (SCO) reservándose, aparentemente, algunos derechos de propiedad intelectual sobre el software.[] SCO continúa la comercialización de System V en su producto UnixWare, que durante cierto tiempo pasó a denominarse OpenUnix, aunque ha retomado de nuevo el nombre de UnixWare. A pesar de los problemas de la empresa debido a diversos pleitos legales, estos productos siguen siendo usando fuertemente a nivel mundial

    A continuación se puede apreciar un diagrama que muestra como ha sido la evolución de Unix a lo largo de los años. A pesar de que el diagrama esta en ingles, se puede apreciar con facilidad los distintos caminos que ha tomado el desarrollo de este núcleo, ya sea de libre acceso o de uso privativo, en distintos métodos operativos desde la fecha de creación de Unix hasta el 2008:

    Image:Unix history-simple.png

    Diagrama de evolución del método operativo UNIX

    UNIX en la actualidad

    A pesar de que muchas de las funcionalidades de Unix son imitadas hoy en día por una gran cantidad de métodos operativos, entre ellos las distribuciones de GNU/Linux. Se podría decir que las versiones más "puras" de este método operativo son las de UnixWare y SCO Open Server. Estas versiones de métodos operativos no libres para PC son actualmente propiedad de SCO Group. Por lo que se conoce, en enero de 2003, SCO contrató a un abogado, anunciando que investigarían infracciones a su derecho de autor. El 7 de marzo, el jefe ejecutivo de SCO, Darl McBride, anunció que demandarían a IBM por sus contribuciones al código de Linux, alegando que IBM robó código de UNIX y se lo otorgó a los desarrolladores del núcleo de Linux.

    En mayo de 2003, SCO Group dijo haber enviado cartas a 1.500 de las mayores corporaciones del mundo, incluyendo las compañías de Fortune 500, alegando que, de utilizar Linux, podrían estar infringiendo sus derechos de propiedad intelectual sobre el código original de UNIX. Como resultado SCO ha sido demandado por difamación por varias compañías, incluyendo IBM, la organización alemana LinuxTag, SuSE y Red Hat. El 18 de Agosto de 2007 se conoció por fin la sentencia de este pleito que llevaba en activo desde el año 2003. Finalmente el juez concluyo que:

    -        El acuerdo que SCO tenía con Novell, el único derecho que otorgaba a SCO era el de vender licencias de Unix a terceros.

    -        SCO tiene que pagar a Novell (SuSe) el 95% del importe de esas ventas, que principalmente fueron 16 millones de USD de Microsoft y 10 millones de USD de Sun.

    El 14 de septiembre de 2007, debido a los contratiempos legales que sufrió la empresa, SCO solicitó protección invocando los términos del Cápitulo 11 del Código de Bancarrota de los Estados Unidos de América. El 25 de octubre de 2007, SCO (el ex-rey del Unix para PC) recibe una oferta de 36 millones de USD por parte de JGD Management por sus negocios y propiedad intelectual. Dándole un parcial fin a las nuevas versiones de Unix.

    A pesar de todos estos contratiempos, las últimas versiones de estos métodos operativos todavía se encuentran vigentes en algunos computadores. Por ejemplo, la versión 7.1.4 de UnixWare es compatible con muchas de las aplicaciones libres clásicas de Unix (Apache, Squid, entre otras). Mientras que el SCO OpenServer 6.0.0 MP2, todavía sigue siendo un software propietario de gran uso en el entorno comercial e industrial a nivel mundial.

    Para hacerlo breve, actualmente UNIX puede referirse a 3 cosas:

    • Familia UNIX: como un grupo genérico de métodos operativos que comparten determinados criterios en su diseño y por lo tanto son llamados de la familia (o tipo) UNIX. Son más de 100 métodos operativos que se consideran de su familia.

    Sistema operativo UNIX: como una subfamilia de métodos operativos que descienden de la primera versión creada por Bell. Esto significa que comparten códigos y propiedad intelectual.

    • Marca UNIX: es decir, Unix como marca es propiedad de "The Open Group", organización de estandarización que permite el uso de dicha marca a cualquier método operativo que cumpla con sus estándares. Esto es independiente de si el método operativo en cuestión es de la familia UNIX o descendiente del original.

    A continuación se puede ver una imagen de Solaris 10 de Sun Microsystems, uno de los métodos parecidos a Unix más difundidos en el entorno empresarial en la actualidad debido a su gran estabilidad y rendimiento:

    Imagen:Solaris10-x86-240507.png

    Solaris 10, Unix actual de gran uso en las empresas

    ¿Qué es Unix?

    Es un método 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 método 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 método operativo UNIX en todas las aplicaciones que se desarrollan bajo sus auspicios.

    Unix es un método 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 método multiusuario, en el que existe la portabilidad para la implementación de distintas computadoras.

    2.2   Filosofía de UNIX

    La filosofía de UNIX en si se refiere a una serie de normas culturales así como a unas aproximaciones filosóficas para desarrollar Software basado en las experiencias de los creadores del método operativo UNIX. Para dejarlo en corto, la filosofía de UNIX toma en cuenta 3 parámetros básicos, los cuales son los siguientes:

    -          Escribir programas que hagan una cosa y la hagan bien

    -          Escribir programas que trabajen juntos (en conjunción)

    -          Escribir programas que manejen "torrentes de texto", porque esa es una interfaz universal.

    Las ideas principales de UNIX fueron derivadas del proyecto MULTICS 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 defecto.

    ·       Capacidades de "entubar" y "redireccionar": El "stdin", "stdout" y "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 de 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 justo 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 métodos 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 métodos complejos a través del uso de comandos simples y elegantes. Un ejemplo sencillo de esto es el siguiente. Supóngase que se tienen cuatro comandos separados A,B,C y D cuyas funcionalidades son:

    o      A: lee matrices revisando 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 método que lea un método 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".

    A continuación se pueden ver 2 imágenes, en donde se muestra en la primera, la lista de directorios del método y en la segunda la lista de procesos que se encuentra realizando el UNIX:

    http://www.builderau.com.au/i/s/unix_backup_james_1.jpg

    Lista de directorio del método operativo UNIX

    Image:Unix-process-list.png

    Lista de procesos del método operativo UNIX

    Familias de Unix

    Como se puede deducir de la reseña histórica de este método operativo, existen varias familias del método operativo UNIX que han evolucionado de manera independiente a lo largo de los años. Cada familia se distingue no tanto por sus diferencias técnicas como por sus diferencias en propiedad intelectual. Se observa que todas las familias se han visto contaminadas, directa o indirectamente, por otras familias. Las familias UNIX más significativas son:

    -        AT&T: la familia que tuvo su origen en el UNIX de AT&T. Considerada la familia UNIX "pura" y original. Sus métodos operativos más significativos son UNIX System III y UNIX System V.

    -        BSD: familia originada por el licenciamiento de UNIX a Berkely. BSD incorpora propiedad intelectual no originaria de AT&T, la primera implementación de los protocolos TCP/IP que dieron origen a Internet.

    -        AIX: esta familia surge por el licenciamiento de UNIX System III a IBM.

    -        Xenix: familia derivada de la adquisición de los derechos originales de AT&T primero por parte de Microsoft y luego esta los vendió a SCO.

    -        GNU: en 1983, Richard Stallman anunció el Proyecto GNU, un ambicioso esfuerzo para crear un método similar a Unix, que pudiese ser distribuido libremente. El software desarrollado por este proyecto, por ejemplo, GNU Emacs y GCC, también han sido parte fundamental de otros métodos UNIX.

    -        Linux: en 1991, cuando Linus Torvalds empezó a proponer el núcleo Linux y a reunir colaboradores, las herramientas GNU eran la elección perfecta. Al combinarse ambos elementos, conformaron la base del método operativo (basado en POSIX) que hoy se conoce como Linux. Las distribuciones basadas en el núcleo, el software GNU y otros agregados entre las que se pueden mencionar a Red Hat Linux y Debian GNU/Linux se han hecho populares tanto entre los aficionados a la computación como en el mundo empresarial. Obsérvese que Linux tiene un origen independiente, por lo que se considera un "clónico" de UNIX y no un UNIX en el sentido histórico.

    A continuación, se puede apreciar un diagrama que demuestra la colocación actual de Unix entre las distintas familias que se han desarrollado:

    Image:Unix history.svg

    Diagrama de la división de familias que usan métodos Unix o "parecidos" a Unix

    Características generales de Unix / Ventajas

    -        Es un método 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 método operativo multiusuario, con capacidad de simular multiprocesamiento y procesamiento no interactivo.

    -        Está escrito en un lenguaje de alto nivel: C.

    -        El método 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 método 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 método de ficheros. De esta forma existe compatibilidad entre ficheros, dispositivos, procesos, "pipes" y "sockets".

    -        Dispone de un lenguaje de control programable llamado "Shell".

    -        El método 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 métodos 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 métodos 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 método jerárquico de archivos, con facilidades de protección de archivos, cuentas y procesos. En este método de ficheros jerárquico todo se encuentra anclado en la raíz. La mayoría de la literatura sobre el tema dice que el método 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 justo 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 método 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 métodos 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 método 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 métodos 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 método (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 métodos 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.

    Generalidades de Unix

    En general UNIX mantiene una serie de procesos en funcionamiento durante todo el tiempo que este en funcionamiento. Todos los procesos en UNIX están identificados por un número, el PID, que es único. Si un proceso acaba y vuelve a empezar, su nuevo PID nunca coincidirá con el anterior. La lista y el estado de funcionamiento de los procesos (consumo de recursos, etc.) es fácilmente visualizable mediante el comando "top".

    Aunque desde los años de popularización del método Apple Macintosh (1983, en adelante) las interfaces gráficas de usuario se han ido extendiendo más y más, UNIX es más típicamente manejado desde interfaces de tipo CLI ("Command Line Interface"), en las que los comandos se lanzan desde el "Shell". Hay una decena de "shells" populares en UNIX, desde el antiguo pero universal "Bourne Shell" (sh) hasta el sofisticado "Bash Shell". A continuación se puede ver la imagen de ejemplo de una sesión de Bash, tomada en Gentoo Linux:

    Imagen:Bash screenshot.png

    Imagen de una sesión de Bash

    El uso de interfaces gráficas con UNIX es tan fácil como con cualquier otra plataforma. Sin embargo la flexibilidad de interconexión entre los datos de entrada y salida de las aplicaciones no es fácil de representar en aquéllos, y es este precisamente uno de los aspectos más importante para los programadores de método ya que permite construir comandos combinados potentes muy rápidamente a los expertos. UNIX ideó el método de almacenamiento en estructuras jerárquicas que hoy es tan popular en todos los métodos: los directorios y subdirectorios.

    Kernel o núcleo del método

    El núcleo del método operativo Unix (llamado Kernel) es un programa escrito casi en su totalidad en lenguaje C, con excepción de una parte del manejo de interrupciones, expresada en el lenguaje ensamblador del procesador en el que opera. Las funciones del núcleo son permitir la existencia de un ambiente en el que sea posible atender a varios usuarios y múltiples tareas en forma concurrente, repartiendo al procesador entre todos ellos, e intentando mantener en grado óptimo la atención individual. El Kernel opera como asignador de recursos para cualquier proceso que necesite hacer uso de las facilidades de cómputo. Es el componente centrado de Unix y tiene las siguientes funciones:

    ·       Creación de procesos, asignación de tiempos de atención y sincronización.

    ·       Asignación de la atención del procesador a los procesos que lo requieren.

    ·       Administración de espacio en el método de archivos, que incluye: acceso, protección y administración de usuarios; comunicación entre usuarios v entre procesos, y manipulación de E/S y administración de periféricos.

    ·       Supervisión de la transmisión de datos entre la memoria principal y los dispositivos periféricos.

    El Kernel reside siempre en la memoria centrado y tiene el control sobre la computadora, por lo que ningún otro proceso puede interrumpirlo; sólo pueden llamarlo para que proporcione algún servicio de los ya mencionados. Un proceso llama al Kernel mediante módulos especiales conocidos como llamadas al método.

    El Kernel consta de dos partes principales: la sección de control de procesos y la de control de dispositivos. La primera asigna recursos, programas, procesos y atiende sus requerimientos de servicio; la segunda, supervisa la transferencia de datos entre la memoria principal y los dispositivos periféricos. En términos generales, cada vez que algún usuario oprime una tecla de una terminal, o que se debe leer o escribir información del disco magnético, se interrumpe al procesador centrado y el núcleo se encarga de efectuar la operación de transferencia

    Cuando se inicia la operación de la computadora, debe cargarse en la memoria una copia del núcleo, que reside en el disco magnético. Para ello, se deben inicializar algunas interfaces básicas de hardware; entre ellas, el reloj que proporciona interrupciones periódicas. El Kernel también prepara algunas estructuras de datos que abarcan una sección de almacenamiento temporal para transferencia de información entre terminales y procesos, una sección para almacenamiento de descriptores de archivos y una variable que indica la cantidad de memoria principal.

    A continuación, el Kernel inicializa un proceso especial, llamado "proceso 0". En general, los procesos se crean mediante una llamada a una rutina del método ("fork"), que funciona por un mecanismo de duplicación de procesos. Sin embargo, esto no es suficiente para crear el primero de ellos, por lo que el Kernel asigna una estructura de datos y establece apuntadores a una sección especial de la memoria, llamada tabla de procesos, que contendrá los descriptores de cada uno de los procesos existentes en el método.

    Después de haber creado el "proceso 0", se hace una copia del justo, con lo que se crea el "proceso 1"; éste muy pronto se encargará de "dar vida" al método completo, mediante la activación de otros procesos que también forman parte del núcleo. Es decir, se inicia una cadena de activaciones de procesos, entre los cuales destaca el conocido como despachador, o "scheduler", que es el responsable de decidir cuál proceso se ejecutará y cuáles van a entrar o salir de la memoria centrado. A partir de ese momento se conoce el número 1 como proceso de inicialización del método, "init".

    El proceso "init" es el responsable de establecer la estructura de procesos en Unix. Normalmente, es capaz de crear al menos dos estructuras distintas de procesos: el modo monousuario y el multiusuario. Comienza activando el intérprete del lenguaje de control ("Shell") en la terminal principal, o consola, del método y proporcionándole privilegios de "superusuario". En la modalidad de un solo usuario la consola permite iniciar una primera sesión, con privilegios especiales, e impide que las otras líneas de comunicación acepten iniciar sesiones nuevas. Esta modalidad se usa con frecuencia para revisar y reparar métodos de archivos, realizar pruebas de funciones básicas del método y para otras actividades que requieren uso exclusivo de la computadora.

    "Init" crea otro proceso, que espera pacientemente a que alguien entre en sesión en alguna línea de comunicación. Cuando esto sucede, realiza ajustes en el protocolo de la línea y ejecuta el programa "login", que se encarga de atender inicialmente a los nuevos usuarios. Si la clave del usuario, y la contraseña proporcionadas son las correctas, entonces entra en operación el programa "Shell", que en lo sucesivo se encargará de la atención normal del usuario que se dio de alta en esa terminal.

    A partir de ese momento el responsable de atender al usuario en esa terminal es el intérprete "shell". Cuando se desea terminar la sesión hay que desconectarse de "Shell" (y, por lo tanto, de Unix), mediante una secuencia especial de teclas. A partir de ese momento la terminal queda disponible para atender a un nuevo usuario.

    Línea de comandos, consola o "shell" del método

    Es un programa informático que actúa como interfaz de usuario para comunicar al usuario con el método operativo mediante una ventana que espera ordenes escritas por el usuario en el teclado; los interpreta y los entrega al método operativo para su ejecución. La respuesta del método operativo es mostrada al usuario en la misma ventana. A continuación, el programa "shell" queda esperando más instrucciones. Se interactúa con la información de la manera más sencilla posible, sin gráficas, solo el texto crudo.

    Dada la importancia de esta herramienta, existe ya desde los comienzos de la computación. Existen para diversos métodos operativos, diversos hardwares, con diferente funcionalidad. Suelen incorporar características tales como control de procesos, redirección de entrada/salida, listado y lectura de ficheros, protección, comunicaciones y un lenguaje de órdenes para escribir programas por lotes o (scripts o guiones). Su contraparte es la interfaz gráfica de usuario que ofrece una estética mejorada a costa de mayor consumo de recursos computacionales, una mayor vulnerabilidad por complejidad y, en general, una reducción en la funcionalidad ofrecida.

    En su forma más simple, una CLI ("Command Line Interface")es una ventana que muestra un "prompt", señalizando su disposición a recibir mandatos, el usuario teclea una orden en el teclado e ingresa la orden normalmente con la tecla "Intro/Enter".

    Las órdenes dadas a la CLI son con frecuencia de la forma:

    PROMPT>comando_haz_algo [opciones]  [a_estos_ficheros]

    Al ingresar el mandato con "Intro", un programa interpretador de mandatos analiza la secuencia de caracteres ingresada y, si la sintaxis del mandato es correcta, ejecuta el mandato recurriendo para ello a las funciones que ofrece el método operativo o el programa que representa, un gestor de banco de datos, una sesión de FTP, etc. La respuesta al usuario es escrita en el monitor. Esta forma de trabajo es interactiva, es decir, usuario y máquina se comunican en forma sucesiva.

    Pero no solo se puede trabajar interactivamente con el CLI, también es posible usar scripts ó guión, es decir, archivos conteniendo instrucciones guardadas como si se estuviesen escribiendo en el momento. De esta forma, la línea de comandos puede utilizarse sin por lo menos tener que lidiar con lo primitivo del método ni estando presente frente al monitor o teclado. Comparada con un ambiente gráfico la CLI consume menos recursos del CPU y de la tarjeta gráfica, es más rápida y más fácil de utilizar a través de una red de computadores.

    A continuación se puede observar una imagen que describe la forma como los usuarios interactúan con el método utilizando la CLI:

    Image:Commandlineinterface.png

    Interacción con la CLI ("Command Line Interface")

     

    Sistema de archivos de Unix: "File System"

    La tercera parte que define el método operativo UNIX es la estructura de su método de ficheros. Un método de ficheros es la forma que tiene el método operativo de organizar los datos en una estructura o colección de ficheros. UNIX considera como ficheros no sólo a los ficheros normales (en los que se guardan datos, programas, etc.) sino también a los directorios y los dispositivos conectados al método.

    El método de ficheros en UNIX está organizado en una estructura jerárquica de directorios que comienza en el directorio "root" representado por "/."  Los directorios que cuelgan de "root" pueden variar dependiendo del método, aunque los mostrados en el árbol a continuación, sí son comunes a todos los métodos UNIX.

    ·       /bin - contiene comandos y utilidades, son ficheros ejecutables.

    ·       /dev - contiene los ficheros que representan a los dispositivos conectados al método.

    ·       /etc - contiene comandos y ficheros usados en la administración del método.

    ·       /home - contiene los ficheros "home" de cada usuario del método.

    ·       /lib - contiene librerías utilizadas por diferentes programas y lenguajes.

    ·       /tmp - es el directorio donde se guardan los ficheros temporales.

    ·       /usr - contiene ficheros del método que son comunes a los usuarios como programas o documentación.

    Los ficheros pueden clasificarse dentro de las siguientes categorías:

    ·       Ficheros normales

    ·       Directorios

    ·       Ficheros especiales

    ·       "Pipes" o "tuberías"

    Los ficheros normales pueden tener contenidos muy diferentes, por ejemplo, texto, imágenes, ejecutables, etc. Todos los ficheros tienen un propietario, aquellos creados por los usuarios dentro de su propia cuenta y cada propietario es el que puede controlar los permisos de acceso a ese fichero.

    Los directorios son ficheros que contienen referencias a otros ficheros. Aunque todos los ficheros se encuentran dentro de algún directorio, no residen realmente dentro de él. El directorio mantiene dos informaciones básicas sobre cada fichero contenido en él: el nombre y un número llamado "inode number" que es un puntero que le indica al método donde encontrar toda la información que necesita del fichero, además de almacenar otra información básica como pertenencia, modo de acceso y tipo de archivo. A la correspondencia entre el nombre de un fichero y el "inode number" se le denomina "link". Un justo "inode number" puede tener asociados varios nombres y se puede referir al fichero por cada uno de estos nombres.

    Los dispositivos especiales son ficheros que representan dispositivos físicos como impresoras, dispositivos magnéticos, el ratón, etc. Se encuentran dentro del directorio /dev. Los "pipes" o "tuberías" son los que permiten enlazar la salida de un comando a la entrada de otro, esto se hace a través de la creación de un fichero temporal donde se guarda la salida del primer programa hasta que es leído por el segundo.

    A continuación se puede observar un diagrama en donde se representa la interfaz para realizar llamadas al método en el método operativo Unix:

     

    Unix

     

    Diagrama de interfaz de llamadas al método

    Comparación con el método op

    0 Comentarios


    Comentarios Google+