DocsReleasesCommunityGuidesBlog

GSoC'24: UEFI Graphics Output Protocol Support in Unikraft, Part II

This is the second post in a series of posts where I talk about my progress with the project.

Project Overview#

The widely available and standardized UEFI Graphics Output Protocol (GOP) interface is an excellent alternative to VGA or serial port consoles for printing logs to the screen.

This project aims to implement a UEFI GOP based console. For more information, check out Part I of this series.

Progress#

  • Using a placeholder font, it is now possible to print null-terminated strings to the screens.

  • It is also possible to scale the font in both the axes independently

    • No scaling
    • Scaled Y-axis
  • I've also implemented scrolling. When all the lines are filled and a new log needs to be printed, the current logs on the screen are scrolled up (using memcpy)

Right now, scrolling moves all the framebuffer data in place. Reads and writes in framebuffer memory are slower because the video adapter actually syncs the framebuffer with the screen. This needs to be optimized!

Next Steps#

  • Finalize a font!
  • Optimize scrolling (by maintaining an additional buffer)
  • Look into this PR, which adds a generic console interface.

Acknowledgement#

I would like to thank all the great Unikraft folk for being a great community!

Edit this page on GitHub

Connect with the community

Feel free to ask questions, report issues, and meet new people.

Join us on Discord!
®

Getting Started

What is a unikernel?Install CLI companion toolUnikraft InternalsRoadmap

© 2024  The Unikraft Authors. All rights reserved. Documentation distributed under CC BY-NC 4.0.