KittyOS: escribiendo un sistema operativo de juguete para el ATmega168 desde cero

Escribir un sistema operativo para una plataforma informática es una de esas tareas no triviales que pocas personas realmente necesitan hacer, independientemente de si se trata de un microcontrolador pequeño o una computadora de propósito general más grande. Muchos de nosotros dedicamos gran parte de nuestro tiempo a trabajar para producir código sólido para sistemas integrados, a veces profundizando en la abstracción cuando estamos atascados en un problema. Muy a menudo, este trabajo se basa en un RTOS, que consideramos un problema resuelto. [Jonathan Diamond] obtuvo un poco de conocimiento sobre la magia negra AVR de bajo nivel, así como algunos detalles de cómo funcionan internamente los sistemas operativos, por lo que decidió construir un sistema operativo de juguete llamado KittyOS, para la experiencia de aprendizaje. experimentar solo.

[Jonathan] se apresura a agregar que este no es un sistema operativo práctico, sino una plataforma de aprendizaje que necesita algunas campanas y silbatos adicionales para ser útil. Dirigido al AVR ATmega168 de 8 bits con solo 16kB de flash y 1kB de SRAM, el pequeño chip aún puede funcionar lo suficientemente bien como para albergar el sistema operativo rudimentario: hasta cuatro tareas de aplicación y algunas llamadas básicas al sistema.

KittyOS ya cuenta con multitarea preventiva, con prioridad y soporte para aplicaciones escritas en C. El soporte de hardware es un poco limitado, con solo E/S en serie y un punto GPIO, pero eso es más que suficiente para una demostración. Las aplicaciones se pueden cargar en cualquiera de las cuatro ranuras disponibles, con control de estado de ejecución por ranura, utilizando la interfaz de host basada en Python. La publicación es larga, con una tonelada absoluta de detalles sangrientos que amamos en estas partes, y estamos muy emocionados. [Jonathan] se tomó el tiempo para hacer una redacción adecuada, así como un video de demostración, que se puede encontrar después del descanso.

Ha habido muchos sistemas operativos DIY de este tipo adornando estas páginas a lo largo de los años, como ZARDOS, que apunta a las placas Arduino Mega/UNO. Volviendo un poco más complejo, vimos Snowdrop, que fue escrito en x86 puro e incluso tiene un intérprete BASIC. Finalmente, mencionemos nuestra guía sobre RTOS y cómo elegir el ideal para sus necesidades.

Joel Carrasco
Joel Carrasco

Deja una respuesta

Tu dirección de correo electrónico no será publicada.