- El repositorio Blog OS contiene el código fuente utilizado en la serie Writing an OS in Rust de os.phil-opp.com
- El código de cada artículo está en una rama de git separada, por lo que se puede revisar el estado intermedio después de seguir cada texto
- Actualmente, los artículos de la segunda edición se organizan en las categorías Bare Bones, Interrupts, Memory Management y Multitasking, y el código del artículo más reciente está en la rama
post-12
- Los nombres de las ramas siguen el formato
post-XX; por ejemplo, post-03 corresponde al código del artículo VGA Text Mode y post-07 al de Hardware Interrupts
- La primera edición ya no recibe mantenimiento, pero todavía puede servir como referencia, y el código del proyecto, excepto la carpeta
blog/content, usa una licencia de elección entre Apache-2.0 o MIT
Propósito del repositorio Blog OS
- Este repositorio proporciona el código fuente de la serie Writing an OS in Rust
- Las preguntas se pueden hacer abriendo un issue en GitHub o a través del chat de Gitter
Estructura del código por artículo
- El código de cada artículo está en una rama de git separada
- Se puede revisar el estado intermedio después de avanzar siguiendo el artículo
- El código del artículo más reciente está en
post-12
- La rama de cada artículo se puede encontrar en el enlace
(source code) de la lista de artículos de abajo
- Los nombres de las ramas usan el formato
post-XX
post-03: VGA Text Mode
post-07: Hardware Interrupts
- Para saber cómo compilar, hay que consultar el README de cada rama
- Se puede usar
git worktree para hacer checkout de una rama específica en un subdirectorio
git worktree add code post-10
- El comando anterior crea el subdirectorio
code con el código del décimo artículo, Heap Allocation
Lista actual de artículos de la edición
- El objetivo es ofrecer un tutorial paso a paso a través de artículos individuales del blog
-
Bare Bones
-
Interrupts
-
Memory Management
-
Multitasking
Primera edición
- El blog actual corresponde a la segunda edición
- La primera edición es antigua y ya no recibe mantenimiento, pero todavía puede ser útil
- La primera edición incluye artículos de las categorías Bare Bones, Memory Management, Exceptions y Additional Resources
Licencia y contribuciones
- El proyecto, excepto la carpeta
blog/content, puede usarse bajo Apache License 2.0 o MIT license, a elección del usuario
- Para la licencia de la carpeta
blog/content, hay que consultar blog/content/README.md
- A menos que se indique lo contrario, cualquier contribución enviada intencionalmente para su inclusión se aplicará bajo la doble licencia anterior, sin condiciones adicionales, según la definición de Apache-2.0
1 comentarios
Comentarios en Hacker News
Hace unos años terminé de leer la 2.ª edición completa, y de verdad me abrió los ojos
La explicación sobre desarrollo de sistemas operativos es muy buena, pero también me sirvió como material para seguir aprendiendo Rust después de leer el libro de Rust
El autor entiende muy bien los modismos de Rust, así que también aprendí mucho viendo cómo expresaba en código cosas que yo habría implementado de otra manera, y en particular async-await in Rust, donde explica cómo se implementan los futures en Rust, fue de lo mejor que he visto sobre este tema
Ojalá Phil vuelva a motivarse y continúe el trabajo en la 3.ª edición basada en EFI. Si ves los commits de la rama de Git, parece que se detuvo, y aunque fui sponsor en GitHub como por un año, siempre me daba pena ver que faltaba en las publicaciones de “This Month In Rust OSDev”
Aun así, la 2.ª edición es un recurso excelente para dedicarle tiempo de fin de semana, y se nota claramente el esfuerzo que le pusieron
Hace 5 años terminé este tutorial y después empecé a trabajar en MOROS; lo recomiendo muchísimo para cualquiera que tenga interés en Rust y en el desarrollo de sistemas operativos
Phil le metió muchísimo esfuerzo, y se nota. El proyecto cubre mucho contenido, y después puedes seguir con osdev wiki
MOROS: http://moros.cc, https://github.com/vinc/moros
MOROS parece cumplir también con esas condiciones, así que lo guardé en marcadores
Aunque por alguna razón no me arranca en QEMU, así que todavía no he podido usarlo, y sospecho que probablemente sea un problema de mi lado más que del sistema operativo en sí
Hoy encontré este recurso después de haber profundizado bastante en Rust y en el desarrollo de sistemas operativos, y me impresionó la calidad del contenido
Aprendes mucho sobre la historia y el diseño de los sistemas operativos, y al mismo tiempo vas absorbiendo elementos de Rust de forma natural. Phil hizo un trabajo excelente
Acabo de volver de Rustconf, y parecía que del lado de Rust ya hay como cinco lanzamientos importantes de sistemas operativos, especialmente varios enfocados en tiempo real
Aunque no todos son de código abierto
Además de esos, hay otros más de nicho o no públicos
Del lado de los sistemas operativos tradicionales, es decir, no de tiempo real, Redox es el más representativo, y también hay muchos sistemas operativos de investigación, experimentación y enseñanza, incluyendo Blog OS de esta guía/publicación
Recomiendo especialmente la primera edición de estos textos
La edición actual se sentía como que ayudaba demasiado al encargarse de todo el arranque con crates dedicados
Al ver este comentario, de hecho me dieron ganas de probarlo. Me gustaría hacer un sistema operativo pequeño por diversión, pero no me atrae la parte de tener que pasar por una serie de pasos casi mágicos para llegar a un estado de máquina decente donde ya puedas hacer algo
Claro, eso no es algo malo; simplemente a cada quien le gustan partes distintas
Gracias a este recurso empecé con Rust en 2021, y de verdad agradezco que exista algo así
Los textos de Phil sobre desarrollo de sistemas operativos siempre son agradables de leer
Va a dar una charla en la conferencia GOSIM el próximo mes
https://china2024.gosim.org/speakers#philipp-oppermann
Ojalá pudiera conocerlo y platicar con él en persona
https://harvey-os.org/ se retiró, y el equipo ahora está trabajando en este proyecto: https://github.com/r9os/r9
No soy desarrollador profesional, pero cuando veo la expresión “escribir X sobre Y”, me acuerdo del meme de Ryan Reynolds de “But why?”: https://screenrant.com/ryan-reynolds-but-why-gif-harold-kuma...
Si es con fines de aprendizaje, me parece perfecto hacerlo todo lo que quieras. Uno mejora programando mucho
Además, MOROS se ve como un proyecto y una página muy geniales