fbpx
Wikipedia

MINIX

MINIX es un clon del sistema operativo Unix distribuido junto con su código fuente y desarrollado por el profesor Andrew S. Tanenbaum en 1987.

MINIX
Parte de Unix

MINIX 3.1.2a
Información general
Tipo de programa tipo Unix
Desarrollador Andrew S. Tanenbaum
Modelo de desarrollo Software libre
Lanzamiento inicial 1987
Licencia Licencia BSD
Estado actual En desarrollo
Idiomas inglés
Información técnica
Programado en C
Núcleo MINIX
Tipo de núcleo Micronúcleo
Plataformas admitidas
Versiones
Última versión estable 3.4.0rc6 ( 09 de mayo de 2017 (4 años, 5 meses y 27 días))
Enlaces
Sitio web oficial
Repositorio de código

En 1975 los Laboratorios Bell de la AT&T, publicaron el sistema operativo Unix V6, para 1977 John Lions publicó unas notas con el código fuente que se usaba en los cursos de sistemas operativos. Cuando los Laboratorios Bell publicaron Unix V7 en 1979, prohibieron su uso para la enseñanza. Por lo que en 1984 Andrew S. Tanenbaum comenzó a escribir un clon de Unix para las IBM-PC con Intel 8086 de ese tiempo, con el fin de usarlo en su clase en lugar del entonces prohibido Unix. Terminado en 1987 pudo usarlo para enseñar a sus alumnos el diseño de sistemas operativos en la Vrije Universiteit de Ámsterdam.

Su libro fue ampliamente adoptado, porque además de que Unix estaba bajo restricciones de licencia de AT&T, era demasiado complicado y corría sobre máquinas complejas; algo completamente antipedagógico, mientras que Minix fue escrito con fines pedagógicos y para una máquina muy accesible. En 1997 publicó Minix 2 y en el 2004, gracias al financiamiento de la Union Europea, Minix 3 que es compatible con NetBSD y a prueba de fallas.

Gracias a su reducido tamaño, diseño basado en el paradigma del micronúcleo, y su amplia documentación, resulta bastante apropiado para personas que desean instalar un sistema operativo compatible con Unix en su máquina personal, así como aprender sobre su funcionamiento interno.

El primer Minix fue desarrollado para ser ejecutado en un IBM PC con microprocesador Intel 8088 o superior, aunque se han creado conversiones para otros sistemas y Minix 3, también corre en procesadores ARM.

Debido al enfoque puramente educacional de MINIX, Tanenbaum no permitía que este fuera modificado demasiado ya que esto complicaría el sistema y no permitiría que sus estudiantes lo entendieran en un semestre. Por estos motivos, Linus Torvalds decidió escribir su propio núcleo de sistema operativo (Linux) compatible con Unix. En simbiosis con las herramientas de GNU surgió GNU/Linux, que ha ganado protagonismo en el campo de los Unix para ordenadores compatibles con el IBM PC, principalmente debido a que su licencia (GPL) permite la modificación del mismo. Actualmente Minix se distribuye con una licencia similar, la licencia BSD, que es menos restrictiva que la de GNU, porque en palabras de Tenembaum, "está permitido todo excepto demandarlo".

Para una persona poco familiarizada con los elementos internos de un sistema operativo, MINIX es una buena opción que le permite entender casi todos los elementos del sistema, con solo algunos meses de uso y estudio.

Historia

Andrew S.Tanenbaum creó MINIX en la Universidad Libre de Ámsterdam para ejemplificar los principios recogidos en su libro de texto Operating Systems: Design and Implementation (1987). Una parte del código en C del núcleo, el controlador de memoria y el sistema de ficheros de MINIX 1.0 se recogen en este libro.

Junto con el libro también había disponible un disquete con el código fuente de MINIX y los binarios, junto con un manual de referencia del sistema.

Tanenbaum creó originalmente MINIX para que fuera compatible con las arquitecturas IBM PC e IBM PC/AT, que eran las comunes en esa época.

MINIX 1.5, publicado en 1991, incluía soporte para MicroChannel IBM PS/2 y también fue adaptado para las arquitecturas Motorola 68000 y SPARC, soportando Atari ST, Commodore Amiga, Apple Macintosh y plataformas Sun SPARCstation.

También existió una adaptación no oficial a las arquitecturas compatibles con Intel 80386 (en modo de 32 bits protegido), National Semiconductor NS32532, ARM y procesadores INMOS transputer. Meiko Scientific utilizó una primera versión de MINIX como base de su sistema operativo MeikOS. También existió una versión de MINIX que se ejecutaba como un proceso de usuario en el sistema operativo SunOS.

Al decrementarse la demanda de las computadoras de arquitectura de 68k, MINIX 2.0, publicado en 1997, sólo era compatible con las arquitecturas x86 y SPARC. Fue el tema para la segunda edición del libro de Tanenbaum, en esta ocasión coescrito junto con Albert Woodhull, y fue distribuido en un CD-ROM incluido en el libro. MINIX 2.0 añadía compatibilidad con POSIX1, soporte para arquitecturas Intel 80386 y superiores de 32 bits y reemplazó los protocolos de red Amoeba incluidos en MINIX 1.5 por TCP/IP. También aparecieron adaptaciones no oficiales de MINIX 2.0 para las arquitecturas basadas en el 68020 ISICAD Prisma 7000 y las basadas en Hitachi SH3.

Minix-vmd es una variante de MINIX 2.0 para procesadores compatibles con Intel IA-32, que fue creada por dos investigadores de la Vrije Universiteit, la cual añadía memoria virtual y soporte para el sistema gráfico X Window System.

MINIX 3 fue públicamente anunciado el 24 de octubre de 2005 por Andrew Tanenbaum, durante su exposición en la conferencia de ACM en el Symposium on Operating System Principles. Aunque sigue manteniéndose como ejemplo para la nueva edición de su libro, está comprensiblemente rediseñado para ser “utilizado como un sistema serio en computadoras con recursos limitados y para aplicaciones que requieren de gran fiabilidad”.

Actualmente MINIX 3 soporta sólo arquitecturas derivadas de IA-32, y está disponible en LiveCD, lo que permite ser utilizado sin necesidad de instalar el sistema operativo, y en versiones compatibles con sistemas de emulación o virtualización como BOCHS, Qemu, VMware y VirtualPC.

La versión 3.1.5 fue lanzada el 5 de noviembre de 2009, y contiene X11, emacs, vi, cc, gcc, perl, python, ash, bash, zsh, ftp, ssh, telnet, pine y cerca de 650 aplicaciones más, comunes a los sistemas Unix. Con la incorporación de X11, esta versión marca el punto de transición entre el modo texto y gráfico en este sistema operativo. Otra característica de esta versión, que será mejorada en un futuro, es la habilidad del sistema para mantenerse cuando el driver de algún componente deja de funcionar, y en algunos casos éstos son reemplazados automáticamente sin afectar a los procesos que se estén ejecutando. Siguiendo este camino, MINIX puede auto-reponer su salud, lo que él llama self-healing, por lo que es ideal para sistemas que requieren alta fiabilidad.

Estructura de MINIX

Para comprender mejor la estructura microkernel de MINIX se detallan a continuación las diferentes capas.

 

Capa 1

Esta es la capa que interactúa directamente con el hardware. Es la encargada de atrapar todas las interrupciones y trampas, de planificar y ofrecer a las capas superiores un modelo de procesos independientes y secuenciales para comunicarse mediante el uso de mensajes. En resumen cuenta con dos partes bien definidas: la primera trata todo lo referente a la programación de bajo nivel para brindar la abstracción de procesos a las capas superiores. La segunda parte gestiona los aspectos más mecánicos de los mensajes, como los buffers de envío y recepción de mensajes que se alojan en la memoria física, las verificaciones de destinos y todo lo referente al manejo físico de memoria en lo que respecta a los mensajes. Esta primera capa está escrita en lenguaje ensamblador, el resto están escritas en lenguaje C.

Capa 2

Contiene todo lo concerniente a los procesos de E/S, uno por cada tipo de dispositivos (tareas). Como se ilustra en el gráfico, tenemos tareas para discos, impresoras, relojes, interfaces de red y tareas de sistema, que si bien no son dispositivos de sistema sí tienen por finalidad el servicio de copiado entre diferentes regiones de memoria para procesos que no cuentan con los privilegios para realizarlos ellos mismos. Todas las tareas de la capa 2 y el código de la capa 1 se combinan para formar un solo programa binario llamado núcleo, aunque a pesar de que son compilados juntos cuando el núcleo y los manejadores de interrupciones se están ejecutando estos tienen mayores privilegios que las tareas. De este modo se logra que el núcleo pueda ejecutar todo tipo de instrucciones usando datos de cualquier parte del sistema, a fin de poder acceder a cualquier parte de la memoria y cualquier registro de procesador. Sin embargo, las tareas a pesar de no contar con los privilegios a nivel de núcleo sí pueden acceder a cualquier región de memoria que pertenezca a un proceso menos privilegiado con el objetivo de realizar E/S para ellos.

Capa 3

Aglutina los procesos conocidos como procesos servidores. Se ejecutan en un nivel menos privilegiado que el kernel o las tareas, y no acceden directamente a los puertos de entrada y salida. Tampoco pueden acceder a otra región de memoria que no sea la que le fue asignada. Para ello se vale de las llamadas al sistema (FORK, EXEC y BRK) las cuales son proporcionadas por el administrador de memoria (MM). El sistema de archivos (FS) realiza las llamadas al sistema para los archivos (READ, MOUNT y CHDIR). Cabe destacar que el sistema de archivos de MINIX está diseñado como “servidor de archivos” por lo que se podría mover a una máquina remota casi sin cambios. Otros servidores de esta capa son el servidor de reencarnación (RS), que permite reiniciar los drivers que se cierren por fallos u otras causas.

Capa 4

Finalmente, aquí se alojan todos los procesos de usuario tales como shells, editores, compiladores, programas, etc.

Véase también

Enlaces externos

  • Página web oficial de Minix 3.0 (en inglés)
  • Página web no oficial, sitio del desarrollo de la versión 2.0.4 (en inglés)
  • (en español)
  •   Datos: Q187906
  •   Multimedia: MINIX

minix, clon, sistema, operativo, unix, distribuido, junto, código, fuente, desarrollado, profesor, andrew, tanenbaum, 1987, parte, unix, 2ainformación, generaltipo, programatipo, unixdesarrolladorandrew, tanenbaummodelo, desarrollosoftware, librelanzamiento, i. MINIX es un clon del sistema operativo Unix distribuido junto con su codigo fuente y desarrollado por el profesor Andrew S Tanenbaum en 1987 MINIXParte de UnixMINIX 3 1 2aInformacion generalTipo de programatipo UnixDesarrolladorAndrew S TanenbaumModelo de desarrolloSoftware libreLanzamiento inicial1987LicenciaLicencia BSDEstado actualEn desarrolloIdiomasinglesInformacion tecnicaProgramado enCNucleoMINIXTipo de nucleoMicronucleoPlataformas admitidasx86ARMVersionesUltima version estable3 4 0rc6 09 de mayo de 2017 4 anos 5 meses y 27 dias EnlacesSitio web oficial Repositorio de codigo editar datos en Wikidata En 1975 los Laboratorios Bell de la AT amp T publicaron el sistema operativo Unix V6 para 1977 John Lions publico unas notas con el codigo fuente que se usaba en los cursos de sistemas operativos Cuando los Laboratorios Bell publicaron Unix V7 en 1979 prohibieron su uso para la ensenanza Por lo que en 1984 Andrew S Tanenbaum comenzo a escribir un clon de Unix para las IBM PC con Intel 8086 de ese tiempo con el fin de usarlo en su clase en lugar del entonces prohibido Unix Terminado en 1987 pudo usarlo para ensenar a sus alumnos el diseno de sistemas operativos en la Vrije Universiteit de Amsterdam Su libro fue ampliamente adoptado porque ademas de que Unix estaba bajo restricciones de licencia de AT amp T era demasiado complicado y corria sobre maquinas complejas algo completamente antipedagogico mientras que Minix fue escrito con fines pedagogicos y para una maquina muy accesible En 1997 publico Minix 2 y en el 2004 gracias al financiamiento de la Union Europea Minix 3 que es compatible con NetBSD y a prueba de fallas Gracias a su reducido tamano diseno basado en el paradigma del micronucleo y su amplia documentacion resulta bastante apropiado para personas que desean instalar un sistema operativo compatible con Unix en su maquina personal asi como aprender sobre su funcionamiento interno El primer Minix fue desarrollado para ser ejecutado en un IBM PC con microprocesador Intel 8088 o superior aunque se han creado conversiones para otros sistemas y Minix 3 tambien corre en procesadores ARM Debido al enfoque puramente educacional de MINIX Tanenbaum no permitia que este fuera modificado demasiado ya que esto complicaria el sistema y no permitiria que sus estudiantes lo entendieran en un semestre Por estos motivos Linus Torvalds decidio escribir su propio nucleo de sistema operativo Linux compatible con Unix En simbiosis con las herramientas de GNU surgio GNU Linux que ha ganado protagonismo en el campo de los Unix para ordenadores compatibles con el IBM PC principalmente debido a que su licencia GPL permite la modificacion del mismo Actualmente Minix se distribuye con una licencia similar la licencia BSD que es menos restrictiva que la de GNU porque en palabras de Tenembaum esta permitido todo excepto demandarlo Para una persona poco familiarizada con los elementos internos de un sistema operativo MINIX es una buena opcion que le permite entender casi todos los elementos del sistema con solo algunos meses de uso y estudio Indice 1 Historia 2 Estructura de MINIX 3 Vease tambien 4 Enlaces externosHistoria EditarAndrew S Tanenbaum creo MINIX en la Universidad Libre de Amsterdam para ejemplificar los principios recogidos en su libro de texto Operating Systems Design and Implementation 1987 Una parte del codigo en C del nucleo el controlador de memoria y el sistema de ficheros de MINIX 1 0 se recogen en este libro Junto con el libro tambien habia disponible un disquete con el codigo fuente de MINIX y los binarios junto con un manual de referencia del sistema Tanenbaum creo originalmente MINIX para que fuera compatible con las arquitecturas IBM PC e IBM PC AT que eran las comunes en esa epoca MINIX 1 5 publicado en 1991 incluia soporte para MicroChannel IBM PS 2 y tambien fue adaptado para las arquitecturas Motorola 68000 y SPARC soportando Atari ST Commodore Amiga Apple Macintosh y plataformas Sun SPARCstation Tambien existio una adaptacion no oficial a las arquitecturas compatibles con Intel 80386 en modo de 32 bits protegido National Semiconductor NS32532 ARM y procesadores INMOS transputer Meiko Scientific utilizo una primera version de MINIX como base de su sistema operativo MeikOS Tambien existio una version de MINIX que se ejecutaba como un proceso de usuario en el sistema operativo SunOS Al decrementarse la demanda de las computadoras de arquitectura de 68k MINIX 2 0 publicado en 1997 solo era compatible con las arquitecturas x86 y SPARC Fue el tema para la segunda edicion del libro de Tanenbaum en esta ocasion coescrito junto con Albert Woodhull y fue distribuido en un CD ROM incluido en el libro MINIX 2 0 anadia compatibilidad con POSIX1 soporte para arquitecturas Intel 80386 y superiores de 32 bits y reemplazo los protocolos de red Amoeba incluidos en MINIX 1 5 por TCP IP Tambien aparecieron adaptaciones no oficiales de MINIX 2 0 para las arquitecturas basadas en el 68020 ISICAD Prisma 7000 y las basadas en Hitachi SH3 Minix vmd es una variante de MINIX 2 0 para procesadores compatibles con Intel IA 32 que fue creada por dos investigadores de la Vrije Universiteit la cual anadia memoria virtual y soporte para el sistema grafico X Window System MINIX 3 fue publicamente anunciado el 24 de octubre de 2005 por Andrew Tanenbaum durante su exposicion en la conferencia de ACM en el Symposium on Operating System Principles Aunque sigue manteniendose como ejemplo para la nueva edicion de su libro esta comprensiblemente redisenado para ser utilizado como un sistema serio en computadoras con recursos limitados y para aplicaciones que requieren de gran fiabilidad Actualmente MINIX 3 soporta solo arquitecturas derivadas de IA 32 y esta disponible en LiveCD lo que permite ser utilizado sin necesidad de instalar el sistema operativo y en versiones compatibles con sistemas de emulacion o virtualizacion como BOCHS Qemu VMware y VirtualPC La version 3 1 5 fue lanzada el 5 de noviembre de 2009 y contiene X11 emacs vi cc gcc perl python ash bash zsh ftp ssh telnet pine y cerca de 650 aplicaciones mas comunes a los sistemas Unix Con la incorporacion de X11 esta version marca el punto de transicion entre el modo texto y grafico en este sistema operativo Otra caracteristica de esta version que sera mejorada en un futuro es la habilidad del sistema para mantenerse cuando el driver de algun componente deja de funcionar y en algunos casos estos son reemplazados automaticamente sin afectar a los procesos que se esten ejecutando Siguiendo este camino MINIX puede auto reponer su salud lo que el llama self healing por lo que es ideal para sistemas que requieren alta fiabilidad Estructura de MINIX EditarPara comprender mejor la estructura microkernel de MINIX se detallan a continuacion las diferentes capas Capa 1Esta es la capa que interactua directamente con el hardware Es la encargada de atrapar todas las interrupciones y trampas de planificar y ofrecer a las capas superiores un modelo de procesos independientes y secuenciales para comunicarse mediante el uso de mensajes En resumen cuenta con dos partes bien definidas la primera trata todo lo referente a la programacion de bajo nivel para brindar la abstraccion de procesos a las capas superiores La segunda parte gestiona los aspectos mas mecanicos de los mensajes como los buffers de envio y recepcion de mensajes que se alojan en la memoria fisica las verificaciones de destinos y todo lo referente al manejo fisico de memoria en lo que respecta a los mensajes Esta primera capa esta escrita en lenguaje ensamblador el resto estan escritas en lenguaje C Capa 2Contiene todo lo concerniente a los procesos de E S uno por cada tipo de dispositivos tareas Como se ilustra en el grafico tenemos tareas para discos impresoras relojes interfaces de red y tareas de sistema que si bien no son dispositivos de sistema si tienen por finalidad el servicio de copiado entre diferentes regiones de memoria para procesos que no cuentan con los privilegios para realizarlos ellos mismos Todas las tareas de la capa 2 y el codigo de la capa 1 se combinan para formar un solo programa binario llamado nucleo aunque a pesar de que son compilados juntos cuando el nucleo y los manejadores de interrupciones se estan ejecutando estos tienen mayores privilegios que las tareas De este modo se logra que el nucleo pueda ejecutar todo tipo de instrucciones usando datos de cualquier parte del sistema a fin de poder acceder a cualquier parte de la memoria y cualquier registro de procesador Sin embargo las tareas a pesar de no contar con los privilegios a nivel de nucleo si pueden acceder a cualquier region de memoria que pertenezca a un proceso menos privilegiado con el objetivo de realizar E S para ellos Capa 3Aglutina los procesos conocidos como procesos servidores Se ejecutan en un nivel menos privilegiado que el kernel o las tareas y no acceden directamente a los puertos de entrada y salida Tampoco pueden acceder a otra region de memoria que no sea la que le fue asignada Para ello se vale de las llamadas al sistema FORK EXEC y BRK las cuales son proporcionadas por el administrador de memoria MM El sistema de archivos FS realiza las llamadas al sistema para los archivos READ MOUNT y CHDIR Cabe destacar que el sistema de archivos de MINIX esta disenado como servidor de archivos por lo que se podria mover a una maquina remota casi sin cambios Otros servidores de esta capa son el servidor de reencarnacion RS que permite reiniciar los drivers que se cierren por fallos u otras causas Capa 4Finalmente aqui se alojan todos los procesos de usuario tales como shells editores compiladores programas etc Vease tambien EditarLinux Xenix UnixEnlaces externos EditarPagina web oficial de Minix 3 0 en ingles Pagina web no oficial sitio del desarrollo de la version 2 0 4 en ingles Lecciones de Minix en espanol Datos Q187906 Multimedia MINIX Obtenido de https es wikipedia org w index php title MINIX amp oldid 136228061, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos