Updated
almost 4 years
ago.
17 hacker ♥️.
3 followers.
Make a final attempt to implement a graphical user interface for grub2 (gfxboot2).
It's quite some work, unfortunately. Here's what's done so far:
- module works for grub2-legacy and grub2-efi
- there's an X11 implementation for testing (so you can run it as a normal program)
- basic font rendering implemented
- logging can be done to serial line or to the text (debug) console
- basic data types are implemented
- language primitives are partly implemented
- integrated debugger works
watch the debugger in action
gfxboot2 uses like gfxboot a simple scripting language that's compiled into byte code. Here's a tiny sample that shows what the byte code looks like:
# gfxboot-compile -vs start.gc
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
% code: 10 entries (10 - 0)
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
%line i index offset type hex word
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
0 0x0000 magic 80 06 12 a9 42 7a ad 60 % gfxboot magic
1 0x0008 ref 88 03 62 61 72 /bar
2 0x000d code 05 17 {
3 0x000f str 84 04 7a 61 70 70 "zapp"
4 0x0015 ret 00 04 }
5 0x0017 word 87 03 64 65 66 def
6 0x001c word 87 03 62 61 72 bar
7 0x0021 int 11 bc 01 444
8 0x0024 word 87 03 62 61 72 bar
9 0x0029 end 00 05 end
Looking for hackers with the skills:
Nothing? Add some keywords!
This project is part of:
Hack Week 11 Hack Week 14 Hack Week 15 Hack Week 17 Hack Week 18 Hack Week 19 Hack Week 20 Hack Week 21 Hack Week 24
Activity
Comments
-
over 8 years ago by snwint | Reply
Made quite some progress
- patch interfacing grub2(legacy & efi) exists
- x11-interface for faster development
- basic drawing functions implemented
- font rendering of psf2 (console) fonts
- necessary data types implemented
- garbage collector works
- debugging via serial console
Todo
- put code on github
- language implementation needs to be finished
- implement antialiasing fonts
- add jpg/png decoding (via grub2)
- implement boot menu
Similar Projects
This project is one of its kind!