Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Feb 2018 11:45:28 -0500
From:      Kris Moore <kris@ixsystems.com>
To:        Warner Losh <imp@bsdimp.com>
Cc:        FreeBSD Current <freebsd-current@freebsd.org>
Subject:   Re: LUA boot loader coming very soon
Message-ID:  <623bcb5c-8ddb-4d38-7826-0c9e344502a3@ixsystems.com>
In-Reply-To: <CANCZdfr47axGuLB0jjRxtKPoL95rdnjXuSe2-xf3QvcchjHGTg@mail.gmail.com>
References:  <CANCZdfqJzPud2GeMgc=zRNnz%2BQY0MuOft3L3OeQeq5w75NfbQA@mail.gmail.com> <741cdd4f-c4f3-5909-26a9-4cc8f5231eea@ixsystems.com> <CANCZdfr47axGuLB0jjRxtKPoL95rdnjXuSe2-xf3QvcchjHGTg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 02/12/2018 11:31, Warner Losh wrote:
>
>
> On Mon, Feb 12, 2018 at 9:26 AM, Kris Moore <kris@ixsystems.com
> <mailto:kris@ixsystems.com>> wrote:
>
>     On 02/12/2018 10:27, Warner Losh wrote:
>     > Greetings,
>     >
>     > As you may know, the Lua (http://www.lua.org) boot loader has
>     been in the
>     > works for some time. It started out life as a GSoC in 2014 by
>     Pedro Souza
>     > mentored by Wojciech A. Koszek. Rui Paulo created a svn project
>     branch to
>     > try to integrate it. I rebased that effort into a github branch
>     which Pedro
>     > Arthur fixed up. Over the past year, I've been cleaning up the
>     boot loader
>     > for other reasons, and found the time was ripe to start
>     integrating this
>     > into the tree. However, those integration efforts have taken a
>     while as my
>     > day-job work on the boot loader took priority. In the mean time,
>     Ed Maste
>     > and the FreeBSD Foundation funded Zakary Nafziger to enhance the
>     original
>     > GSoC Lua scripts to bring it closer to parity with the evolution
>     of the
>     > FORTH menu system since the GSoC project started.
>     >
>     > I'm pleased to announce that all these threads of development have
>     > converged and I'll be pushing the FreeBSD Lua Loader later
>     today. This
>     > loader uses Lua as its scripting language instead of FORTH. While
>     > co-existance is planned, the timeline for it is looking to be a
>     few weeks
>     > and I didn't want to delay pushing this into the tree for that.
>     >
>     > To try the loader, you'll need to build WITHOUT_FORTH=yes and
>     > WITH_LOADER_LUA=yes. Fortunately, you needn't do a full world to
>     do this,
>     > you can do it in src/stand and install the result (be sure to
>     have the
>     > options for both the build and the install). This will replace
>     your current
>     > /boot/loader that is scripted with FORTH to one that's scripted
>     with Lua.
>     > It will install the lua scripts in /boot/lua. The boot is
>     scripted with
>     > /boot/lua/loader.lua instead of /boot/loader.rc. You are
>     strongly advised
>     > to create a backup copy of /boot/loader before testing (eg cp
>     /boot/loader
>     > /boot/loader_forth), since you'll need to boot that from boot2
>     if something
>     > goes wrong. I've tested it extensively, though, with userboot.so
>     and it's
>     > test program, so all the initial kinks of finding the lua
>     scripts, etc have
>     > been worked out.
>     >
>     > While it's possible to build all the /boot/loader variants with
>     Lua, I've
>     > just tested a BIOS booting /boot/loader both with and without menus
>     > enabled. I've not tested any of the other variants and the
>     instructions for
>     > testing some of them may be rather tedious (especially UEFI, if
>     you want a
>     > simple path to back out). Since there's not been full
>     convergence testing,
>     > you'll almost certainly find bumps in this system. Also, all the
>     > build-system APIs are likely not yet final.
>     >
>     > I put  MFC after a month on the commit. Due to the heroic (dare
>     I say
>     > almost crazy) work of Kyle Evans on merging all the revs from
>     -current to
>     > 11, I'm planning a MFC to 11 after the co-existence issues are
>     hammered
>     > out. In 11, FORTH will be the default, and Lua will  be built by
>     default,
>     > but users will have to do something to use it. 12, both FORTH
>     and Lua will
>     > be built and installed, with Lua as default (barring unforeseen
>     > complications). Once the co-existence stuff goes in, I imagine
>     we'll make
>     > the switch to Lua by default shortly after that. In 13, FORTH
>     will be
>     > removed unless there's a really really compelling case made to
>     keep it.
>     >
>     > So please give it a spin and give me any feedback, documentation
>     updates
>     > and/or bug fixes. I'm especially interested in reviews from
>     people that
>     > have embedded Lua in other projects or experts in Lua that can
>     improve the
>     > robustness of the menu code.
>     >
>     > Warner
>     > _______________________________________________
>     > freebsd-current@freebsd.org <mailto:freebsd-current@freebsd.org>
>     mailing list
>     > https://lists.freebsd.org/mailman/listinfo/freebsd-current
>     <https://lists.freebsd.org/mailman/listinfo/freebsd-current>;
>     > To unsubscribe, send any mail to
>     "freebsd-current-unsubscribe@freebsd.org
>     <mailto:freebsd-current-unsubscribe@freebsd.org>"
>
>     Warner & Co,
>
>     Great job all! Been wanting this for years, very excited to see it
>     start
>     landing :)
>
>     One question, if we switch to Lua loader in TrueOS, do you know if the
>     ZFS boot-environment menus have been implemented / tested yet?
>
>
> I don't think that they have been implemented yet. I've certainly not
> tested them.
>
> Warner 
>
Ok, I'll have to mess about with it. I recall there was some library
which created to expose ZFS in limited functionality over to the FORTH
code. That's probably a good place to start and see if that still works
and Lua can probe the pool for BE information.


-- 
Kris Moore
Vice President of Engineering
iXsystems
Enterprise Storage & Servers Driven By Open Source




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?623bcb5c-8ddb-4d38-7826-0c9e344502a3>