martes, 1 de marzo de 2016
Cuestionario respondido para un examen extraordinario de la materia Sistemas Operativos.
lunes, 3 de noviembre de 2014
¿Qué es LINUX?
Etiquetas: Apple, Código abierto, Distribuciones Linux, Linux, Microsoft, Open Source, Sistemas Operativos, Superordenadores, Unix
Unix es un sistema operativo desarrollado en 1970, una de cuyas mayores ventajas es que es fácilmente portable a diferentes tipos de ordenadores, por lo que existen versiones de Unix para casi todos los tipos de ordenadores, desde PC y Mac hasta estaciones de trabajo y superordenadores. Al contrario que otros sistemas operativos, como por ejemplo MacOS (Sistema operativo de los Apple Macintosh), Unix no está pensado para ser fácil de emplear, sino para ser sumamente flexible. Por lo tanto Linux no es en general tan sencillo de emplear como otros sistemas operativos, aunque, se están realizando grandes esfuerzos para facilitar su uso.
miércoles, 17 de marzo de 2010
Administración de la Memoria en los Sistemas Operativos (2º Parte)
Etiquetas: Sistemas Operativos
Memoria asociativa
La memoria asociativa se basa en el principio de localidad que establece que la mayoría de programas tiende a referenciar un porcentaje reducido de sus páginas durante períodos relativamente largos de tiempo. Con base en este principio se equipa a los computadores de un dispositivo de hardware para asociar las direcciones virtuales con las direcciones reales (físicas) sin tener que recurrir a la tabla de páginas. Este se encuentra en la MMU y consta de un número pequeño de entradas (8, 16, 32 son cantidades típicas), cada una de las cuales tiene la estructura similar a una entrada en una tabla de páginas convencional.
Cuando el número de página no está en la memoria asociativa, se recurre a la tabla de páginas. Una vez localizada la entrada correspondiente, se extrae una entrada de la memoria asociativa y se reemplaza con el dato determinado en la tabla de páginas. Así, si esta página vuelve a ser referenciada, la segunda vez será encontrada con rapidez. Con esto la proporción de encuentros, es decir, la proporción de referencias a la memoria que pueden ser satisfechas a partir de la memoria asociativa, se incrementa considerablemente, permitiendo una mayor eficiencia en el proceso de traducción de direcciones.
- El concepto de memoria estática asume que las direcciones no cambian. Esto puede ser una ilusión de memoria virtual, o puede ser la disposición física disponible. La asignación estática de memoria puede ser por medio de direcciones absolutas o por medio de direcciones relativas del apuntador de programa (PC) (para permitir la relocalización o la recursividad), pero en cualquier caso, el compilador o el ensamblador generan un conjunto de direcciones que no pueden cambiar durante la vida del programa o el proceso.
- El concepto de memoria dinámica asume que las direcciones pueden cambiar (aunque el cambio por lo general se limita a condiciones posibles predefinidas).
Los dos enfoques dinámicos más comunes son el uso de pilas de cuadros (stack frames) y el uso de apuntadores o manijas (handlers). Las pilas de cuadros se usan principalmente en los datos temporales (como variable de funciones o subrutinas o contadores de iteraciones). Las manijas o apuntadores se usan para tener una referencia de bloques de memoria dinámicamente asignados.
Carga de programas en memoria
El proceso de carga consiste en colocar un programa en memoria para que pueda ser ejecutado. Existen diferentes tipos de cargadores:
- Compile and go: (compile y ejecute). Son los utilizados por los compiladores tipo Turbo (Pascal, C, Prolog, etc.), cuando la compilación se realiza directamente a la memoria. La idea central consiste en que a medida que se va compilando se va escribiendo directamente sobre la memoria el código ejecutable y una vez se termine el proceso, se le da el control al programa compilado para su ejecución.
- Cargadores Absolutos: Existen en sistemas en los que los compiladores generan código absoluto (no relocalizable). De esta forma se obliga a que el programa siempre se deba carga en las mismas posiciones de memoria. Son relativamente simples pero no permiten tener multiprogramación.
- Cargadores Relocalizadores: permiten cargar el programa en cualquier sitio de la memoria. Para que esto sea posible, es necesario contar con algún mecanismo de relocalización.
- Cargadores Dinámicos: Cargan los procedimientos del programa dinámicamente durante su ejecución. Son necesarios en el caso de presentarse recubrimientos.
- Cargadores en memoria virtual: Para cargar un programa en memoria virtual este primero se mueve a una zona de módulos cargables en el espacio auxiliar y creando las correspondientes entradas en la tabla de páginas, las cuales deben quedar con el bit presente/ausente apagado, lo que implica que las páginas aún no están en la memoria real, a pesar de que el programa ya está cargado en la memoria virtual. Este mecanismo recibe el nombre de acoplamientos y también se utiliza para realizar operaciones de E/S.
Overlays
¿Cómo implementar múltiples programas en un sistema operativo usando direcciones absolutas? o en las primeras computadoras, ¿Cómo se implementaba un programa que era más grande que la memoria RAM disponible (especialmente en una época donde los procesadores apenas tenían más de 1k, 2k, o 4k de RAM? La respuesta más fácil eran los sistemas de recubrimientos.
Sistemas de recubrimientos.
La idea básica es que el programa es divido en partes llamadas recubrimientos (overlays).Todos los recubrimientos se mantienen en disco y son intercambiados a la memoria conforme se van necesitando. Un recubrimiento puede comenzar a ejecutarse y al terminar, llamar a otro recubrimiento. El problema con este enfoque era que el programador tendría que dividir manualmente el programa en recubrimientos. La memoria virtual, desarrollada posteriormente, hizo que la computadora hiciera todo el trabajo.
Así, aunque el tamaño combinado del programa, los datos y la pila excediera el tamaño de la memoria física disponible, el SO podría ejecutar el programa. Aquellas partes del programa que estén en uso son almacenadas en memoria principal; el resto en el disco. Por ejemplo, un programa de 16Mb puede ejecutarse en una máquina con 4Mb escogiendo que partes deberían mantenerse en memoria, y cuales en disco. Las piezas del programa eran intercambiadas entre la memoria y el disco como se fuera requiriendo.
Con un sistema de recubrimientos, cada programa o segmento de programa es cargado exactamente en el mismo espacio de memoria. Un manejador de recubrimientos existe en otra área de la memoria y es responsable de intercambiar páginas de recubrimiento (o segmentos de recubrimiento). Cuando un segmento de recubrimiento termina su trabajo o necesita acceder una rutina en otro segmento de recubrimiento, envía una señal al manejador de recubrimiento, la cual intercambia el viejo segmento de programa e intercambia en el próximo segmento de programa.
Relocalización
La relocalización consiste en ajustar las direcciones de un programa al sitio donde fue cargado, para que este pueda ser ejecutado. Este proceso es indispensable para poder tener multiprogramación, puesto que un programa no siempre va a ocupar las mismas posiciones de memoria.
Fuente: "Diseño y Simulación de Sistemas Operativos". EUGENIO JACOBO HERNÁNDEZ VALDELAMAR.
martes, 15 de septiembre de 2009
Administración de la memoria
Etiquetas: Sistemas Operativos
Estimados lectores les dejo un estracto respecto a uno de los mayores inconvenientes que se les presentan a los usuarios, respecto del rendimiento de sus PCs/Notebooks. Esto hacen, en general, los Sistemas Operativos a la hora de administrar la memoria. Iré detallando mas sobre este tema en nuevas publicaciones.
Administración de la Memoria.
La memoria es fundamental para la operación de cualquier computadora moderna. Curiosamente nuestras aplicaciones cada vez necesitan más y más de este recurso, pero ¿por qué? Una respuesta es el tamaño de las aplicaciones, pero recordemos que los sistemas operativos son los encargados de proveer un ambiente donde estas aplicaciones se ejecuten; por lo tanto, para que la idea de administración de procesos sea factible, tenemos que contar con la memoria para cargar nuestros programas, y también serán necesarios mecanismos que optimicen el uso de este recurso esencial.
Los sistemas operativos ofrecen un mecanismo para que el software acceda a la memoria. En el enfoque más sencillo, la memoria entera de la computadora se dedica a los programas. Este enfoque es el más común en sistemas de una sola tarea (solo un programa se ejecuta a la vez). Incluso en este caso, existirán porciones de la memoria designados para ciertos propósitos (variables, áreas para las rutinas del SO, mapeo del hardware, memoria de video, etc.). Con el hardware de soporte para memoria virtual, los sistemas operativos pueden darle a los programas la ilusión de tener la memoria entera para ellos (o incluso dar la ilusión de que hay más memoria de la que en realidad exista, usando el espacio en disco), cuando en realidad el SO está moviendo continuamente programas en la memoria y asignando dinámicamente la memoria cuando se necesita. Para comprender la ejecución de programas, es necesario estudiar el funcionamiento del servicio que hace posible que las instrucciones y datos puedan ser manipulados. La memoria es una colección de elementos (bytes o words), cada uno con su propia dirección. La interacción con la memoria se lleva a cabo por medio de una secuencia de lecturas o escrituras a direcciones específicas.
El CPU intercambia datos de forma intensiva con la memoria. En un ciclo típico de instrucción, por ejemplo, primero se obtiene una instrucción de la memoria; la instrucción es entonces decodificada y puede causar que los operandos sean traídos de la memoria. Después de ejecutar la instrucción sobre los operandos, los resultados pueden ser almacenados en la memoria.
Es importante notar que la unidad de memoria lo único que ve es un conjunto de direcciones de memoria; no sabe como son generadas (el apuntador a instrucción, indexado, etc.) o para que se van a usar (instrucciones o datos). De acuerdo a esto, podemos ignorar como un programa genera una dirección de memoria, y solo interesarnos por las secuencias de direcciones de memoria generadas por el programa en ejecución.
Asignación de direcciones
Para referenciar una parte especifica de la memoria, se necesita la ubicación de dicha parte de memoria. Esto es lo que se conoce como direcciones físicas.
En los programas, las ubicaciones de memoria a las que se hace referencia son llamadas direcciones lógicas, porque una dirección especificada por un programa puede o no ser la dirección física correcta.
Básicamente hay tres formas diferentes de que las direcciones lógicas sean mapeadas a direcciones físicas, lo cual es llamado ligado de direcciones (address binding). Estás técnicas de ligado dependen de los métodos de administración de memoria que el SO de la computadora use y el hardware disponible:
1. Ligado de direcciones a tiempo de compilación. Cuando al compilar se conoce la dirección absoluta, el compilador escribe la imagen exacta del código que se cargará en la memoria. Esta técnica genera código absoluto, es decir, que las direcciones están previamente en su lugar, y cuando el programa es ejecutado, las ubicaciones lógicas 000 - 999 de hecho corresponden a las direcciones físicas 000 - 999. Por ejemplo, consideremos un sistema simple donde el SO reside en las direcciones físicas 000 - 500, por lo que cualquier programa tendría que comenzar en la dirección 501. Un programa que tiene el espacio de direcciones lógicas 000 - 999 podría ser modificado para que sus direcciones lógicas correspondan con las direcciones físicas 501 - 1500. Si el programa se compiló para una dirección específica, pero tiene que ser cargado en una dirección diferente de arranque, entonces el programa tendrá que ser recompilado. Los sistemas modernos no usan este método por no ser flexible.
2. Ligado de direcciones a tiempo de carga. Si la dirección de inicio del programa no se conoce a tiempo de compilación, entonces el compilador generará código relocalizable. A tiempo de carga, cuando el sistema conoce el lugar donde se colocará el programa, el ligado de tiempo de carga podrá mapear las direcciones lógicas del programa (p.ej. 000-999) a las direcciones físicas correspondientes (p.ej. 501-1500 o 1000-1999), dependiendo de la situación de la carga
(DOS trabaja de esta forma).
3. Ligado de direcciones a tiempo de ejecución. Si la dirección de inicio de un programa va a ser alterada durante su ejecución, entonces el ligado deberá ser postergado hasta el momento en que se ejecute. Las direcciones físicas son generadas durante la ejecución agregando el valor de las direcciones lógicas a un registro de desplazamiento (offset register). De nuevo, suponiendo que las direcciones lógicas del programa son 000-999, puede asignarse el valor de
501 al registro de desplazamiento para hacer referencia a las direcciones físicas 501-1500. Así, cuando la dirección base del programa se cambia de 501 a 2001, el valor del desplazamiento se cambia de 501 a 2001. Este técnica se usa si el sistema operativo usa swapping (pasar procesos a disco para hacer espacio en la memoria), lo que ocasiona que un proceso sea cambiado de posición durante su ejecución. En este caso se usa hardware especial para mejorar el rendimiento.
El programa de usuario sólo ve direcciones lógicas; es la unidad de administración de memoria (MMU) quien se encarga de traducirlas transparentemente a direcciones físicas. La gracia es que el compilador puede generar código absoluto, pensando que el programa se va a cargar siempre en la posición 0, y en realidad el ligado de direcciones se hace a tiempo de ejecución.
La unidad de administración de memoria (MMU) La unidad de administración de memoria (MMU) es un dispositivo de hardware que traduce direcciones virtuales en direcciones físicas. Típicamente la MMU es parte del CPU, aunque en algunos sistemas es una parte independiente.
Las direcciones generadas por el CPU, después de cualquier indexación u operación realizada por los modos de direccionamiento, es llamada dirección virtual, y la dirección transformada por la MMU es llamada dirección física.
La MMU incluye una pequeña cantidad de memoria que contiene una tabla que relaciona las direcciones virtuales y las direcciones físicas; esta tabla es llamada TLB (Translation Lookaside Buffer). Todas las peticiones de datos son enviadas a la MMU, la cual determina si los datos están en la RAM o es necesario extraerlos de un medio de almacenamiento secundario. Si los datos no están en memoria, la MMU genera una interrupción de fallo de página (page fault interrupt).
La MMU soporta el manejo de esquemas de memoria virtual como alojamiento continuo, paginación, segmentación y segmentación con paginación.
Fuente: "Diseño y Simulación de Sistemas Operativos". EUGENIO JACOBO HERNÁNDEZ VALDELAMAR.
martes, 1 de septiembre de 2009
¿Que es la autenticación fuerte?

El token es un dispositivo electrónico que genera para sus usuarios una secuencia aleatoria de números cuya validez dura sólo unos segundos.
Combinada con un PIN (Personal Identification Number), que debe memorizarse, esta secuencia de números compone la contraseña del usuario.
La autenticación es una manera de asegurar que la persona que se está identificando en un sistema es realmente quien dice ser. Es decir, es un modo de comprobar su identidad.
Todos los días, cuando usted llega a su trabajo y enciende la computadora, probablemente vea una pantalla de autenticación que le solicita su nombre de usuario (su identificación) y su contraseña (autenticación del usuario) para que tenga acceso a los recursos de la red. Y este es el sistema de autenticación de su empresa, que se basa en algo que "usted sabe": la contraseña.
Un sistema de autenticación puede basarse en tres factores básicos:
1. Algo que la persona sabe: contraseña, PIN, número de un documento personal, nombre de algún pariente, etc.
2. Algo que la persona posee: credencial, tarjeta magnética, token, etc.
3. Algo que la persona es: impresión digital, reconocimiento facial, voz, iris, retina, etc.
Se habla de autenticación fuerte cuando un sistema de autenticación utiliza por lo menos dos de los tres factores citados arriba. De este modo, si uno de los factores se ve comprometido, todavía existe un segundo factor que garantiza la seguridad.
Los tokens son conocidos como dispositivos que proveen autenticación fuerte, dado que por más que el usuario pierda el dispositivo, si otra persona se apodera del token extraviado, todavía necesita conocer el PIN para poder autenticarse.
Si bien los dispositivos de OTP permiten la autenticación fuerte, hay muchos otros sistemas que utilizan esta técnica para garantizar la seguridad de sus usuarios. Por ejemplo, cuando usted va a un cajero electrónico para retirar dinero, se le solicita que inserte su tarjeta magnética (algo que usted tiene) y que ingrese su contraseña (algo que usted sabe).
Por esta razón, es necesario ser muy cuidadoso con los sistemas que no proveen autenticación fuerte (credencial de entrada al edificio, login de acceso a la red, contraseña en sitios de Internet, entre otros.), ya que en caso de ser comprometidos, cualquier persona podrá hacerse pasar por usted instantáneamente. Y nunca desatienda ninguno de los dos factores en sistemas que proveen autenticación fuerte, porque es la única manera de garantizar un poco más de seguridad a su identidad.
Walber Alexandre de Castro
Consultor de Seguridad de la información
CISSP – CCNA – ITIL - JNSS.SA – LPI - Security Officer
Global Crossing Brasil – Datacenter & Security
viernes, 24 de julio de 2009
Sistema Operativo Singularity (Microsoft)
Etiquetas: Microsoft, Singularity, Sistemas Operativos, Sobre mi, Wikipedia
El nivel más bajo de interrupciones está escrito en lenguaje ensamblador y C. Por encima, el núcleo, cuyo entorno de ejecución y recolector de basuras están escritos en C#, se ejecuta en modo no seguro.
La capa de abstracción de hardware está escrita en C++ y se ejecuta en modo seguro.
También hay algo de código C para manejar la depuración. La BIOS del ordenador sólo se invoca durante la fase de arranque de 16 bits. Una vez se está en modo 32 bits, Singularity nunca vuelve a llamar a la BIOS, aunque sí llama a los controladores de los dispositivos escritos en Sing#, una extensión de Spec#, que a su vez es una extensión de C#. Durante la instalación, los códigos de operación CIL (Common Intermediate Language o Lenguaje intermedio común) se compilan a códigos de operación x87 usando el compilador Bartok.
Singularity 1.0 fue completado en el año 2007. Un paquete de desarrollo e investigación (RDK) para Singularity ha sido publicado con una licencia de fuente compartida que permite el uso no comercial y académico y está disponible en CodePlex. La investigación actual se mueve hacia el desarrollo de Singularity RDK 2.0[1]
Diseño
Singularity es un sistema operativo con micronúcleo; de todos modos, al contrario que muchos microkernel anteriores, sus componentes no se ejecutan en distintos procesos de espacios de memoria. De hecho, sólo hay un único espacio de memoria en el que los procesos de programa aislados (SIP, Software-Isolated Processes) residen. Cada SIP tiene su propio espacio de código y datos y es independiente de otros SIP. Éstos se comportan como procesos normales, pero no requieren penalizaciones por cambio de tarea.
Referencias
↑ «Microsoft Research Singularity Project». Consultado el 2007-12-09.
Enlaces externos
Página oficial
Código fuente de Singularity
Motivación del diseño de Singularity (pdf) (inglés)
Descripción del proyecto Singularity (pdf) (inglés)
Tema Dance de mi autoría dedicado a la SINGULARIDAD (Singularity): http://www.tumundodance.com/
Fuente: http://es.wikipedia.org/wiki/Singularity_(Microsoft)
miércoles, 5 de noviembre de 2008
Un poco de história: Orígenes de UNIX LINUX
Etiquetas: Sistemas Operativos, UNER
El nombre UNIX puede significar innumerables cosas. Es uno de los términos de contexto específicos más empleado en la industria de la computación actual. Para comprender mejor el significado de la palabra UNIX cuando alguien la emplee, es necesario conocer la versión del sistema operativo de que se habla.
Aunque son muchos y distintos los distribuidores que of recen las versiones de UNIX, éstas pueden dividirse en dos grandes categorías: el System V y la BSD (Berkeley Software Distribution o distribución de software Berkeley, en español) de UNIX. El System V de UNIX es la versión desarrollada por los creadores de UNIX, AT&T Bell Laboratories. La BSD de UNIX estuvo relacionada con la versión de UNIX que se desarrolló y proliferó en la Universidad de California en Berkeley.
La versión más popular de la BSD la vendió Sun Microsystems para sus potentes estaciones de trabajo. Para la versión 4 del System V de UNIX, AT&T y Sun Microsystems fusionaron sus dos versiones en el System V. Gracias a esta fusion y a la reanimación de la industria en torno al estándar del System V de UNIX, a este último se le considera ahora el sistema estándar de UNIX. Sin lugar a duda, lo mejor que pudo ocurrirle al sistema operativo UNIX fue el desarrollo de la versión 4.2 del System V (SVR4.2). Creado e introducido por UNIX System Laboratories (USL, que ahora pertenecen a Novell, Inc.), el SVR4.2 combi na la potencia y las capacidades de UNIX con una "afectuosa" interfaz gráfica para Ios usuarios (GUI, por sus siglas en inglés). El resultado es un sistema operativo por el que puede navegar con suma facilidad un usuario inexperto en computación o al que pueden personalizar radicalmente los administradores de sistemas u otros expertos.
Novell vende el SVR4.2 como UnixWare. Antes de la introducción al mercado del SVR4.2, los usuarios de UNIX sólo veían un indicador de línea de comandos (un simple signo de pesos) luego de conectarse al sistema. Sin ninguna guía evidente en la pantalla, los usuarios inexpertos a menudo se desalentaban tanto que preferían abandonar UNIX en favor de otro sistema Operativo más conocido. Esto contribuyó sin duda a que UNIX se ganara durante los años la reputación de ser un sistema operativo poco amistoso. No obstante, la experiencia y los comentarios favorables disiparon parte de la renuencia de los usuarios, con lo cual dicha reputación cambió lentamente.
Características generales de UNIX/Linux
Los beneficios derivados del uso del sistema operativo UNIX, y por tanto de Linux, provienen de su potencia y flexibilidad. Estas son resultado de numerosas características integradas al sistema, las que están disponibles tan pronto como se inicia. En las siguientes secciones se analizan estas características con detalle.
Multitareas
La palabra multitareas describe la habilidad de ejecutar, aparentemente al mismo tiempo, numerosos programas sin obstaculizar la ejecución de cada aplicación. Esto se conoce como multitareas preferente, porque cada programa tiene garantizada la posibilidad de correr, esto es, cada programa no se ejecuta sino hasta que el sistema operativo lo aparta para permitir que otros programas corran. Este tipo de multitareas es exactamente lo que Linux hace. MS-DOS y Windows 3.1 no soportan multitareas preferente, sólo la llamada multitareas cooperativa, bajo la cual los programas corren hasta que ellos mismos permiten la ejecución de otro programa o no tienen otra cosa que hacer durante ese periodo. Para comprender mejor la capacidad de multitareas de Linux, es preciso examinarlo desde otra perspectiva. E1 microprocesador de una computadora puede hacer una sola cosa a la vez, pero capaz de completar esas tareas individuales en períodos tan breves que son difíciles de captar. Por ejemplo, los microprocesadores típicos de hoy operan a velocidades de reloj de 25 a 90 Mhz (megahertz) o más veloces, es decir, son capaces de transferir 25 a 90, o más, millones de bits por segundo. A1 procesar un conjunto completo de instrucciones, las velocidades son más rápidas, en general 30 nanosegundos (una 1 milmillonésima de segundo). La mente humana es incapaz de detectar la diferencia entre una demora tan breve y algo que ocurra simultáneamente.
Linux y otros sistemas operativos de multitareas preferente realizan el procesamiento preferente mediante el monitoreo, tanto de los procesos que están en espera de ejecución como de los que se están ejecutando. Entonces, el sistema programa cada proceso para que tenga la misma oportunidad de acceso al microprocesador. El resultado es que las aplicaciones abiertas parecen correr al mismo tiempo (en realidad hay demoras intermedias de una milmillonésima de segundo cuando el procesador ejecuta un conjunto de instrucciones desde una aplicación y cuando Linux lo programa para volver a dedicarle tiempo a ese proceso).
Multiusuario
El concepto de que numerosos usuarios pudieran accesar aplicaciones o el potencial de procesamiento de una sola PC era un mero sueño hace unos cuantos años. UNIX y Windows NT ayudaron a que este sueño se convirtiera en realidad. La capacidad de Linux para asignar tiempo del microprocesador a numerosas aplicaciones simultáneas se prestó como consecuencia a servir a numerosas personas al mismo tiempo, cada una ejecutando una o más aplicaciones. La particularidad en realidad destacada de Linux y sus características de multiusuario y multitareas, es que más de una persona puede trabajar en la misma versión de la misma aplicación de manera simultánea, desde las mismas tenninales o desde terminales separadas. Esto no debe confundirse con numerosos usuarios que actualizan un archivo a un tiempo, particularidad que es potencialmente desconcertante y peligrosa a la vez que indeseable.
Breve historia de Linux
La historia de Linux está ligada a la de UNIX y, en menor grado, a un programa llamado Minix. Este último era un sistema operativo tutorial, escrito por el reconocido y respetado científico de la computación Andrew Tannebaum. Este sistema operativo adquirió popularidad en varias plataformas de PC, incluidas las PCs basadas en el MS-DOS. Pero más adelante se hablará de Minix; primero, se presenta una breve historia de UNIX.
Cuando Novell, Inc. Ie compró UNIX System Laboratories a Ameritan Telephone and Telegraph Corporation (AT&T) en 1993, ganó en propiedad la marca registrada conocida como UNIX y, en consecuencia, controló los derechos relativos a quién puede usarla con fines de publicidad u otros propósitos comerciales. Por esta razón es que usted no puede llamarle Linux UNIX..
Aunque AT&T fue el creador del sistema operativo UNIX, muchas otras compañías e individuos han tratado de mejorar durante años la idea básica. En las secciones siguientes se examinan algunas de las principales variantes que se usan en la actualidad. AT&T , Ken Thompson era un programador de computación que trabajaba para AT&T Bell Laboratories. En 1969, un grupo de personas que trabajaba bajo las órdenes de Ken desarrolló un sistema operativo que era flexible y totalmente compatible con las diversas necesidades de los programadores. La leyenda cuenta que Ken, quien había estado usando el sistema operativo MULTICS, le puso el apodo de UNIX a este nuevo producto mientras bromeaba con algunos miembros de su equipo de desarro llo. Estaba ridiculizando el sistema operativo multiusuario MULTICS (UNIX se forma con uní, que significa uno o único, seguida de la letra X homófona). Quizá el aspecto más jocoso de este suceso informal radica en el hecho de que a MULTICS lo recuerdan hoy día sólo unos cuantos usuarios como un sistema operativo multiusuario viable, en tanto que UNIX se ha convertido en el estándar industrial de tacto para los sistemas operativos multiusuario y multitareas.
BSD
Berkeley Software Distribution, en la Universidad de Califoroia en Berkeley, en 1978 dio a conocer su primera versión de UNIX, basada en la Version 7 de AT&T. E1 BSD UNIX, como se le conoce en toda la industria, contiene las mejoras desarrolladas por la comunidad académica de Berkeley y concebidas para hacer de UNIX
un sistema más amigable.
Las mejoras de "uso amistoso" en BSD UNIX fueron un intento por conseguir que UNIX atrajera la atención de personas comunes así como la de los programadores avanzados que disfrutaban de la flexibilidad del programa porque se acomodaba a sus cambiantes demandas. A pesar de no ser cien por ciento compatible con el UNIX original de AT&T, BSD lograba sus objetivos: las características adicionales tentaban a los usuarios comunes a utilizar UNIX. BSD se ha convertido en el estándar académico. Desde ese entonces, los creadores originales de BSD han lanzado una versión para la plataforma Intel llamada, muy apropiadamente, BSD386.
La distribución de esta versión también está limitada en Internet y por medio de los distribuidores de CD-ROM. Además, los autores escribieron varios artículos hace unos cuantos años en la revista de computación Dr. Dobb 's, en los que detallan el diseño y fabricación del 386BSD.
Coherent
Coherent, otro clon de UNIX, lo distribuye Mark William's Company. Durante algún tiempo, Coherent fue el clon más económico de UNIX de los que había comercialmente disponibles en el mercado. Coherent aun tiene bastantes seguidores y varios grupos de noticias de USENET que siguen la evolución del producto.
USL
USL, o UNIX System Laboratories, fue una subsidiaria de la organización AT&T que estuvo dedicada al desarrollo del sistema operativo UNIX desde el principio de proyecto la década de los ochenta. Antes de que Novell la adquiriera en 1993, USL produjo el código fuente para todos los derivados del System V de UNIX de la industria. No obstante, la propia empresa USL no vendió ningún producto terminado en aquel entonces.
El último lanzamiento de UNIX de USL fue la versión 4.2 del System V de UNIX (SVR4.2). El SVR4.2 marcó la primera incursión de USL al mercado de mayoristas de UNIX. En una aventura conjunta con Novell, la que creó temporalmente una compañía llamada Univel, USL produjo una versión terminada del SVR4.2 llamada UnixWare. Con la compra de USL por parte de Novell, esta última compañía cambiado el enfoque de USL (ahora parte del UNIX Systems Group de Novell) productor de código fuente a productor de UnixWare.
XENIX, SunOS y AIX
Finales de los setenta y principios de los ochenta, durante la cúspide de la revolución de las PCs, Microsoft desarrolló su versión de UNIX, a la que llamó XENIX.
El potencial de procesamiento disponible en las PCs comenzó a rivalizar con el de las minicomputadoras existentes. Luego de la aparición del microprocesador 80386 de Intel, pronto se hizo evidente que XENIX (desarrollado de manera específica Esta para las PCs) ya no era necesario. Microsoft y AT&T fusionaron XENIX y UNIX Guid en un solo sistema operativo llamado System V/386, versión 3.2, el que opera en casi cualquier configuración común de hardware. XENIX todavía puede conse guirse con Santa Cruz Operation (SCO), desarrollador conjunto de Microsoft, cuyo esfuerzo por promover XENIX en el mercado de las PCs ha hecho que esta ver- instalasción de UNIX sea una de las más exitosas en el ámbito comercial. SCO también produjo una versión de UNIX, llamada SCO UNIX. :
Sun Microsystems ha contribuido en gran medida al potencial de ventas de UNIX mediante la promoción del SunOS y sus estaciones de trabajo correspondientes. El trabajo de Sun con UNIX produjo una versión basada en BSD. Como nota interesante el SVR4 de AT&T también es compatible con BSD; sin duda un descendiente de AT&T y la colaboración de Sun Microsystems en la versión 4.0 del System V de UNIX. La incursión de IBM en el mundo de UNIX dio como resultado un producto llamado AIX (ejecutivo interactivo avanzado). Aunque no es tan conocido como otras versiones de UNIX, AIX se desempeña bien y no deja de estar presente dentro del mercado de los sistemas operativos. Tal vez el viejo concepto de que cualquier versión de UNIX es un sistema poco amigable e implacable, es lo que ha impedido que AIX tença una mejor recepción en el mercado.
Linux
Linux es el invento de un estudiante de ciencias de la computación, en aquel entonces de 23 años, cuyo nombre es Linus Torvalds. Linux cobró vida como un proyecto de entretenimiento de Linus, quien esperaba crear una versión más comple ta de UNIX para los usuarios de Minix. Este último, como ya se mencionó antes, es un programa desarrollado por el doctor Andrew Tannebaum, profesor en ciencias de la computación.
El sistema Minix se escribió para mostrar varios conceptos de las ciencias de la computación incluidos en los sistemas operativos. Linus incorporó estos conceptos en un sistema independiente que imita a UNIX. El programa, accesible sin reserva a los estudiantes de ciencias de la computación de todo el mundo, pronto generó muchos adeptos, incluidos sus propios grupos de noticias de USENET. LinusTorvalds se aplicó a la tarea de proporcionar a sus compañeros usuarios de Minix una mejor plataforma que pudiera correr en las ampliamente accesibles PCs de IBM.
Eligió las recién aparecidas computadoras 386 a causa de las propiedades de conmutación de tareas de la interfaz 80386 en modo protegido.
ENTRADAS MAS POPULARES
-
Gestión de una Mesa de Ayuda: La función de la Mesa de Ayuda es proveer a los usuarios un punto único de contacto mediante el cual se resuel...
-
INTRODUCCIÓN Según un estudio realizado recientemente, 8 de cada 10 equipos se encuentran infectados con algún tipo de código malicioso. Ant...
-
Resumen del contenido Introducción.Administración, Proceso Administrativo, Centro de Cómputo, Misión de un Centro de Cómputo, Element...
-
Asignación de direcciones IP El DHCP administra la asignación y el release de la configuración IP, concediendo la configuración IP al clie...
-
El Modelo OSI. El modelo de red que hablamos hoy es el modelo OSI. Es el principal modelo para toda comunicación en redes, en estos tiem...
ÚLTIMAS PUBLICACIONES
Recibe todas las actualizaciones de este blog. Sólo haz clic en el botón Me Gusta de Facebook.
Muchas gracias!!!
Muchas gracias!!!
Powered By | Blog Gadgets Via Blogger Widgets
