+
+# Notes on UEFI
+
+`JONASFORTH` is runs without an operating system, instead using the facilities
+provided by UEFI by running as a UEFI application. (Or rather, in the future it
+hopefully will. Right now, it uses Linux.) This section contains some notes
+about how this functionality is implemented.
+
+## Packaging and testing the image
+
+* [ ] What should the image look like?
+* [ ] How to build the image (which programs, commands, etc.)
+* [ ] How do we run the application in QEMU
+
+## Interfacing with UEFI
+
+From [OSDev Wiki](https://wiki.osdev.org/UEFI#How_to_use_UEFI):
+
+>Traditional operating systems like Windows and Linux have an existing software
+>architecture and a large code base to perform system configuration and device
+>discovery. With their sophisticated layers of abstraction they don't directly
+>benefit from UEFI. As a result, their UEFI bootloaders do little but prepare
+>the environment for them to run.
+>
+>An independent developer may find more value in using UEFI to write
+>feature-full UEFI applications, rather than viewing UEFI as a temporary
+>start-up environment to be jettisoned during the boot process. Unlike legacy
+>bootloaders, which typically interact with BIOS only enough to bring up the OS,
+>a UEFI application can implement sophisticated behavior with the help of UEFI.
+>In other words, an independent developer shouldn't be in a rush to leave
+>"UEFI-land".
+
+For `JONASFORTH`, I have decided to run as a UEFI application, taking advantage
+of UEFI's features, including its text I/O features and general graphical device
+drivers. Eventually, we would like to add some basic graphical drawing
+capabilities to `JONASFORTH`, and it's my impression that this would be possible
+using what is provided to us by UEFI.
+
+* [ ] How to register as a UEFI application
+* [ ] How to use UEFI provided functions
+
+## Resources
+
+* https://wiki.osdev.org/UEFI
+* https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface