[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Fri, 26 May 2006 14:57:36 +0200
Roboot's birth of feather
Id like to talk about some ideas that came to me a few months ago when
I heard about Grub (legacy) and gave it a try on my PC (Linux +
I thought (like others) Grub needed some enhancements and I see most of
them are already on their way with Grub 2.
Thoughts, ideas are like free software, they get better when shared, so
lets try this one :
Grub legacys lack of scripting feature, but also a need for modularity,
expandability + a project I care for (and personal experience among
other things), mix that and it gets :
why not try Grub + Forth to see how it goes ?
Lets call it Roboot.
Ive spend some free time doing a thing that works for me as a start.
Technically, It turns out as a boot loader (using Grubs stage1
stage1.5) embedded with full ANSI Forth compiler/interpreter that calls
Grubs library routines to do keyboard/screen/disk input/output, etc.
Calling Grubs menu functions or any registered Grub C functions can be
mixed in Forth scripts to get powerful scripting features.
It computes 1 + 1 and it loads OS among other things.
Also works with underlying Linux OS on i386. And no, it doesnt
read/execute Fcode device drivers yet (if there is any sparc fan among
All of current Grub 2 development sources will be useful to next
versions of Roboot if any, including :
- better memory management
- modularity in supported input/output devices
- support for dynamic loading of C routines (Roboot already have Forth
modules dynamic loading)
- even scripting routines (though it wont be used the same)
I still had some spare time to see how it goes. So that I have a running
Grub 2 module, built on BigForth by Bernd Paysan, that adds a Forth
engine to current version of Grub 2 development. It also runs on
grub-emu under i386-pc.
I kind of believe that Roboot tries might be useful to current/next
versions of Grub in some way. Whats your opinion ?
Eric Salomé - Paris, France
- Roboot's BOF,
Eric Salomé <=