Articulo de referencia

Metal desnudo

BareMetal es un sistema operativo (SO) de espacio de dirección única basado en exokernel creado por Return Infinity . Está escrito en ensamblador para lograr computación de alto...

BareMetal es un sistema operativo (SO) de espacio de dirección única basado en exokernel creado por Return Infinity .

Está escrito en ensamblador para lograr computación de alto rendimiento con un espacio mínimo [3] [4] con un enfoque de "sistema operativo suficiente" ( JeOS ). [5] El sistema operativo está dirigido principalmente a entornos virtualizados para computación en la nube o HPC debido a su diseño como un núcleo ligero (LWK). Podría usarse como un unikernel .

Se inspiró en otro sistema operativo escrito en ensamblador, MikeOS, [2] y es un ejemplo reciente de un sistema operativo que no está escrito en C o C++ , ni se basa en núcleos tipo Unix . [6]

Descripción general

Requisitos de hardware

  • Computadora de 64 bits basada en AMD / Intel
  • Memoria: 4 MB (más 2 MB por cada núcleo adicional)
  • Disco duro: 32 MB [7]

Una tarea por núcleo

La multitarea en BareMetal es inusual en los sistemas operativos modernos. BareMetal utiliza una cola de trabajo interna que sondean todos los núcleos de CPU . Una tarea agregada a la cola de trabajo será procesada por cualquier núcleo de CPU disponible en el sistema y se ejecutará hasta su finalización, lo que no genera sobrecarga por cambio de contexto . [8]

Programación

Se documenta una API [9] pero, de acuerdo con su filosofía, el sistema operativo no impone puntos de entrada para las llamadas del sistema (por ejemplo: no hay puertas de llamada ni otros mecanismos de seguridad).

BareMetal OS tiene un script de compilación para extraer el código más reciente, realizar los cambios necesarios y luego compilar el código C utilizando [10] la biblioteca estándar Newlib C. [11]

Se diseñó y desarrolló una biblioteca estándar C++11 casi completa para trabajar en el anillo 0. [ 12] El objetivo principal de dicha biblioteca es proporcionar, a nivel de biblioteca, una alternativa a la protección de memoria de hardware utilizada en los sistemas operativos clásicos, con la ayuda de clases cuidadosamente diseñadas. [13]

En noviembre de 2014 se agregó a los programas una demostración del programa Rust, demostrando la capacidad de escribir programas Rust para BareMetal OS. [14]

Redes

Pila TCP/IP

La característica solicitada número uno fue una pila TCP/IP . [15] En octubre de 2014 se anunció un puerto de lwIP escrito en C. [16]

minIP, [17] una pila IP minimalista en ANSI C capaz de proporcionar suficientes funcionalidades para servir a una página web estática simple , se está desarrollando como una prueba de concepto para aprender los fundamentos en preparación para una reescritura del ensamblaje x86-64 planificada para el futuro.

Referencias

  1. ^ Seyler, Ian. "kernel.asm". Repositorio de GitHub de BareMetal OS . Consultado el 24 de mayo de 2017 .
  2. ^ ab Voorsanger, Conrad (2 de junio de 2011). "Entrevista con Ian Seyler de Baremetal OS". OSNoticias . Consultado el 26 de mayo de 2014 .
  3. ^ Adams, David (14 de julio de 2010). «BareMetal OS». OSNews . Consultado el 26 de mayo de 2014 .
  4. ^ Benchoff, Brian (27 de mayo de 2011). «Sistema operativo de 64 bits escrito completamente en lenguaje ensamblador». Hack A Day . Consultado el 26 de mayo de 2014 .
  5. ^ Seyler, Ian. «Return Infinity (página de inicio), La ventaja de BareMetal». Return Infinity . Consultado el 2 de febrero de 2015 .
  6. ^ Smith, Jesse (19 de julio de 2010). «DistroWatch Weekly, Issue 363». DistroWatch . Consultado el 26 de mayo de 2014 .
  7. ^ "Requisitos del sistema operativo BareMetal". Return Infinity (copia archivada en Wayback Machine ) . Archivado desde el original el 6 de septiembre de 2014. Consultado el 6 de septiembre de 2014 .
  8. ^ "Cola del sistema operativo BareMetal" . Consultado el 28 de abril de 2015 .
  9. ^ Seyler, Ian. "Documentación de la API". Repositorio de GitHub de BareMetal OS . Consultado el 26 de junio de 2015 .
  10. ^ Seyler, Ian (17 de enero de 2014). "Newlib build script". BeareMetal OS Google Group . Consultado el 2 de febrero de 2015 .
  11. ^ Seyler, Ian. "newlib.sh". Scripts de compilación para BareMetal OS y sus utilidades relacionadas, repositorio de GitHub . Consultado el 2 de febrero de 2015 .
  12. ^ Lodyagin, Sergei (17 de noviembre de 2013). "Bare C++ library". BeareMetal OS Google Group . Consultado el 2 de febrero de 2015 .
  13. ^ Lodyagin, Sergei. "La biblioteca Bare C++". Repositorio de GitHub de la biblioteca Bare C++ . Consultado el 2 de febrero de 2015 .
  14. ^ Seyler, Ian. "Añadir ejemplo de Rust". Repositorio de GitHub de BareMetal OS (versión heredada) . Consultado el 18 de marzo de 2018 .
  15. ^ Seyler, Ian (22 de agosto de 2013). "TCP/IP". BeareMetal OS Google Group . Consultado el 2 de febrero de 2015 .
  16. ^ Seyler, Ian (31 de octubre de 2014). «BareMetal y lwIP». BeareMetal OS Google Group . Consultado el 2 de febrero de 2015 .
  17. ^ Seyler, Ian. «minIP: una pila de IP minimalista escrita en ANSI C». Repositorio de GitHub de BareMetal OS . Consultado el 24 de mayo de 2017 .
Retrieved from "https://en.wikipedia.org/w/index.php?title=BareMetal&oldid=1252216571"