\section{Conclusión}

Es muy satisfactorio ver por primera vez la consola funcionar, enviarle
mensajes y recibir las respuestas esperadas. Más aún cuando se conocen todas
las complicaciones y ramificaciones que se disparan en cada comando.

La primer conclusión que me gustaría compartir es más bien una crítica.
Habiendo trabajado extensivamente con la arquitectura x86, es muy difícil que
uno quede conforme con la misma. Creo que esta necesidad que se ha impuesto de
mantener la compatibilidad hacia atrás ha perjudicado mucho el diseño de los
sitemas modernos, y x86 es un ejemplo de esto. Cosas como el modo
real/protegido no tienen más sentido y simplemente agregan complejidad y
dificultades al programador de sistema. Lo mismo puede decirse de la
segmentación, un modelo que no es utilizado por ninguno de los SO en la
actualidad, pero aún hay que cargarlo y mantenerlo constantemente. Es una
lástima que proyectos como Itanium que justamente intentaron curar estos
problemas no hayan sido exitosos.

A la hora de tener que programar en tan bajo nivel, es claro que es necesario
tener mucha más atención al detalle. Tener un bit en 1 ó en 0 puede significar
que el sistema bootee perfectamente o que no haga nada. Esto no es un problema
tan grande en aplicaciones de usuario ya que estas pueden ser debuggeadas y
estos errores corregidos con cierta eficacia. Sin embargo es muy difícil
diagnosticar problemas en el sistema operativo, no contamos con tantas
herramientas como para darnos cuenta cual es el inconveniente y muchas veces el
proceso se reduce a colocar mensajes en lugares claves, y pensar mucho. El
procesador a veces puede no ser nada descriptivo sobre el error, o podemos
estar en una etapa del booteo donde no podemos ni escribir información en la
pantalla para intentar entender la situación.
